For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习软件编程开发等互联网技术,而本文我们就通过案例分析来简单了解一下,SOA与微服务之间的区别都有哪些。
1.SOA
SOA,单纯从字面来看,是面向服务的架构治理。我这里还是以TienChin项目为例,来和大家捋一捋SOA。
假设TienChin中有一个用户注册的功能,现在前端的注册有三个端:
网页
手机App
小程序
如果采用传统的JavaWeb开发方式,那么我可能得写三遍注册功能,为三个Client各自提供一个接口,然而小伙伴们稍微思考一下就会发现,注册逻辑其实都差不多,区别可能仅仅是接口返回的数据格式有差异而已。因此,我们可以将注册功能抽取出来,写成一个单独的服务,然后通过远程服务调用如HTTP或者Socket等,去调用这个注册的功能模块。这就是一个简单的SOA架构设计。
然而看了这个很多小伙伴都懵了,这不就是微服务吗?
接下来我们就来说说SOA和微服务到底哪里不一样。
2.SOAPK微服务
2.1服务间通信
玩过Dubbo的小伙伴都知道,Dubbo中常用的通信协议就是Dubbo协议,Dubbo协议本质上其实就是socket通信。在SOA中,服务之间的通信往往都是采用的重量级协议如SOAP等。
而我们常用的微服务框架SpringCloud,小伙伴们知道,这里的通信基本上都是REST这种轻量级协议,有时候我们甚至是基于消息来驱动微服务,无论哪一种,微服务中服务之间的通信协议都更加轻量级。
2.2数据库设计
在SOA中,一般来说不太会进行分库设计,也就是说整个系统还是使用的一个库,系统可能会分为不同的服务,但是不同的服务操作的都是同一个库。
2.3服务规模
SOA中的每一个服务,整体上来说还是一个比较大的单体项目,因为SOA一般不会分的很细。而微服务则不同,在微服务中,我们会将服务都划分的很细,每一个服务基本上都是只负责一个很小的功能模块。
以前我们玩SOA的时候,基本上都还是传统的SSM项目,小伙伴们知道,搭建一个SSM项目就已经很费事了,所以能少搭建就少搭建。但是后来有了SpringBoot就不一样了,利用SpringBoot,我们可以非常方便快捷的创建一个项目,那么此时我们就有足够的条件把服务划分的比较细致了。
所以呢,整体上看,SOA往往是几个比较大型的服务组合在一起,而微服务则往往是几十甚至上百个服务组成。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。