微服务深入浅出(2)-- 微服务对比单体应用的优势

下面先介绍一些概念:

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指分区容错

原文地址:https://www.cnblogs.com/ijavanese/p/9182326.html