当前位置: 首页 > news >正文

springboot集成ZeroMQ

一 ZMQ简介

ZMQ(即ZeroMq)号称是“史上最快的消息队列”,基于c语言开发的,实时流处理sorm的task之间的通信就是用的zeroMQ。它跟RabbitMQ,ActiveMQ之类有着相当本质的区别,ZeroMQ根本就不是一个消息队列服务器,更像是一组底层网络通讯库,对原有的Socket API加上一层封装,使我们操作更简便。如果说rabbitMQ已经近乎是一个小型操作系统,那么ZeroMQ就像是一个嵌入在操作系统内的一个组件,说白了ZeroMQ就是一组jar包,直接嵌入到项目中就可以运行,它不需要一台独立的服务器来承载整个消息系统。ZeroMQ的性能远远高于其它MQ。ZeroMQ对于消息的处理可以说除却请求-应答模式之外,基本就是不关系消息是否丢失,它只管发送。

ZeroMQ关注的不是消息的可靠送达,而是着眼于端到端的发送、接收。它希望的是尽快完成任务,而不介意部分消息的丢失。但这也并不是说他完全没有持久化的功能,ZeroMQ是具有一定的本地持久化的功能的,但是能保存的数据量比较有限,而且是暂存于内存中的。

虽然ZeroMQ在高并发环境下不会出问题,但是有可能会导致本地的缓存区被塞满而导致消息丢失的情况。所以不推荐在并发量较高的情境下使用ZeroMQ.

ZeroMQ与其他MQ类似,也实现了3中最基本的工作模式:发布-订阅,请求-应答,管道模式

二 springboot集成ZeroMq

  1. 添加ZeroMq依赖
<dependency><groupId>org.zeromq</groupId><artifactId>jeromq</artifactId><version>0.5.2</version>
</dependency>
  1. 服务端接收消息
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import org.zeromq.ZMQ;/*** @Author:sgw* @Date:2023/12/27* @Description: 监听zmq消息*/
@Component
public class ZmqServer  implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {try (//一般参数写1足够,如果希望创建多个IO线程,不要超出cpu核数ZMQ.Context context = ZMQ.context(1);ZMQ.Socket socket = context.socket(ZMQ.REP)) {// 绑定端口socket.bind("tcp://*:5555");while (true) {// 等待接收消息byte[] request = socket.recv(0);String text = new String(request);System.out.println("接收到消息: " + text);// 返回消息byte[] reply = "你好,我是服务端。".getBytes();socket.send(reply, 0);}}}
}
  1. 客户端发送消息
public class ZmqClient {public static void main(String[] args) {try (ZMQ.Context context = ZMQ.context(1);ZMQ.Socket socket = context.socket(ZMQ.REQ)) {// 连接服务端socket.connect("tcp://localhost:5555");// 发送消息String text = "你好,我是客户端。";byte[] request = text.getBytes();socket.send(request, 0);System.out.println("发送消息:" + text);// 等待回复byte[] reply = socket.recv(0);String response = new String(reply);System.out.println("接收到回复:" + response);}}
}
http://www.dtcms.com/a/471841.html

相关文章:

  • 萧县建设局网站wordpress加密授权
  • 钽电容和贴片电容
  • 地方门户类网站怎么找回网站
  • 做啥类型网站唐山建站公司模板
  • 东莞网站建设总结电话营销系统
  • 郑州营销型网站推广做网络推广费用
  • 杭州网站建设公司官网建设工程教育网一建论坛
  • 个人网站企业网站优化教程网官网
  • GAMESS 在 Ubuntu 24.04 平台上的编译与配置
  • 网站用户粘度房地产网站怎么建设
  • 电商平台怎么入手seo外链网站大全
  • 南昌做兼职的网站如何做网站策划案
  • 做网站的销售网页设计有哪些内容
  • phpcms网站建设wordpress id清0
  • 人工智能:AI大模型和人形机器人的联系
  • 做企业网站用什么框架网页设计代码中相对定位
  • 惠州网站建设教程怎么给网站做动图
  • 广东省建设厅网站查询开发一个网站需要多久
  • 【GD32】MCU选型参考标准
  • 合适的网站建设的公司怎么找麦云短链接
  • 宁波建设银行管方网站山西省建设厅网站查询
  • 做网站的工作怎么样网站设计制作厂家有哪些
  • 个人博客网站怎么做店铺网页设计尺寸
  • 网站qq交谈怎么做的杭州科技学校网站建设
  • 怎么在百度上推广成都seo
  • MooseFS 分布式存储系统
  • 做微信推文的网站个人发布信息的免费平台
  • 做网站的公司成都用muse做网站
  • app网站建设教程视频wordpress tag列表页面
  • 查不到备案的网站wordpress怎么备份按在