这个乐趣,微服务实现发布和订阅

初识ØMQ

简介

  • ØMQ中Ø(Alt+0216)是Zero空集,M是Message消息,Q是Quene队列,ØMQ是消息队列的缩写。
  • ØMQ提供了易拓展、低延迟的消息解决方案。
  • ØMQ基于事件循环的开发模式

官网

安装

// 安装
npm i zeromq
// 测试
node -p -e "require('zeromq').version"
-p将结果打印在控制台
-e解析后面的字符串
复制代码

发布

模块

const zmq = require('zeromq');
复制代码

节点

  • 创建一个消息发布节点
const publisher = zmq.socket('pub');
复制代码

推送

  • 使用JSON.stringify将JSON转换成字符串
  • publisher.send发送消息
  • setInterval实现5秒向订阅者发布一次消息
setInterval(() => {
    publisher.send(JSON.stringify({
        Status: 1,
        Data: 'Hello, world!'
    }));
}, 5000);
复制代码

端口

  • 使用publisher.bind绑定TCP端口60400
publisher.bind('tcp://*:60400');
复制代码

订阅

模块

const zmq = require('zeromq');
复制代码

节点

  • 创建一个订阅节点
  • 接收所有消息
const subscriber = zmq.socket('sub');
subscriber.subscribe('');
复制代码

监听

  • subscriber对象是从EventEmitter类继承过来的
  • 从publisher接收到信息是,立刻触发message事件
  • subscriber.on监听message事件
subscriber.on('message',data=>{
    console.log(`${data}`);
});
复制代码

连接

  • 使用 subscriber.connect 建立连接
subscriber.connect("tcp://localhost:60400");
复制代码

最后

  • 现在把整个程序运行起来,看看发布者是如何5秒发送消息,订阅者如何接收消息。

转载于:https://juejin.im/post/5ceba6356fb9a07ef06f72af

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值