微服务的出现,是为了解决大型复杂应用的开发和持续迭代,本质上把一个单体架构的应用拆分成一组独立的服务,且一组服务之间通过互相通信来满足和实现单体架构应用同样的业务需求。所以理解微服务架构之前先要了解大型复杂应用的水平复制、功能分解和数据分区这三个扩展方向。
-
水平复制
服务的水平复制,是指每个服务会启动多个运行实例,通过负载均衡实现服务请求的分发,从而提高整个应用吞吐量和可用性。 -
功能分解
服务的功能分解,是指把一个复杂的单体服务(应用)拆分成一组服务,从而避免大型复杂应用日益增长的开发问题和应用复杂性。 -
流量分区
服务的流量分区,是指在大型复杂的应用,会根据不同的访客级别提供不同的处理能力,通过访客级别和请求内容进行请求转发,可以更加精准的根据需求增加服务运行实例,提高该服务的事务处理速度,从而提高整个应用吞吐量和可用性。