APP下载

基于Netty 的高性能消息中间件设计与实现

2021-12-17王宁张娜于泽川苏逸凡包晓安

智能计算机与应用 2021年6期
关键词:消费者模型

王宁,张娜,于泽川,苏逸凡,包晓安

(浙江理工大学 信息学院,杭州 310018)

0 引言

随着互联网技术的迅速发展、物联网应用的快速普及以及大数据时代的来临,传统互联网应用服务已不能满足高并发低延时的需求[1]。当海量物联网设备终端在短时间内连续向业务服务器发送访问请求时,业务服务器无法及时处理这些访问请求,继而造成大量访问请求在服务端的堆积,瞬时数据量激增,最终导致服务器无法及时响应客户端,甚至会出现数据丢失的情况,系统服务的实时性与可靠性出现问题[2]。消息中间件应运而生,通过引入消息中间件,应用服务采用异步通信的方式,可以有效提升服务器的响应速率,同时保证了应用的可靠性。

本文通过对ActiveMQ、RocketMQ、kafka等当前流行的消息中间件研究发现:ActiveMQ 默认情况下使用的是消息推送的方式,当数据量骤增的情况下,如果其中一个消费者的消费能力较差,可能导致消息在消费者端产生堆积,无法解决互联网应用服务目前遇到的问题[3-4];而RocketMQ 与kafka 使用的消费模式是基于partition 的,其将每个主题分为一个或多个partition,每个消费者与其中一个partition静态绑定[5],若其中一个partition 的消费者消费能力较慢时,则无法通过增加消费者数量的方式来加快该partition 的消费速度,进而导致消息积压的问题[6-7]。

综上考虑,本文设计了一种基于Netty 框架的消息中间件,能够较好的解决上述中间件在应用服务中所产生的问题。本文中间件采用发布/订阅模式,消息生产者Producer(物联网设备终端)将数据消息发布到中间件服务器Broker 的消息队列中,再由消息消费者Consumer 主动从Broker 的消息队列中拉取并消费。……

登录APP查看全文

猜你喜欢

消费者模型
一半模型
重尾非线性自回归模型自加权M-估计的渐近分布
系无理取闹?NO! 请为消费者擦干眼泪
日化品牌怎样才能吸引年轻消费者?
只用一招 让喊产品贵的消费者闭嘴
知识付费消费者
3D打印中的模型分割与打包
悄悄偷走消费者的创意
悄悄偷走消费者的创意
FLUKA几何模型到CAD几何模型转换方法初步研究