APP下载

基于ZeroMQ&JSON的SOA网络传输中间件研究

2021-06-16黄江张李超王森林郭强强李萌

电子技术与软件工程 2021年7期
关键词:服务

黄江 张李超 王森林 郭强强 李萌

(华中科技大学 湖北省武汉市 430074)

随着互联网技术的发展和业务需求的扩张,分布式系统成为现代软件架构设计的热点。传统的单体架构、垂直架构虽然结构简单,但是不易扩展,能够承接的业务复杂度有限,因此分布式系统应运而生。分布式系统由一组通过计算机网络链接、自治的、配备了分布式系统软件的计算机组合而成。近年来,基于服务的架构(SOA)、基于微服务的架构的提出更是将分布式系统推向了高潮。

分布式系统最重要的就是进程(位于同一台或多台计算机)之间的通信。进程间的通信机制主要有:

(1)使用基于同步请求/响应的通信机制,如REST 风格的HTTP、gRPC;

(2)使用异步的基于消息的通信机制,如高级消息队列协议(AMQP)、流文本定向消息协议(STOMP)。[1]

消息队列经常被用来设计分布式系统的通信系统。陈瑶基于ActiveMQ 设计实现了一个数据传输框架[2];汪然基于ActiveMQ实现了消息中间件系统[3];孟承、王建基于RabbitMQ 实现了软件化的雷达通信中间件[4];袁小军基于ZeroMQ 设计实现了分布式的3D 打印控制系统[5];蒲凤平基于ZeroMQ 设计实现了列车检测系统[6];朱民新基于ZeroMQ 实现了分布式存储系统。

以下采用异步的消息队列作为进程间通信的基础,通过二次封装,构建两套轻量级的基于SOA 的分布式系统网络传输中间件。

1 ZeroMQ&JSON

1.1 ZeroMQ

ZeroMQ 是一个基于C++ 的轻量级开源消息队列,支持AMQP、异步、多线程。同类的

开源消息队列还有RabbitMQ,基于Erlang 语言,同样支持AMQP;ActiveMQ,基于java,只支持JVM 平台,跨平台性不好。根据Nicolas Estrada 等人[2]的研究测试,ZeroMQ 在性能和可伸缩性方面都要优于RabbitMQ,在负载增加时的退化阈值要高于后者,具有更好的可扩展性和更快的速度。……

登录APP查看全文

猜你喜欢

服务
自助取卡服务
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
高等教育为谁服务:演变与启示
招行30年:从“满意服务”到“感动服务”