下面先介绍一些概念:
1、单体应用:一般都是三层结构(Controller,Service,Dao),当业务越来越复杂,项目代码的可维护性就越来越差;随着用户的增加,单体应用的并发能力有限;
2、单体应用集群:使用负载均衡,缓存服务器,读写分离等技术后,这种架构有了一定的并发处理能力。但任然存在一些问题。首先是项目代码的可维护性差;其次数据库也会成为性能瓶颈,需要分库分表进行分布式存储;最后是持续交付能力差。
3、SOA:全英文是Service-Oriented Architecture,也叫服务治理,是一个组件模型,一般是SOA+ESB共同实现业务。SOAP主要是使用http+xml来实现接口(webservice)。
4、微服务:
架构:CAP理论中的AP架构
业务拆分:按照业务拆分为一个个独立运行(容器+数据库)的单元;
服务开发:各个单元可以用不同的编程语言,存储技术来开发;
服务间通讯:使用http,轻量级消息总线(MQ,通讯机制不可靠)通讯,传输json或者二进制数据(比json还轻量级,就是可读性差,需要反序列化,如protobuf);
自动化部署:Jenkins+Docker;
集中化管理:Eureka;
分布式部署:分布式事务,全局锁,全局ID;
熔断机制:因为一个接口可能调用多个接口,那么为了防止“雪崩效应”,引入了Hyxtris;
微服务监控:Spring Cloud Sleuth链路追踪,Spring Cloud Admin和日志系统;
由此可见MicroService比SOA架构更完善,更能满足日益增长的开发需求
注:CAP理论中的Consistency是指强一致性,Availability指服务的可用性,Partition-tolerance指分区容错