java架构师培训-微服务架构和 SOA架构有哪些不同

2021年01月24日 16:01

111

  微服务也是一种服务化,不过其和SOA架构的服务化概念也是有区别的,可以从以下几个关键字来理解:

java架构师培训-微服务架构和 SOA架构有哪些不同

  松耦合:每个微服务内部都可以使用DDD(领域驱动设计)的思想进行设计领域模型,服务间尽量减少同步的调用,多使用消息的方式让服务间的领域事件来进行解耦。


  轻量级协议:Dubbo是SOA的开源标准实现之一,类似于gRPC,Thrift等。微服务更倾向于使用Restful风格的API。轻量级协议可以很好地支持跨语言开发服务。某些微服务可能是用Java语言实现的,有些是Go语言的,有些是C的,但是所有的所有语言都可以支持Http协议通信,并且所有开发人员都可以理解Restful风格API的含义。


  高度自治和持续集成:从低层次的角度来看,SOA更倾向于基于虚拟机或服务器的部署。每个应用程序都部署在不同的计算机上。通常,持续集成工具是由运维团队编写的。根据共同协议编写脚本并提供开发和部署页面(例如Dubbo管理页面)。


  微服务可以很好得和容器技术结合,容器技术比微服务出现得晚,但是容器技术的出现让微服务的实施更加简便,目前Docker已经成为很多微服务实践的基础容器。


  因为容器的特色,所以一台机器上可以部署几十个、几百个不同的微服务。如果某个微服务流量压力比其他微服务大,可以在不增加机器的情况下,在一台机器上多分配一些该微服务的容器实例。


  同时,由于Docker容器编排社区变得越来越成熟,像Mesos,Kubernetes和Docker这样的Swarm正式提供Swarm作为持续集成部署的技术选择。


  实际上,从体系结构的演变的角度来看,总体发展是朝着越来越轻巧和灵活的应用程序发展,甚至是在过去两年中已经成熟的无服务器(无服务)体系结构。


  从单体服务到分层的服务,再到面向服务、再到微服务甚至无服务,对于架构的挑战是越来越大。


     推荐阅读:【鲁班学院】微服务架构设计分类



更多鲁班学院java高级培训免费课程试听地址https://www.lubanjava.com/course.html

鲁班学院java高级培训课程https://www.lubanjava.com/course/detail/519.html

加群即可领取鲁班学院最新Java高级培训课程资料学习包 群号:700541970


咨询(2)
免费试听
领取优惠
加群交流

扫一扫
加群领取架构师资料

售后反馈
返回顶部