消息队列的使用场景
异步处理
应用解耦
流量削峰
使用nodejs+UDP实现一个简单的消息队列
const udpClient = require('dgram').createSocket('udp4'); var clients= {}; udpClient.on('message', (message, socket) => { var repMsg=""; var msgObj= JSON.parse(message.toString()); if(msgObj["id"] != null) { if(clients[msgObj["id"]] != null &&clients[msgObj["id"]].length> 0) { repMsg = clients[msgObj["id"]].shift(); } } else { var from =msgObj["from"]; var to =msgObj["to"]; var msg =msgObj["msg"]; if(clients[to] == null) { clients[to] = new Array(); } clients[to].push(message.toString()); repMsg = "1"; } var buf = new Buffer(repMsg); udpClient.send(buf, 0, buf.length, socket.port, socket.address); }); udpClient.bind(5555);
测试步骤:
启动服务: node udpmq.js
打开两个UDP测试工具,如下图。左边是发送消息(json格式),客户端 “aa”发送给”bb”,
右图是接收消息,客户端”bb”发送自己的id给消息队列服务,服务查找“bb”的消息数组,并按FIFO的方式返回“bb”一条消息。
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。
以上就是node怎么做消息队列?的详细内容,更多请关注易知道|edz.cc其它相关文章!