微服务设计
2021-02-25 14:17:18 18 举报
AI智能生成
学习记录
作者其他创作
大纲/内容
概念分析
微服务的定义
微服务就是一些协同工作的小而自治的服务
服务边界的划分原则
根据业务的边界来确定服务的边界
自治性
一个微服务就是一个独立的实体,其可以独立的部署在 PASS(Platform As A Service, 平台即服务)上,也可以作为一个操作系统进程存在
每个服务都应该可以独立的进行修改,并且服务部署不应该引起该服务消费者方的变动
服务之间均通过网络调用进行通信,以加强服务之间的隔离性,避免紧耦合
内聚性
内聚性是结构化分析的重要概念之一
论述
内聚性是指将功能相关的代码放在一起组合成一个模块的程度
单一职责原则
论述
把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来
单一职责原则是从内聚性原则发展出来的,由 Robert C. Martin 于《敏捷软件开发:原则、模式和实践》书中提出
微服务的优势
技术异构性
一个由多个服务相互协作的系统,可以为不同的服务中选择最适合该服务的技术
弹性
舱壁
舱壁是弹性工程学中的重要概念之一
概述
如果系统中的一个组件不可用了,但并没有导致级联故障,并且系统中的其它部分还可以正常运行,那么服务的边界就是一个舱壁
可扩展性
将庞大的单体应用拆分为多个服务后,可以针对系统中存在性能问题需要扩展的服务进行扩展
可组合性
将单体应用拆分成多个服务,可以达到可重用,可组合的目的
简化部署
在微服务架构中,各个服务的部署都是独立的,可以更快地对特定部分的代码进行部署。即使如果出现问题,也只会影响一个服务,容易快速回滚。这种微服务架构很好地清除了软件发布过程中的种种障碍
更好的与组织结构相匹配
微服务架构可以更好的将架构与组织架构相匹配,避免出现过大的代码库,从而获得理想的团队大小及生产力
微服务必须要实现的两大原则
松耦合
高内聚
相关概念
SOA(Service-Oriented Architecture,面向服务的架构)
概述
SOA 是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。
微服务架构与面向服务架构的关系
微服务架构是面向服务架构的一种特定方法
演化式架构师应该承担的职责
愿景
确保在系统级有一个经过充分沟通的技术愿景
同理心
理解你所做的决定对客户和同事所带来的影响
合作
和尽量多的同事进行沟通,从而更好的对愿景进行定义、修订和执行
适应性
确保在客户和组织需要的时候调整技术愿景
自治性
在标准化和团队自治之间寻找一个正确的平衡点
治理
确保系统按照技术愿景的要求实现
0 条评论
下一页