博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务架构介绍
阅读量:5750 次
发布时间:2019-06-18

本文共 1578 字,大约阅读时间需要 5 分钟。

  1. 单体架构
    1. 概念:单体架构也称之为单体系统或者单体应用,是一种将所有功能、模块耦合到一起的架构方法。
    2. 特点:
      1.   打包成独立的单元,以war包或者jar包形式。
      2.   以一个进程的方式来运行。
    3. 优缺点
      1. 优点:
        1. 易于管理
        2. 部署简单
      2. 缺点:
        1. 测试成本高
        2. 可伸缩性差
        3. 可靠性差
        4. 迭代困难
        5. 跨语言程度差
        6. 团队协作困难
  2. 微服务架构
    1. 概念:一种架构风格。体现为,一个大型系统或应用,由一个或者多个服务组成。系统中的各个微服务可以被独立部署,相互之间是低耦合的,每个服务仅关注于很好地完成一项任务。
    2. 优点:
      1. 测试成本低
      2. 可伸缩性强
      3. 可靠性强
      4. 跨语言程度高
      5. 团队协作容易
      6. 系统迭代容易
    3. 缺点:
      1. 部署数量众多,运维成本高
      2. 接口需要兼容多个版本
      3. 带来分布式系统的复杂性
      4. 面临分布式事物的处理
  3. mvc架构、rpc架构、soa架构、微服务架构的区别
    1. 1、 MVC 架构
        其实 MVC 架构就是一个单体架构。
        代表技术:Struts2、SpringMVC、Spring、Mybatis 等等。
      2、 RPC 架构
        RPC(Remote Procedure Call):远程过程调用。他一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
             代表技术:Thrift、Hessian 等等
      3、 SOA 架构
            SOA(Service oriented Architecture):面向服务架构
            ESB(Enterparise Servce Bus):企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。
            ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。
            代表技术:Mule、WSO2
      4、 微服务架构
           微服务就是一个轻量级的服务治理方案。
           代表技术:SpringCloud、dubbo 等等
  4. 微服务架构的设计原则
    1. AFL拆分原则
    2. 前后端分离原则
    3. 无状态服务
    4. RestFul通信风格

    AFK可扩展立方体

    1. 对于可扩展的系统架构一直有一个理念:通过增加机器就可以解决容量和可用性问题。
    2. 这一理念在“云计算”概念疯狂流行的今天,得到了广泛的认可!对于一个规模
      迅速增长的系统而言,容量和性能问题当然是首当其冲的。但是随着时间的向前,
      系统规模的增长,除了面对性能与容量的问题外,还需要面对功能与模块数量上
      的增长带来的系统复杂性问题以及业务的变化带来的提供差异化服务问题。而许
      多系统,在架构设计时并未充分考虑到这些问题,导致系统的重构成为常态,从
      而影响业务交付能力,增大成本开发!对此,《可扩展的艺术》一书提出了一
      个更加系统的可扩展模型—— AKF 可扩展立方 (Scalability Cube)。这个立方
      体中沿着三个坐标轴设置分别为:X、Y、Z。
    3. X轴 —— 代表无差别的克隆服务和数据,工作可以很均匀的分散在不同的服务实例上(加机器,做集群),扩展成本低。

      Y轴 —— 关注应用中职责的划分(功能的划分,基于业务),比如数据类型,交易执行类型的划分;我们一般用动词或资源进行分离,比如:

        登录,查询,结算等等。把同样的工作分割成流水线式的工作流或并行的处理流,Y轴代表的更多是对工作的“工业革命”,将耦合紧密的

        工作进行进行专门处理。Y轴实质代表责任、行动或数据。实施成本一般比X轴扩展代价高。假如有100个人造100辆车,每个人负责

        造一辆,完成造车全部的任务,不如让100个人执行子任务,如发送机的安装、喷漆、四轮定位。这样就会减少前后交互所需要的上下文

        信息,更专注做某件事情。扩展成本高于x轴扩展。

      Z轴 —— 关注服务和数据的优先级划分,如分地域划分。扩展成本最高。

转载于:https://www.cnblogs.com/zwakeup/p/10986313.html

你可能感兴趣的文章
最长递增子序列 动态规划
查看>>
程序是如何执行的(一)a=a+1
查看>>
BZOJ - 3578: GTY的人类基因组计划2
查看>>
【http】post和get请求的区别
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
POI getDataFormat() 格式对照
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>