微服务架构是在2010年后出现的,这个架构的特点就是松耦合,服务与服务之间独立的部署运行和升级。作为分布式系统的一种,微服务具有的优势是能增大系统容量,整个系统的隔离性和容错性更强,带来的问题也显而易见,系统的管理,测试和设计上面更加复杂。
再来谈谈SOA(面向服务的架构),
其中三个角色,服务提供者,服务消费者和企业总线服务,企业总线主要是为了用一套统一的方式提供消费者和服务者端到端的通信。这里注意SOA虽然也强调服务的拆分,但是数据库是服务间共享的,在微服务里面数据存储也是被拆分到各个服务内部去了的,简单的微服务对比架构图:
这里谈谈SOA(Service Oriented Architecture)和微服务的区别:
1、都是属于分布式架构,两者一脉相承;
2、ESB其实就是一个中间件或者协议,使得服务间不再直接依赖,通过通信协议互相依赖。微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化。对于企业总线服务,在微服务架构里面的替代角色就是API网关,API都主要是完成服务的路由。
参考:1、https://dzone.com/articles/microservices-vs-soa-2 Microservices vs. SOA
2、https://www.zhihu.com/question/37808426 SOA和微服务架构的区别?