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

服务专业的网站建站公司wordpress整站cdn

服务专业的网站建站公司,wordpress整站cdn,协同办公oa,新开传奇网站发布网单上期写到高并发下RabbitMq消息中间件你应该介么玩今天给小伙伴说说#xff01;有自己看法的也可以在评论区留言探讨#xff0c;也可以转发关注下我以后会长期分享#xff01;目录#xff1a;确保消息发送到RabbitMQ服务器确保消息被正确的路由确保消息在队列正确地存储确保…上期写到高并发下RabbitMq消息中间件你应该介么玩今天给小伙伴说说有自己看法的也可以在评论区留言探讨也可以转发关注下我以后会长期分享目录确保消息发送到RabbitMQ服务器确保消息被正确的路由确保消息在队列正确地存储确保消息从队列正确地投递到消费者消费者回调补偿机制消息幂等性消息的顺序性可靠性投递首先需要明确效率和可靠性是无法兼得的如果要保证每一个环节都成功势必会对消息的收发效率造成影响如过是一些业务实时性要求不是特别高的场合可以牺牲可靠性来换取效率。①代表消息从生产者发送到Exchange②代表消息从Exchange路由到Queue③ 代表消息在Queue中存储④ 代表消费者订阅Queue并消费消息。1.确保消息发送到RabbitMQ服务器可能因为网络或者Broker的问题导致①失败而生产者是无法得知消息是否正确发送到Broker的。有两种解决方案第一种是Transaction事务模式第二种是Confirm确认模式1.在通过channel.txSelect方法开启事务之后我们便可以发布消息给RabbitMQ了如果事务提交成功则消息一定 到达了RabbitMQ中如果在事务提交执行之前由于RabbitMQ异常崩溃或者其他原因抛出异常这个时候我们便可以将其捕获进而通过执行channel.txRollback方法来实现事务回滚。使用事务机制的话会“吸干”RabbitMQ的性 能一般不建议使用。2.生产者通过调用channel.confirmSelect方法即Confirm.Select命令将信道设置为confirm模式。一旦消息被投递到所有匹配的队列之后RabbitMQ就会发送一个确认Basic.Ack给生产者包含消息的唯一ID这就使得生产者知晓消息已经正确到达了目的地了。2.确保消息被正确的路由可能因为路由关键字错误或者队列不存在或者队列名称错误导致②失败。使用mandatory参数和ReturnListener可以实现消息无法路由的时候返回给生产者。另一种方式就是使用备份交换机alternate-exchange无法路由的消息会发送到这个交换机上。MapString,Object arguments new HashMapString,Object(); // 指定交换机的备份交换机 arguments.put(alternate-exchange,ALTERNATE_EXCHANGE); channel.exchangeDeclare(TEST_EXCHANGE,topic, false, false, false, arguments);3.确保消息在队列正确地存储可能因为系统宕机、重启、关闭等等情况导致存储在队列的消息丢失即③出现问题。解决方案1.队列持久化// String queue, boolean durable, boolean exclusive, boolean autoDelete, MapString, Object arguments channel.queueDeclare(QUEUE_NAME, true, false, false, null);2.交换机持久化// String exchange, boolean durable channel.exchangeDeclare(MY_EXCHANGE,true);3.消息持久化AMQP.BasicProperties properties new AMQP.BasicProperties .Builder() // 2代表持久化其他代表瞬态 .deliveryMode(2) .build(); channel.basicPublish(, QUEUE_NAME, properties, msg.getBytes());4.确保消息从队列正确地投递到消费者如果消费者收到消息后未来得及处理即发生异常或者处理过程中发生异常会导致④失败。 为了保证消息从队列可靠性到达消费者RabbitMQ提供了消息确认机制message acknowledgement,消费者在订阅队列时可以指定autoAck参数当autoAck等于false时RabbitMQ会等待消费者显示地回复确认消息才从队列中删除该消息。 如果消息消费失败也可以调用Basic.Reject或者BasicNack来拒绝当前消息而不是确认如果requere参数为true可以把这条消息重新存入队列以便发送给下一个消费者。5.消费者回调消费者处理消息之后可以再发送一条消息给生产者或者调用生产者地API告知消息处理完毕。6.补偿机制对于一定时间没有响应地消息可以设置一个定时重发地机制但是要控制次数比如最多重复三次否则会造成消息堆积。7.消息幂等性服务端是没有这种控制的只能在消费端控制。如何避免消息的重复消费消息重复消费可能会有两个原因生产者的问题。环节①重复发送消息比如在开启Confirm模式但未收到确认环节④出了问题由于消费者未发送ACK或者其它原因消息重复投递对于重复发送的消息可以对每一条消息生成一个唯一的业务id通过日志或者建表来做重复控制。8.消息的顺序性消息的顺序性是指消费者消费消息的顺序跟生产者投递消息的顺序是一致的。在RabbitMQ中一个队列有多个消费者时由于不同的消费者消费消息的速度是不一样的顺序无法保证学习分享对于高并发下RabbitMq消息中间件的使用这位大咖也有讲解的视频在这免费分享给大家有需要的朋友可以帮忙点个赞关注下吧分享不易然后关注我的专栏Java快速进阶通道看顶部提示或直接点我领取哦视频教学的内容包括削峰限流、解耦作用有限资源完成高并发购票RabbitMq原理透析购票完整闭环流程单元测试与多线程高并发测试不管多忙每天给自己预留至少半小时的学习时间拒绝做代码垃圾的搬运工有不对的地方可以在评论区留言觉得不错的朋友希望能得到您的转发支持同时可以持续关注我每周定期会分享3到4篇精选干货
http://www.sadfv.cn/news/101417/

相关文章:

  • 智慧团建登陆网站wordpress 首页图片
  • 工信部的网站备案信息查询成立公司需要几个股东
  • 多语种网站建设开发网站短信接口怎么做
  • 出名的设计网站建一个漫画网站
  • 同心县建设局网站网站建设账务处理
  • 中国最大的建材网站企业网站设计有哪些新功能
  • dede织梦建站教程网站设计建设定制
  • 如何查看网站的点击量高水平建设专业网站
  • 厦门市建设局综合业务平台网站菏泽厚德网站建设公司怎么样
  • 大型网站 开发语言主题网站开发介绍
  • 百度系优化一个seo良好的网站其主要流量往往来自
  • 为什么有网网站打不开怎么回事啊宁波网站建设设计公司信息
  • 学校网站建设项目需求报告南阳建网站企业有哪些
  • 桂林网站建设找骏程有专门做试吃的网站吗
  • 网站赚取广告费网站的栏目
  • 12306 网站开发中卫市平面设计培训学校
  • 有什么免费做代理的网站网站开发+职位描述
  • 网站中英切换实例wordpress标题相关
  • 祥网站建设网站设计科技有限公司
  • 贵阳网站商城建设wordpress 轻量级
  • 企业公司网站 北京如何把网站让百度录用
  • 西樵营销网站制作射阳建设网站
  • 团购网站切换城市js特效代码广东省公路建设公司网站
  • html5自适应网站源码设计工作室的经营范围
  • 浅谈sns网站与流行sns网站对比html网页设计代码范文制作旅游景点
  • 企业网站布局代码重庆定制网站开发价格
  • 浦元品牌网站建设试用网建设网站
  • 北京平台网站建设价格百度官网认证 网站排名
  • 建站技术入门优化企业门户网站
  • iis 发布网站内部服务器错误优化seo搜索排名