java架构师指南:SOA框架与微服务框架之间有什么区别

  1、SOA   SOA在企业计算领域中提出,它将紧密耦合的系统,主要分为面向业务,粗粒度,松耦合和无状态的服务。 服务被发布以供其他服务调用,并且一组相互依赖的服务构成了SOA架构下的系...

  1、SOA

  SOA在企业计算领域中提出,它将紧密耦合的系统,主要分为面向业务,粗粒度,松耦合和无状态的服务。 服务被发布以供其他服务调用,并且一组相互依赖的服务构成了SOA架构下的系统。

attachments-2020-09-4s8A9kpm5f608148ccc63.jpg

  基于这些基本服务,可以以类似于BPEL流程的方式来组织业务流程,并且BPEL反映了业务处理的流程。 与硬编码的代码相比,这些过程对于业务人员而言更加直观,并且更易于调整。

  当然,企业还需要管理服务,例如服务注册,监视管理等。

  我们知道,在企业计算领域,如果它不是事务处理系统,则并发量不是很大,因此在大多数情况下,服务器可以容纳许多服务。 这些服务使用统一的基础结构,并且可能全部在应用程序服务器的进程中运行。 尽管它是面向服务的,但它仍然是单个系统。

  2、微服务

 微服务架构通常来自互联网公司。 由于用户规模庞大,因此对分布式系统的要求非常高。 如果像企业计算这样的系统,扩展需要多个系统实例以适应连续的服务。 通过负载平衡,多个系统成为一个集群。 但这非常不方便。 互联网公司的迭代周期非常短,一个版本可能每周发布一次,甚至每天发布一个版本,并且不同子系统的发布周期也不同。 此外,不同的子系统不像原始企业计算那样使用集中式存储,而是使用昂贵的Oracle存储整个系统的数据。 第二种是使用MongoDB,HBase,Cassandra和其他NOSQL数据库以及Redis,memcache和其他分布式缓存。 然后,它倾向于分为子系统,并且不同的子系统采用自己的体系结构。 然后,每个服务都在其自己的Web容器中运行。 当需要提高计算能力时,只需添加该子系统或服务的实例。  ,升级时,它不会影响其他子系统。 这种组织通常称为微服务架构。

  微服务与SOA相比,更强调分布式系统的特性,比如横向伸缩性,服务发现,负载均衡,故障转移,高可用。互联网开发对服务治理提出了更多的要求,比如多版本,比如灰度升级,比如服务降级,比如分布式跟踪,这些都是在SOA实践中重视不够的。

  Docker容器技术的出现,为微服务提供了更便利的条件,比如更小的部署单元,每个服务可以通过类似Node.js或Spring Boot的技术跑在自己的进程中。可能在几十台计算机中运行成千上万个Docker容器,每个容器都运行着服务的一个实例。随时可以增加某个服务的实例数,或者某个实例崩溃后,在其他的计算机上再创建该服务的新的实例。

推荐阅读:java架构师指南之架构师的工作流程

0 条评论

请先 登录 后评论
JAVA Q&A
JAVA Q&A

173 篇文章

作家榜 »

  1. JAVA Q&A 173 文章
  2. 江南 1 文章
  3. 伯乐 0 文章
  4. 孤存 0 文章
  5. q21164340 0 文章
  6. 赫敏12 0 文章
  7. 子牙 0 文章
  8. 赫敏 0 文章