微服务-为什么要微服务1

要性能,要解耦,要容错,要敏捷

优点:

每个服务足够内聚,足够小,代码容易理解、开发效率提高

服务之间可以独立部署,微服务架构让持续部署成为可能;

每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;

容易扩大开发团队,可以针对每个服务(service)组件开发团队;

提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;

系统不会被长期限制在某个技术栈上。

缺点

1:对于老服务改造,刚开始有较多的改造成本。-> 要在人员,组织上拉通对其。

2: 开发人员要处理分布式系统的复杂性; -》 分期改造,前期要由要人员,进行技术演练,打好基础。

3: 开发人员要设计服务之间的通信机制,对于需要多个后端服务的user case。 -》

4: 要在没有分布式事务的情况下实现代码非常困难;

5:  涉及多个服务直接的自动化测试也具备相当的挑战性;  通过YAPI管理接口

服务管理的复杂性,在生产环境中要管理多个不同的服务实例,意味着开发团队需要全局统筹(docker的出现适合解决这个问题)