Day12-微服务出现、服务网络

1、微服务的出现及治理方式演进

1.1程序架构风格与微服务

  • 程序架构概述

架构(Architecture)一词源于建筑领域,用于指规划、设计和建造建筑物的过程及产物;引入计算机领域后,软件架构就成为描述软件规划设计的专有名词;是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

  • 架构风格

根据软件系统在运行期的表现风格和部署结构,大体可以将其粗略地划分为两类:

单体架构:整个系统的所有功能单元整体部署到同一进程(所有代码可以打包成一个或多个文件)

           <> 进一步细分:简单单体模式、MVC模式、前后端分离模式、组件模式和类库模式等;

分布式架构:整个系统的功能单元分散到不同的进程,然后由多个进程共同提供不同的业务能力;

           <> 面向服务的架构(SOA)

           <> 微服务架构(MSA)

  • 分布式应用的需求

Bilgin Ibryam在其一篇文件中将分布式应用的需求分为生命周期网络状态绑定四个方面;(显然,要满足这些需求并创建出良好的分布式应用绝非易事)

(1)生命周期

- 编写业务功能时,编程语言会指定生态系统中的可用库、打包格式和运行时(runtime)等;

     例如,Java使用.jar打包格式,它将依赖到所有Maven库视为生态系统,并使用JVM作为运行时;

- 随着发布周期变得更短,生命周期中更为重要的是以自动化的方式部署的能力、从错误中恢复的能力和扩展服务的能力; 

     这组能力广泛地代表了应用程序生命周期的需求;

(2)网络

- 从某种意义上说,如今几乎所有应用程序都是分布式应用程序,它们都需要网络,但现代分布式系统需要从更广泛的角度去掌控网络;

     包括服务发现错误恢复、实现现代软件发布技术和各种跟踪及遥测等;

- 为了满足需要,我们甚至会在这个类别中包含不同的消息交换模式、点对点和发布/订阅方式,以及智能路由机制等;

(3)状态

- 此处的状态是指服务的状态;

     一般我们认为,服务最好是无状态的;

     但管理服务的平台本身却是需要状态的(即有状态)

- 平台负责实现可靠的服务编排和工作流、分布式单例、临时调度(即周期式作业cron job)、幂等性、状态的错误恢复、缓存等,这些功能都依赖于底层的状态;

(4)绑定

 - 分布式系统的组件不权要相互通信,而且要和现代的或以往的旧式外部系统集成;

       这就要求连接器(connector)能够转换各种协议、支持不同的消息交换模式,如轮询、事件驱动、请求/应答、转换消息格式,甚至能够执行自定义的错误恢复过程和安全机制;

1.2分布式架构没理模式演进

ESB -> Miroservices -> Cloud Native

服务网络的迭代

 

 

 

2、微服务基础

2.1 康威定律

2.2 微服务及其生态体系

3、服务网络

3.1基本功能及其演进史

3.2主流实现

3.3云原生时代的服务风格

4、云原生

posted @ 2022-12-26 16:15  小马过大河  阅读(51)  评论(0)    收藏  举报