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

phpcms手机网站模板珠海公司做网站

phpcms手机网站模板,珠海公司做网站,做招聘图片的网站,网络营销能做什么RabbitMQ 发布确认模式 一、原理 RabbitMQ 的发布确认模式#xff08;Publisher Confirms#xff09;是一种机制#xff0c;用于确保消息在被 RabbitMQ 服务器成功接收后#xff0c;发布者能够获得确认。这一机制在高可用性和可靠性场景下尤为重要#xff0c;能够有效防止…RabbitMQ 发布确认模式 一、原理 RabbitMQ 的发布确认模式Publisher Confirms是一种机制用于确保消息在被 RabbitMQ 服务器成功接收后发布者能够获得确认。这一机制在高可用性和可靠性场景下尤为重要能够有效防止消息丢失。 在发布消息时RabbitMQ 会向发布者返回确认信号指示该消息已成功处理。这一过程可以大大提高消息传递的可靠性尤其是在系统出现故障时。通过实现发布确认模式发布者可以确保所有发送的消息都已被服务器接收并存储从而维护数据一致性。 二、三种方式比较 1. 单个确认 单个确认模式是指每发送一条消息发布者都会等待 RabbitMQ 发送确认信号。这种方式简单易懂但在高负载场景下性能表现可能较差因为每条消息都需要等待确认造成延迟。 优点 实现简单易于理解和使用。适合消息量较小的场景。 缺点 性能较低确认过程中的延迟会影响整体吞吐量。 public static void publishMessageIndividually() throws Exception {Channel channel RabbitMqUtils.getChannel();String queue_name UUID.randomUUID().toString();channel.queueDeclare(queue_name,false,false,false,null);//开始时间long begin System.currentTimeMillis();channel.confirmSelect();for (int i 0; i message_count; i) {String message i;channel.basicPublish(,queue_name,null,message.getBytes());//单个消息马上确认boolean flag channel.waitForConfirms();if(flag true){System.out.println(消息发送成功);}}//结束时间long end System.currentTimeMillis();System.out.println(发布message_count条用时(end - begin)mills);} 2. 批量确认 批量确认模式允许发布者在发送多条消息后一次性等待 RabbitMQ 的确认信号。通过将多条消息组合在一起进行确认可以显著提高消息发布的效率。 优点 显著提高吞吐量减少网络延迟。适合需要高性能的场景。 缺点 需要管理确认逻辑稍微复杂。 一旦发生错误可能需要重新发送整个批次的消息。 //批量发布确认public static void publishMessageBatch() throws Exception {Channel channel RabbitMqUtils.getChannel();String queue_name UUID.randomUUID().toString();channel.queueDeclare(queue_name,false,false,false,null);channel.confirmSelect();//开始时间long begin System.currentTimeMillis();//批量确认的长度int basicSize 100;for (int i 1; i message_count; i) {String message i;channel.basicPublish(,queue_name,null,message.getBytes());if(i%basicSize 0){System.out.println(消息发送成功);channel.confirmSelect();}}//结束时间long end System.currentTimeMillis();System.out.println(批量发布message_count条用时(end - begin)mills);}3. 异步批量确认 异步批量确认模式更进一步发布者在发送批量消息后不必等待 RabbitMQ 的确认信号而是可以继续发送更多消息。RabbitMQ 在后台处理确认这样可以进一步提高效率。 优点 最高的性能和吞吐量几乎没有延迟。发布者可以充分利用 CPU 和网络资源。 缺点 实现复杂度增加需要处理可能出现的消息丢失。需要额外的逻辑来确保消息的可靠性。 //异步发布确认public static void publishMessageAsync() throws Exception {Channel channel RabbitMqUtils.getChannel();String queue_name UUID.randomUUID().toString();channel.queueDeclare(queue_name,false,false,false,null);//开启发布确认channel.confirmSelect();/*** 线程安全有序的哈希表 适用于高并发* 1、将序号和消息关联* 2、轻松删除条目主要给到序号* 3、支持高并发*/ConcurrentSkipListMapLong, String outstandingConfirms new ConcurrentSkipListMap();//开始时间long begin System.currentTimeMillis();//消息确认成功的回调ConfirmCallback ackCallBack (deliveryTag, multiple)-{//2:删除确认的消息if(multiple){ConcurrentNavigableMapLong,String confirmed outstandingConfirms.headMap(deliveryTag);confirmed.clear();}else {outstandingConfirms.remove(deliveryTag);}System.out.println(确认消息deliveryTag);};/*** 1、消息类型* 2、是否批量*/ConfirmCallback NackCallBack (deliveryTag, multiple)-{//3:打印未确认的String message outstandingConfirms.get(deliveryTag);System.out.println(发布的消息message未被确认序列号deliveryTag);};//准备消息的监听器//1.监听成功的//2.监听失败的channel.addConfirmListener(ackCallBack,NackCallBack);for (int i 1; i message_count; i) {String message i;channel.basicPublish(,queue_name,null,message.getBytes());//1:此处记录所有要发送的消息outstandingConfirms.put(channel.getNextPublishSeqNo(),message);}//结束时间long end System.currentTimeMillis();System.out.println(批量发布message_count条用时(end - begin)mills);}三、速度对比 三种时间对比 在速度和吞吐量方面三种模式各有优势。一般来说单个确认模式的速度最慢而异步批量确认模式则能提供最佳性能。在实际应用中选择合适的确认模式应根据业务需求、消息量以及系统的可承受负载来综合考虑。 发布确认模式为 RabbitMQ 提供了灵活的消息发布保障机制。根据具体需求选择合适的确认方式将有助于实现高效、可靠的消息传递系统。
http://www.w-s-a.com/news/284178/

相关文章:

  • 新手建立网站的步骤网站建设费怎么入分录
  • 哪里建网站性价比高做网站赚取广告费
  • 邢台集团网站建设价格微信怎么做捐钱的网站
  • 做网站费用需要分摊吗装修公司一般多少钱一平方
  • 公司主页的网站格式wordpress自动推送给百度
  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网