服务化SOA设计与微服务

2020-01-30  本文已影响0人  LittleTrue

微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 100%分布式技术 + 80%的领域建模思想

SOA

面向服务体系结构,将程序中不同的功能模块,通过服务定义的接口和契约关联起来。接口是采用中立的方式定义的,它独立于实现服务的硬件平台、操作系统和编程语言。

从定义上看,可以总结出SOA软件架构模式的几个特点:

图片.png

SOA就是帮助我们把服务之间调用的乱七八糟的关系给治理起来,然后提供一个统一的标准,把我们的服务治理成图所示,以前我们的服务是互相交互,现在是只对数据总线进行交互,这样系统就变得统一起来(系统层面的控制反转DI)。

参考

微服务

微服务架构是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。

微服务的特点:

图片.png

微服务架构了,在一个项目中微服务节点很多,如果让每一个节点都去处理上面这些 “鉴权认证功能、Session处理、安全检查、日志处理等” 会多出很多冗余的代码,也会给增加业务代码的复杂度,因此我们就需要有一个「 API网关 」把这些公共的功能独立出来成为一个服务来统一的处理这些事情。

其主要功能有:1、路由转发 2、负载均衡 3、安全认证 4、日志记录


SOA和微服务的主要区别:
图片.png
参考
分布式、SOA、微服务

分布式:把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。
作用:从部署的角度出发、分布式主要是解决网站高并发带来问题。

SOA:Service Oriented Architecture,面向服务架构。业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力,通过服务的组合和编排来实现上层控制进行业务流程。
作用:简化维护,降低整体风险,伸缩灵活。

微服务:架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行SOA到微服务架构的演进过程。
作用:各服务可独立应用,组合服务也可系统应用。


微服务的缺点:

1、微服务提高了系统复杂度;
2、开发人员要处理分布式系统的复杂性;
3、服务之间的分布式通信问题;
4、服务的注册与发现问题;
5、服务之间的分布式事务问题;
6、数据隔离再来的报表处理问题;
7、服务之间的分布式一致性问题;
8、服务管理的复杂性,服务的编排;
9、不同服务实例的管理。
10、运维成本、测试和维护, 定点故障排查问题。

上一篇 下一篇

猜你喜欢

热点阅读