ref: 微服务设计
微服务:是一种分布式系统解决方案,推动细粒度服务的使用,这些服务协同工作,且每个服务都有自己的生命周期,因为微服务主要围绕业务领域建模,所以避免了由传统的分层架构引发的很多问题。
Ch1 微服务
1.1 定义
定义:微服务就是一些协同工作的小而自治的服务。
特点 | 含义 |
---|---|
很小 | 专注于做好一件事情 |
自治性 | 可以彼此独立进行修改,并且某一个服务的部署不应该引起该服务消费方的表动 |
1.2 优点
特点 | 含义 |
---|---|
1. 技术异构性 | 可以在不同的服务中使用最适合该服务的技术 |
2. 弹性 | 如果系统中的一个组件不可用了,但并没有导致级联故障,那么系统的其他部分还可以正常运行 |
3. 扩展 | 可以只对需要扩展的服务进行扩展,这样就可以吧那些不需要扩展的服务运行在更小的、性能稍差的硬件上 |
4. 简化部署 | 在微服务架构中,各个服务的部署是独立的,这样就可以更快的对特定部分的代码进行部署 |
5. 与组织结构相匹配 | 可以很好地将技术架构与组织架构相匹配,避免出现过大的代码库,从而获得理想的团队大小及生产力。 |
6. 可组织性 | 易于重用已有的功能 |
7. 对可替代性的优化 | 重新实现某一个服务或者时直接删除该服务都是相对可操作的 |
1.3 面向服务的架构
SOA, Service-Oriented Architecture 是一种设计方法,其中包好多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。
微服务架构师SOA的一种特定方法。
Ch2 演化试架构师
规则对于智者来说指导,对于愚蠢者来说是遵从。
Ch4 集成
Ch5 分解单块系统
5.11 重构数据库
5.12 事物边界
Ch6 部署
6.1 持续集成
Ch7 测试
Ch8 监控
Ch9 安全
Ch10 康威定律和系统设计
任何组织在设计一套系统(广义概念上的系统)时,所交付的设计方案在结构上都与该组织的沟通结构保持一致
Ch11 规模化微服务
Ch12 总结
微服务的原则
- 围绕业务概念建模
- 接受自动化文化
- 隐藏内部实现细节
- 让一切都去中心化
- 可独立部署
- 隔离失败
- 高度可观察
网友评论