learning_notes

学习笔记

View project on GitHub

微服务

解决什么问题

  1. 代码到处拷贝
  2. 消除复杂性扩散(一处BUG处处修改,专注性,屏蔽底层复杂度)
  3. SQL质量得不到保障,业务相互影响(拒绝其他业务直接操作数据层)
  4. 调用方爽(像操作一个本地函数)
  5. 提供有限接口,无限性能

和SOA|ESB企业总线的区别

  • SOA 面向服务架构{服务,松耦合,ESB}
  • ESB 是把多个系统整合
  • 微服务 是将单个系统拆开(SOA的实现方式)

微服务带来的问题

  • 不能保证服务之间数据的一致性(分布式事务和异步补偿机制)
  • 拆分过细,关系复杂
  • 调用链长,网络异常,定位困难
  • 没自动化测试,集成,交付,压力大

康威定律

  1. 组织沟通方式会通过系统设计表达出来–产品是沟通的结果
  2. 时间再多一件事情也不可能做的完美,但总有时间做完一件事情–敏捷开发
  3. 线型系统和线型组织架构间有潜在的异质同态特性–什么团队就做成什么样子
  4. 大的系统组织总是比小系统更倾向于分解–合久必分,分而治之