微服务
解决什么问题
- 代码到处拷贝
- 消除复杂性扩散(一处BUG处处修改,专注性,屏蔽底层复杂度)
- SQL质量得不到保障,业务相互影响(拒绝其他业务直接操作数据层)
- 调用方爽(像操作一个本地函数)
- 提供有限接口,无限性能
和SOA|ESB企业总线的区别
- SOA 面向服务架构{服务,松耦合,ESB}
- ESB 是把多个系统整合
- 微服务 是将单个系统拆开(SOA的实现方式)
微服务带来的问题
- 不能保证服务之间数据的一致性(分布式事务和异步补偿机制)
- 拆分过细,关系复杂
- 调用链长,网络异常,定位困难
- 没自动化测试,集成,交付,压力大
康威定律
- 组织沟通方式会通过系统设计表达出来–产品是沟通的结果
- 时间再多一件事情也不可能做的完美,但总有时间做完一件事情–敏捷开发
- 线型系统和线型组织架构间有潜在的异质同态特性–什么团队就做成什么样子
- 大的系统组织总是比小系统更倾向于分解–合久必分,分而治之