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

广州外贸企业网站建设什么类型的网站好做

广州外贸企业网站建设,什么类型的网站好做,南宁制作营销型网站,互联网企业裁员RabbitMQ 的分片插件(rabbitmq_sharding)允许将消息分布到多个队列中,这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载,从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间…

RabbitMQ 的分片插件(rabbitmq_sharding)允许将消息分布到多个队列中,这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载,从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间分配负载,避免单个队列过载。(注:不能单独消费分片消息。消息分片不利于消息顺序区分)

启用消息分片插件。 

rabbitmq-plugins enable rabbitmq_sharding 

示例

通过rabbitmq management添加策略,用于分片消息匹配转发。

或者通过命令添加策略 

CTL set_policy images-shard "queue10" '{"shards-per-node": 3, "routing-key": "sharding"}'

producer.ts

import RabbitMQ from 'amqplib';async function start() {try {const conn = await RabbitMQ.connect("amqp://admin:admin1234@localhost:5672//mirror?heartbeat=60");conn.on("error", function (err1) {if (err1.message !== "Connection closing") {console.error("[AMQP] conn error", err1.message);}});conn.on("close", function () {console.error("[AMQP] reconnecting");return setTimeout(start, 1000);});console.log("[AMQP] connected");let channel = null;try {channel = await conn.createChannel();} catch (err) {console.error("[AMQP]", err);return setTimeout(start, 1000);}const exchangeName = 'exchange_queue10';await channel.assertExchange(exchangeName,'x-modulus-hash',{durable: true,arguments: {'x-modulus': 3 // 分片数量(需与队列分片数匹配)}},);let routeKey = '';for (let i = 0; i < 1000; ++i) {// console.log('message send!', channel.sendToQueue(//   queueName,//   Buffer.from(`发送消息,${i}${Math.ceil(Math.random() * 100000)}`),//   { persistent: true, correlationId: 'ooooooooooooooo' },// 消息持久化,重启后存在//   // (err: any, ok: Replies.Empty)=>{}// ));let num = Math.ceil(Math.random() * 100000);console.log('消息发送是否成功', num, routeKey, channel.publish(exchangeName,`${routeKey}${i}`,Buffer.from(`"发送消息, index:${i}, number:${num}, routeKey:${JSON.stringify(routeKey)}"`),{persistent: true,},));}setTimeout(() => {conn.close();process.exit(0);}, 1000);} catch (err) {console.error("[AMQP]", err);return setTimeout(start, 1000);}
}start();

consumer.ts

import RabbitMQ, { type Replies } from 'amqplib/callback_api';RabbitMQ.connect('amqp://admin:admin1234@localhost:5672//mirror', (err0, conn) => {if (err0) {console.error(err0);return;}conn.createChannel(function (err1, channel) {console.log('[*] waiting...');const exchangeName = 'exchange_queue10';channel.prefetch(32);// for(let i=0;i<3;++i){//   channel.assertQueue(queueName, { durable: true }, () => {//     channel.bindQueue(queueName, exchangeName, `shard_${shardId}`);//   });// }channel.consume(exchangeName, function (msg) {if(msg){console.log(`队列'${exchangeName}'接收到的消息`, msg?.content.toString());// 第二个参数,false拒绝当前消息// 第二个参数,true拒绝小于等于当前消息// 第三个参数,3false从队列中清除// 第三个参数,4true从新在队列中排队channel.nack(msg, false, false);}}, {// noAck: true, // 是否自动确认消息,为true不需要调用channel.ack(msg);noAck: false,arguments: {}}, (err: any, ok: Replies.Empty) => {console.log(err, ok);});});conn.on("error", function (err1) {if (err1.message !== "Connection closing") {console.error("[AMQP] conn error", err1.message);}});conn.on("close", function () {console.error("[AMQP] reconnecting");});
});

http://www.dtcms.com/wzjs/833808.html

相关文章:

  • 仿win8 html5微网站纯手工代码app制作软件教程
  • 帮人做微信是哪个网站电子商务网站建设参考文献2018
  • 江苏做网站设计一个个人网站的基本步骤
  • 网站开发技术考试题目长沙网络营销群
  • 网站建设对帮助信息的设置云平台
  • 专门做顶账房的网站seo网络优化师就业前景
  • 在手机上怎么做网站企业网站ui设计欣赏
  • 北海购物网站开发设计做网站开发的想接私活
  • 室内设计网站资源过期的网站域名
  • 个人如何制作一个网站如何设计旅游网站的域名
  • 淘宝代做网站设计网站界面
  • 网站的彩色标签怎么做的设计网站免费大全
  • 网站建设要学哪些软件有哪些方面百度站长工具官网
  • 做网站前端需要懂得浏览器网页版入口
  • 汽车网站建设策划方案班级网站开发
  • 台州建站平台海南营业执照网上怎么申请
  • 邢台做网站名列前茅网站打不开原因检测
  • 佛山公益网站制作中国公司排名500强名单
  • 免费h5模板网站黄骅港股票代码
  • 公司企业建站报价异地备案 网站
  • 清新大气企业公司网站源码做企业网站要注意什么
  • 土地流转网站建设项目电脑软件商店
  • php网站 mysql数据库配置文件wordpress添加广告
  • 动漫制作专业升本专业的网站优化公司
  • 甘肃购物网站建设wordpress后台没有写权限
  • 宏福建设集团有限公司网站推广app有哪些
  • 做网站和seo哪个好南京一等一网站建设
  • 网站建设平台案例人事管理软件
  • 谷歌官方网站首页免费客源软件
  • 电子商务实训网站建设建立知识体系