Micro Services
阅读推荐
- 微服务设计(图灵出版的)-- 适合新手了解微服务概念
- 微服务架构设计模式 -- 偏细节,Java
什么是微服务?
广义:微服务是一种分布式系统解决方案,推动细粒度服务的使用,使这些服务系统工作。
微服务架构风格
1.将单个应用程序作为一组小型服务开发的方法
2.每个服务程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信
3.这些服务围绕业务功能构建
4.可以通过全自动部署机器独立部署
5.这些服务可以用不同的编程语言编写,使用不同的数据存储技术,并尽量不用集中式方式进行管理
精髓:分而治之,合而用之
区分微服务、微服务框架、微服务架构
微服务架构
: 将复杂的系统使用组件化的方式进行拆分,并使用轻量级通讯方式进行整合的一种设计方法。微服务
: 通过这种架构设计方法拆分出来的一个独立的组件化的小应用。微服务框架
: 实现微服务开发的第三方工具
组件服务化
Go实现一个微服务的组成:
- kit: 一个微服务的基础库(框架)
- service:业务代码 + kit依赖 + 第三方依赖
组成的业务微服务
- rpc + message queue: 轻量级通讯
本质上等同于:多个微服务组合(compose)完成要给完整的用户场景(usercase)
去中心化
- 数据去中心化
- 治理去中心化
- 技术去中心化
每个服务独享自身的数据存储设置(缓存、数据库等)
好处:保持服务独立性,隔离相关干扰
基础设施自动化
todo