开发者学堂课程【精通Spring Cloud Alibaba:微服务架构与SOA架构模式实现区别】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10057
微服务架构与 SOA 架构模式实现区别
SOA 架构与微服务架构的区别
1.通讯协议
2.服务拆分粒度
3.专业度
4.迭代
第一点:
微服务架构基于 SOA 架构模式演变过来,继承 SOA 架构优点,在微服务架构中去除 SOA 架构中 SOAP 协议和 ESP 企业服务总线。改为 Http+JSON 形式传输我们的接口。
ESB 企业服务总线:
解决多系统之间跨语言无法实现通讯的问题,对我们数据协议实现转换,可以提供可靠的消息传输,第三方框架实现。
例如:
比如 JAVA 和 Python 之间语言是不可以通讯的,所以就可以用 ESB 企业服务总线,可以帮助解决语言之间不可以通讯的问题。
就是对于数据格式的一种转换,然后让原来明明不能传输的语言现在可以传输,原来不可以使用通讯而现在可以使用通讯。Http+JSON 形式本身就可以实现跨语言通讯了,那么 ESB 企业服务总线是没有必要的是没有意义的。
一般情况下都是采用 Http+JSON 格式传输,因为 Http+JSON 格式本身就可以实现跨语言传输了,所以是完全没有必要使用 ESB 企业服务总线。
这就是第一点通讯协议之间的区别。
第二点:服务拆分粒度:
有的公司对于服务拆分粒度是很精细的,最开始,一般公司就是搞一些会员服务,然后再拆为登陆服务,注册服务,再搞一个会员服务接口,在有些情况下,它的服务拆分粒度非常精细。但是有的会觉得这样细会很乱,这都是看公司的。
在大公司的登陆并不是简单的一件事,有很多登陆会很复杂,会有很多种登陆,会有一两个工作人员专门维护登陆。具体的还是要看公司具体场景,有的会将会员服务和注册服务放在一起。
在微服务中提倡的是独立,因为登陆本身和会员是没有什么关系的。
微服务架构模式比 SOA 架构模式粒度更加精细,提倡让专业的人去做专业的事,没有底是实现高效的开发,每个服务于服务之间都互不影响,每个服务都是单独独立的数据库,Redis 连接,MQ 等这样才会做到互不影响,如果每个服务用的是相同的数据库的话,命名的时候会乱。
并且都是实现独立部署,整个微服务架构更加轻巧,轻量级。在 SOA 架构中有可能出现多个服务共享同一个数据库,但是微服务架构必须强调每个服务都必须是独立的数据库,互不影响。
第三点:
迭代版本:微服务的架构模式比 SOA 架构模式,更加适合于互联网公司敏捷,高效,快速迭代版本开发,因为粒度非常精细。
所以会发现在微服务架构当中最大的优势就是能够快速迭代版本,假设有时候自己想做的情况下,单独做个服务就可以了,与之前的无关联,单独的数据库完全是不受任何影响的。