码迷,mamicode.com
首页 > 其他好文 > 详细

微服务架构介绍

时间:2019-06-06 19:10:56      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:jar包   需要   后端   均衡   dubbo   今天   原则   ted   bat   

  1. 单体架构
    1. 概念:单体架构也称之为单体系统或者单体应用,是一种将所有功能、模块耦合到一起的架构方法。
    2. 特点:
      1.   打包成独立的单元,以war包或者jar包形式。
      2.   以一个进程的方式来运行。
      3. 技术图片
    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轴 —— 关注服务和数据的优先级划分,如分地域划分。扩展成本最高。

微服务架构介绍

标签:jar包   需要   后端   均衡   dubbo   今天   原则   ted   bat   

原文地址:https://www.cnblogs.com/zwakeup/p/10986313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!