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

微信小程序源码网站深圳创业贷

微信小程序源码网站,深圳创业贷,长沙seo搜索,如何自己编写小程序文章目录 一.消息可靠性1.生产者消息确认 MQ的一些常见问题 1.消息可靠性问题:如何确保发送的消息至少被消费一次 2.延迟消息问题:如何实现消息的延迟投递 3.高可用问题:如何避免单点的MQ故障而导致的不可用问题 4.消息堆积问题:如何解决数百万消息堆积#xff0c;无法及时… 文章目录 一.消息可靠性1.生产者消息确认 MQ的一些常见问题 1.消息可靠性问题:如何确保发送的消息至少被消费一次 2.延迟消息问题:如何实现消息的延迟投递 3.高可用问题:如何避免单点的MQ故障而导致的不可用问题 4.消息堆积问题:如何解决数百万消息堆积无法及时消费的问题 一.消息可靠性 消息从生产者发送到exchange再到queue再到消费者有哪些导致消息丢失的可能性 -发送时丢失 生产者发送的消息未送达exchange 消息到达exchange后未到达queue MQ宕机queue将消息丢失 consumer接收到消息后未消费就宕机 1.生产者消息确认 生产者确认机制 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后会返回一个结果给发送者表示消息是否处理成功。结果有两种请求 publisher-confirm发送者确认 消息成功投递到交换机返回ack 消息未投递到交换机返回nack publisher-return发送者回执 消息投递到交换机了但是没有路由到队列。返回ACK及路由失败原因。 注意:确认机制发送消息时需要给每个消息设置一个全局唯一id以区分不同消息避免ack冲突 简单来说:在publisher-confirm下的nack是消息投递到交换机失败返回的信息;在publisher-confirm下的ack是消息成功到达了消费者;在publisher-return下的ack是消息到达了交换机但是路由失败的返回信息 SpringAMQP实现生产者确认 一.想要实现生产者消息确认机制,需要在配置文件编写开启代码,即在微服务的application.yml中添加配置: spring:rabbitmq:publisher-confirm-type: correlated publisher-returns: true template:mandatory: true配置说明 publish-confirm-type开启publisher-confirm这里支持两种类型 simple同步等待confirm结果直到超时 correlated异步回调定义ConfirmCallbackMQ返回结果时会回调这个ConfirmCallback(推荐使用) publish-returns开启publish-return功能同样是基于callback机制不过是定义ReturnCallback template.mandatory定义消息路由失败时的策略。true则调用ReturnCallbackfalse则直接丢弃消息 二.配置ReturnCallback ReturnCallback是消息到达交换机但是没有成功进行路由的回调函数(作用于全局) 每个RabbitTemplate只能配置一个ReturnCallback因此需要在项目启动过程中配置 Slf4j Configuration public class CommonConfig implements ApplicationContextAware {Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {// 获取RabbitTemplateRabbitTemplate rabbitTemplate applicationContext.getBean(RabbitTemplate.class);// 设置ReturnCallbackrabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) - {log.info(消息发送失败应答码{}原因{}交换机{}路由键{},消息{}, replyCode, replyText, exchange, routingKey, message.toString());});} }对于代码中的ApplicationContext是负责管理和组织Spring应用中的各个组件如bean、配置文件等. 通过实现ApplicationContextAware这个接口bean可以获取对ApplicationContext的引用并因此获得访问应用上下文中的其他bean、资源和容器特性的能力,所以说实现了接口等同于获取到了bean容器,就可以获取到 rabbitTemplate并进行设置唯一的ReturnCallback 在回调函数中,消息路由失败会返回很多信息,其中使用路由键,消息的交换机的名称可以实现重发消息 三.在生产者类中发送消息并同时实现ConfirmCallback ConfirmCallback同样是回调函数,与ReturnCallback不同的是ConfirmCallback可以创建多次 ConfirmCallback是对消息还没有进入到交换机就丢失的一种消息返回策略,当丢失后,执行回调函数并可以记录消息的失败原因和UUID,成功也是同理 Test public void testSendMessage2SimpleQueue() throws InterruptedException {// 消息体String message hello, spring amqp!;// 消息ID需要封装到CorrelationData中CorrelationData correlationData new CorrelationData(UUID.randomUUID().toString());// 添加callbackcorrelationData.getFuture().addCallback(result - {if(result.isAck()){ // ack消息成功log.debug(消息发送成功, ID:{}, correlationData.getId());}else{// nack消息失败log.error(消息发送失败, ID:{}, 原因{},correlationData.getId(), result.getReason());}},ex - log.error(消息发送异常, ID:{}, 原因{},correlationData.getId(),ex.getMessage()));// 发送消息rabbitTemplate.convertAndSend(amq.direct, simple, message, correlationData); }总结: SpringAMQP中处理消息确认的几种情况 publisher-comfirm 消息成功发送到exchange返回ack 消息发送失败没有到达交换机返回nack 消息发送过程中出现异常没有收到回执 消息成功发送到exchange但没有路由到queue调用ReturnCallback
http://www.dnsts.com.cn/news/86742.html

相关文章:

  • 企业平台网站建设方案企业管理平台下载
  • 有自己的网站怎么做淘宝客公司网页设计流程
  • 做任务能赚钱的网站网站建设需要匹配人员
  • 网站的链接结构国外html响应式网站
  • 网站制作手机版室内设计效果图手绘线稿
  • 泰安网站制作推荐网站域名备案信息查询
  • 上海ktv目前营业情况四川二级站seo整站优化排名
  • 做网站客户不给钱怎么办衡州网站建设seo
  • 网站怎么生成二维码制作好看的wordpress页面
  • 网站文件夹权限wordpress生活插件
  • 学生求职网站的需求分析怎么做分析杭州高端网站建设开发的区别
  • 哪个网站可以做c语言的题网站定制型和营销型
  • 兰州网站制作培训班教育培训门户网站模板下载
  • 网站搜索 代码wordpress 深度定制
  • 自己做网站开网店电商网站开发要求
  • 电子商务网站建设策划书网站类型潍坊市建设一体化平台网站
  • 中国十大知名网站建设app开发定制外包22
  • 包头网站建设易通网站流量是什么
  • 设计企业网站首页建设银行网站安全性分析
  • 锟鹏建设招聘网站网站建设简单案例
  • 建设银行网银网站无法访问企业网站设计哪家好
  • 网络优化网站建设学习网站建设.龙兵科技
  • 贵阳网站网站建设wordpress贷款主题
  • 专业网站推广引流17模板网入口
  • 网站教程设计温州网络科技有限公司
  • 贵州省城乡住房和建设厅网站阿里云买域名后怎么做网站
  • 电商网站设计的原则黄页是什么东西
  • 网站互动栏目设置西安的互联网营销公司
  • 怎么建设自己网站(儿童)步骤没地址怎么注册公司
  • 部门网站建设整改河南省住房城乡与建设厅网站首页