自己对于微服务的理解:
微服务的使用应该遵循康威定律。
(康威定律:Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967)设计系统的组织,其产生的设计等同于组织之内、组织之间的沟通结构)
“再对应下衡量微服务的标准,我们很容易会发现他们之间的密切关系:
分布式服务组成的系统
按照业务而不是技术来划分组织
做有生命的产品而不是项目
Smart endpoints and dumb pipes(我的理解是强服务个体和弱通信)
自动化运维(DevOps)
容错
快速演化” ------------引用微服务架构的理论基础 - 康威定律https://yq.aliyun.com/articles/8611
业务形态不适合上微服务的:
1.系统中包含很多很多强事务场景的
2.业务相对稳定,迭代周期长
3.访问压力不大,可用性要求不高
。。。。。
微服务的特点:
一系列微小的服务共同组成
单独部署,跑在自己的进程里
每个服务为独立的业务开发
分布式的管理
微服务开发是产品模式,团队的成员负责整个项目的生命周期
微服务拆分的方法论:
如何拆功能:
1.单一职责,松耦合,高内聚
2.关注分离点 ---按职责;---按通用性;---按粒度级别
如何拆数据:
1.每个微服务都有单独的数据存储
2.依据服务特点选择不同结构的数据库类型
3.难点在确认边界
4.针对边界设计API
5.依据边界权衡数据冗余