什么是微服务
一些协同工作的小而自治的服务,松耦合、高内聚、限界上下文
微服务的优点
- 技术异构性
- 弹性
- 扩展性
- 简化部署
-
对可替代性的优化
微服务的原则
原则举例
演进式架构师应当承担的责任
- 愿景:确保在系统级有一个充分沟通的技术愿景,这个愿景应该可以帮助你满足客户与组织的需求
- 同理心:理解你所做的决定对客户和同事带来的影响
- 合作:和尽量多的同事进行沟通,从而更好的对愿景进行定义、修订及执行
- 适应性:确保你的客户和组织需要的时候调整技术愿景
-
自治性:在标准化与团队自治之间寻找一个正确的平衡点
治理:确保系统安装技术愿景的要求实现如何集成以保障微服务之间的低耦合
- 避免数据库集成
- 相比编排(orchestration),优先选择协同(choreography)
- 避免破坏性修改、理解Postel鲁棒性法则(“Be liberal in what you accept, and conservative in what you send.”)、使用容错性读取器
- 将用户界面视为一个组合层
-
理解rest与rpc之间的取舍,但总是使用rest作为Request/Response的起点
参考
《领域驱动设计》
《微服务设计》