微服务转变

来由

软件通常是由单体应用演化而来,一开始承载着你一个很成功的关键业务应用,到后来就变成了一个巨大的、无法理解的怪物。

转换过程

转换为小的、互相连接的微服务的过程都很类似:

  • 按照功能拆分,或按照业务场景拆分
  • 所有服务之间采用异步的、基于消息的通讯
Best practice
  • 对外暴露的API访问使用API Gateway来传递中间消息,用来审计、计费、流控
  • 每个服务独有一个数据库(或一类数据库),松耦合的需要
不足
  1. 微服务的转化会引入分布式部署。
  2. 相比单体应用api调用,微服务服务间通信成本加大,通常需要引入消息队列,如RabbitMQ
  3. 不同数据库同步
  4. 如果服务间有强依赖,不利于开发
  5. 部署复杂(配置、部署、扩展、监控),这也是为什么微服务更多融合Kubernetes, Mesos等成熟docker管理组件的原因

你可能感兴趣的:(微服务转变)