几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
2017-07-26 00:00
260 查看
摘要: 微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。
原文链接
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。
本文选自《架构解密:从分布式到微服务》。
本文盘点了四种常用的微服务架构方案,分别是ZeroC IceGrid、Spring Cloud、基于消息队列与Docker Swarm。
![](http://img.blog.csdn.net/20170725105116949?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
IceGrid具备微服务架构的如下明显特征。
首先,微服务架构需要一个集中的服务注册中心,以及某种服务发现机制。IceGrid服务注册采用XML文件来定义,其服务注册中心就是Ice Registry,这是一个独立的进程,并且提供了HA高可用机制;对应的服务发现机制就是命名查询服务,即LocatorService提供的API,可以根据服务名查询对应的服务实例可用地址。
其次,微服务架构中的每个微服务通常会被部署为一个独立的进程,当无状态服务时,一般会由多个独立进程提供服务。对应在IceGrid里,一个IceBox就是一个单独的进程,当一个IceBox只封装一个Servant时,就是一个典型的微服务进程了。
然后,微服务架构中通常都需要内嵌某种负载均衡机制。在 IceGrid 里是通过客户端API内嵌的负载均衡算法实现的,相对于采用中间件Proxy转发流量的方式,IceGrid的做法更加高效,但增加了平台开发的工作量与难度,因为采用各种语言的客户端都需要实现一遍负载均衡的算法逻辑。
最后,一个好的微服务架构平台应该简化和方便应用部署。我们看到 IceGrid提供了grid.xml 来描述与定义一个基于微服务架构的Application,一个命令行工具一键部署这个Application,还提供了发布二进制程序的辅助工具——icepatch2。下图显示icepatch2的工作机制,icepatch2server类似于FTP Sever,用于存放要发布到每个Node上的二进制代码与配置文件,而位于每个Node上的icepatch2client则从icepatch2server上拉取文件,这个过程中采用了压缩传输及差量传输等高级特性,以减少不必要的文件传输过程。客观地评价,在Docker技术之前,icepatch2这套做法还是很先进与完备的,也大大减少了分布式集群下微服务系统的运维工作量。
原文链接
原文链接
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。
本文选自《架构解密:从分布式到微服务》。
本文盘点了四种常用的微服务架构方案,分别是ZeroC IceGrid、Spring Cloud、基于消息队列与Docker Swarm。
ZeroC IceGrid微服务架构
ZeroC IceGrid作为一种微服务架构,它基于RPC框架发展而来,具有良好的性能与分布式能力,如下所示是它的整体示意图。IceGrid具备微服务架构的如下明显特征。
首先,微服务架构需要一个集中的服务注册中心,以及某种服务发现机制。IceGrid服务注册采用XML文件来定义,其服务注册中心就是Ice Registry,这是一个独立的进程,并且提供了HA高可用机制;对应的服务发现机制就是命名查询服务,即LocatorService提供的API,可以根据服务名查询对应的服务实例可用地址。
其次,微服务架构中的每个微服务通常会被部署为一个独立的进程,当无状态服务时,一般会由多个独立进程提供服务。对应在IceGrid里,一个IceBox就是一个单独的进程,当一个IceBox只封装一个Servant时,就是一个典型的微服务进程了。
然后,微服务架构中通常都需要内嵌某种负载均衡机制。在 IceGrid 里是通过客户端API内嵌的负载均衡算法实现的,相对于采用中间件Proxy转发流量的方式,IceGrid的做法更加高效,但增加了平台开发的工作量与难度,因为采用各种语言的客户端都需要实现一遍负载均衡的算法逻辑。
最后,一个好的微服务架构平台应该简化和方便应用部署。我们看到 IceGrid提供了grid.xml 来描述与定义一个基于微服务架构的Application,一个命令行工具一键部署这个Application,还提供了发布二进制程序的辅助工具——icepatch2。下图显示icepatch2的工作机制,icepatch2server类似于FTP Sever,用于存放要发布到每个Node上的二进制代码与配置文件,而位于每个Node上的icepatch2client则从icepatch2server上拉取文件,这个过程中采用了压缩传输及差量传输等高级特性,以减少不必要的文件传输过程。客观地评价,在Docker技术之前,icepatch2这套做法还是很先进与完备的,也大大减少了分布式集群下微服务系统的运维工作量。
原文链接
相关文章推荐
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
- 几种常见的微服务架构方案—ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
- 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
- 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列
- 几种常见的微服务架构方案,2018年是否还一如既往的火
- 基于Docker Swarm的Docker Service常见命令
- 基于消息队列的信息传输机制
- 消息模式Toast.makeText的几种常见用法
- 基于消息队列的C/S通信
- 消息模式Toast.makeText的几种常见用法
- [置顶] 基于docker-swarm搭建持续集成集群服务
- Android 基于Netty的消息推送方案之Hello World(一)
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 单点登录与消息队列以及在J2EE中的实现方案
- 基于数据库的事务消息解决分布式事务方案
- WCF分布式开发常见错误(19):There was an error opening the queue打开消息队列出错
- stm32基于Ucos消息队列的空闲中断信息读取储存和发送
- 管道、消息队列、共享内存几种IPC通信,简单的代码