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

微信视频网站怎么做的好处盘龙区网络推广

微信视频网站怎么做的好处,盘龙区网络推广,洛阳网站建设培训,备案之后怎样把 放到网站上目录 一、引言 二、RepublishMessageRecoverer 实现 2.1. 实现步骤 2.2. 实现代码 2.2.1. 异常交换机队列回收期配置类 2.2.2. 常规交换机队列配置类 2.2.3. 消费者代码 2.2.4. 消费者yml配置 2.2.5. 生产者代码 2.2.6. 生产者yml配置 2.2.7. 运行效果 一、引言 …目录 一、引言 二、RepublishMessageRecoverer 实现 2.1. 实现步骤 2.2. 实现代码 2.2.1. 异常交换机队列回收期配置类 2.2.2. 常规交换机队列配置类  2.2.3. 消费者代码 2.2.4. 消费者yml配置  2.2.5. 生产者代码  2.2.6. 生产者yml配置  2.2.7. 运行效果 一、引言 Spring AMQP提供了消费者失败重试机制在消费者出现异常时利用本地重试而不是无限地requeue到mq。我们可以通过在application.yaml文件中添加配置来开启重试机制 spring:rabbitmq:host: 127.0.0.1port: 5672username: Wangzhexiaopassword: Wangzhexiaovirtual-host: /hangzhoulistener:simple:prefetch: 1acknowledge-mode: manual # none关闭ackmanual手动ackauto自动ack# 消费者重试机制配置retry:enabled: true # 开启消费者失败重试initial-interval: 1000ms # 初始的失败等待时长为1秒multiplier: 1 # 下次失败的等待时长倍数下次等待时长 multiplier * last-intervalmax-attempts: 3 # 最大重试次数stateless: true # true无状态false有状态。如果业务中包含事务这里改为false 在开启重试模式后重试次数耗尽如果消息依然失败则需要有MessageRecoverer接口来处理它包含三种不同的实现 RejectAndDontRequeueRecoverer重试耗尽后直接reject丢弃消息默认方式 ImmediateRequeueMessageRecoverer重试耗尽后返回nack消息重新入队 RepublishMessageRecoverer重试耗尽后将失败消息投递到指定的交换机推荐 二、RepublishMessageRecoverer 实现 在实际项目的生产环境中通过 RepublishMessageRecoverer 方式我们可以定义一个异常队列和交换机来接收其他交换机队列转发的无法处理的异常消息。然后我们可以查看其中的异常消息并进行人工处理。 2.1. 实现步骤 1. 将失败处理策略改为RepublishMessageRecoverer 2. 定义接收失败消息的交换机、队列及其绑定关系 3. 定义RepublishMessageRecoverer 2.2. 实现代码 2.2.1. 异常交换机队列回收期配置类 package com.example.consumer;import jakarta.annotation.Resource; import org.springframework.amqp.core.*; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.retry.MessageRecoverer; import org.springframework.amqp.rabbit.retry.RepublishMessageRecoverer; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 异常交换机/队列/消息回收器配置类* ConditionalOnProperty 通过yml中的重试配置来选择该配置类是否启用*/ Configuration ConditionalOnProperty(prefix spring.rabbitmq.listener.simple.retry, name enabled, havingValue true) public class ErrorConfig {Resourceprivate RabbitTemplate rabbitTemplate;BeanQueue errorQueue() {return new Queue(error.queue);}BeanDirectExchange errorExchange() {return new DirectExchange(error.direct);}BeanBinding errorBind(Queue errorQueue, DirectExchange errorExchange) {return BindingBuilder.bind(errorQueue).to(errorExchange).with(error);}Beanpublic MessageRecoverer messageRecoverer() {return new RepublishMessageRecoverer(rabbitTemplate, error.direct, error);} }2.2.2. 常规交换机队列配置类  package com.example.consumer;import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.QueueBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 常规的RabbitMQ 交换机/队列绑定配置类*/ Configuration public class RabbitMQConfig {BeanQueue simpleQueue() {// 使用 QueueBuilder 创建一个持久化队列return QueueBuilder.durable(simple.queue).build();} }2.2.3. 消费者代码 package com.example.consumer;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;/*** 消费者*/ Slf4j Component public class SimpleListener {RabbitListener(queues simple.queue)public void listener1(String msg) throws Exception { // System.out.println(消费者1人生是个不断攀登的过程【 msg 】);throw new Exception();} }2.2.4. 消费者yml配置  # 消费者application.yml配置 spring:rabbitmq:host: 127.0.0.1port: 5672username: Wangzhexiaopassword: Wangzhexiaovirtual-host: /hangzhoulistener:simple:prefetch: 1acknowledge-mode: auto # none关闭ackmanual手动ackauto自动ack# 消费者重试机制配置retry:enabled: true # 开启消费者失败重试initial-interval: 1000ms # 初始的失败等待时长为1秒multiplier: 1 # 下次失败的等待时长倍数下次等待时长 multiplier * last-intervalmax-attempts: 3 # 最大重试次数stateless: true # true无状态false有状态。如果业务中包含事务这里改为false 2.2.5. 生产者代码  package com.example.publisher;import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.boot.test.context.SpringBootTest;/*** 生产者*/ Slf4j SpringBootTest class PublisherApplicationTests {Resourceprivate RabbitTemplate rabbitTemplate;Testvoid test() {rabbitTemplate.convertAndSend(simple.queue, 只要学不死就往死里学);} }2.2.6. 生产者yml配置  # 生产者application.yml配置 spring:rabbitmq:# MQ连接配置host: 127.0.0.1port: 5672username: Wangzhexiaopassword: Wangzhexiaovirtual-host: /hangzhou 2.2.7. 运行效果 最终效果是我们在消费者的代码逻辑中会抛出异常消息在反复投递消费失败后被重新入列到我们定义的异常交换机队列中
http://www.hkea.cn/news/14399912/

相关文章:

  • 专门做化妆的招聘网站免费下载ppt模板的网站有哪些
  • 点胶机 东莞网站建设c2c模式的诞生与发展
  • 怎么查网站服务器深圳做微信网站多少钱
  • 呼市网站建设手机排行榜中关村
  • 无锡朝阳网站推广梦幻西游网页版平民攻略
  • 有云服务器和域名怎么做网站asp网站知道用户名是admin
  • 给别人做网站用什么建站公司现状
  • 衡水做网站的公司免费发广告的软件
  • 中小企业微信网站建设慧聪网郭凡生
  • 商务网站建设的调研做电商网站哪里好
  • 济南网站建设套餐第三方小程序商店
  • 网站建设秋实wordpress图片 转移oss
  • 广州外贸网站建设推广企业宣传视频制作公司
  • 58同城做网站找谁wordpress 文字 居中
  • 四川专门做招聘酒的网站衡水做外贸网站
  • 网站百度不收录了西安企业网站设计哪家专业
  • 企业网站关键词优化排名应该怎么做有没有免费的推广网站
  • 做糕点的网站东源县住房和城乡建设部网站
  • 免费的行情软件app网站宣传片拍摄计划方案
  • 申请中网可信网站中国有多少网站有多少域名
  • 商城网站源码免费宁波网站开发制作
  • 如何把网站做成软件安庆网站建设推荐秒搜科技
  • ip提取网站源码带后台织梦软件展示网站
  • 网站建设与维护管理实训报告福州企业建站服务
  • wordpress 远程访问东莞优化seo
  • 佛山外贸网站建设咨询cpv广告联盟
  • 书籍网站建设的目的wordpress没有水印
  • 做网站网页需要什么软件汕头网站建设科技有限公司
  • 大兴网站开发网站建设哪家好大连网站建设招聘网
  • 网站的建设方向寻找客户的12种方法