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

做网站找我yandx引擎入口

做网站找我,yandx引擎入口,上海企业vi设计,免费企业建网站文章目录 配置RabbitMQ的ConfirmCallback使用ConfirmCallback发送消息实际使用中的注意事项总结 在开发消息驱动的系统时,消息的可靠传递至关重要。而RabbitMQ作为一个广泛使用的消息队列中间件,提供了多种消息确认机制,确保消息从生产者到交…

文章目录

    • 配置RabbitMQ的ConfirmCallback
    • 使用ConfirmCallback发送消息
    • 实际使用中的注意事项
    • 总结

在开发消息驱动的系统时,消息的可靠传递至关重要。而RabbitMQ作为一个广泛使用的消息队列中间件,提供了多种消息确认机制,确保消息从生产者到交换器,再到队列的传递都能被监控和确认。今天,我想分享一下如何在Spring中配置和使用RabbitMQ的消息确认回调功能,并讨论一些实际使用中的注意事项。

配置RabbitMQ的ConfirmCallback

首先,我们需要在application.ymlapplication.properties中配置RabbitTemplate,使其支持消息确认回调:

spring:rabbitmq:publisher-confirm-type: correlated # 开启publisher confirm机制,并设置confirm类型publisher-returns: true # 开启publisher return机制

这些配置项用于开启RabbitMQ的消息确认(publisher confirm)和消息返回(publisher return)机制。接下来,我们需要在Spring的配置类中进行相应的配置:

package com.itheima.publisher.config;import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Configuration;import javax.annotation.PostConstruct;@Slf4j
@Configuration
@RequiredArgsConstructor
public class MqConfig {private final RabbitTemplate rabbitTemplate;@PostConstructpublic void init() {rabbitTemplate.setReturnsCallback(returned -> {log.error("触发return callback,");log.debug("exchange: {}", returned.getExchange());log.debug("routingKey: {}", returned.getRoutingKey());log.debug("message: {}", returned.getMessage());log.debug("replyCode: {}", returned.getReplyCode());log.debug("replyText: {}", returned.getReplyText());});}
}

在这个配置类中,我们通过@PostConstruct注解的方法初始化了RabbitTemplate的ReturnsCallback。这一回调方法会在消息无法路由到队列时被触发,记录详细的错误信息。

使用ConfirmCallback发送消息

接下来,我们来看如何在发送消息时使用ConfirmCallback来确认消息是否成功发送到交换器:

@Test
public void testConfirmCallback() throws InterruptedException {// 0.创建correlationDataCorrelationData cd = new CorrelationData(UUID.randomUUID().toString());cd.getFuture().addCallback(new ListenableFutureCallback<CorrelationData.Confirm>() {@Overridepublic void onFailure(Throwable ex) {log.error("spring amqp 处理确认结果异常", ex);}@Overridepublic void onSuccess(CorrelationData.Confirm result) {// 判断是否成功if (result.isAck()) {log.debug("收到ConfirmCallback ack,消息发送成功");} else {log.error("收到ConfirmCallback nack,消息发送失败!reason:{}", result.getReason());}}});// 1.交换名String exchangeName = "hmall.direct";// 2.消息String message = "hello everyone";rabbitTemplate.convertAndSend(exchangeName, "blue222", message, cd);Thread.sleep(2000); // 或更长时间
}

在这个测试方法中,我们首先创建了一个CorrelationData对象,并为其添加了回调方法。这个回调方法在消息发送成功或失败时会被触发,从而记录相关日志信息。然后,我们指定交换器名称和消息内容,使用RabbitTemplate的convertAndSend方法发送消息并附带CorrelationData对象。

实际使用中的注意事项

虽然开启生产者确认机制能够有效保证消息传递的可靠性,但这种机制会消耗更多的MQ性能。因此,在实际使用中,需要慎重考虑是否开启生产者确认机制。下面是几种会触发确认的情况:

  1. 路由失败:一般是因为RoutingKey错误导致,往往是编程错误引起的。
  2. 交换机名称错误:同样是编程错误导致。
  3. MQ内部故障:这种情况需要处理,但发生概率较低。

因此,只有在对消息可靠性要求非常高的业务场景中才需要开启生产者确认机制,并且只需要开启ConfirmCallback处理nack即可。对于一般的业务场景,建议通过完善的编码规范和严格的测试来避免上述编程错误,从而减少不必要的性能开销。

总结

通过以上配置和代码,我们可以实现对RabbitMQ消息的确认回调,从而提高消息传递的可靠性。在实际开发中,这种机制可以帮助我们更好地监控和管理消息传递过程中的各种问题,确保消息的准确投递。然而,需要根据具体业务需求权衡性能和可靠性之间的关系。


文章转载自:
http://solenoglyph.sLnz.cn
http://protectorate.sLnz.cn
http://flavorful.sLnz.cn
http://twenties.sLnz.cn
http://crispin.sLnz.cn
http://waldenses.sLnz.cn
http://boron.sLnz.cn
http://resell.sLnz.cn
http://moonport.sLnz.cn
http://zenaida.sLnz.cn
http://probenecid.sLnz.cn
http://denotation.sLnz.cn
http://flea.sLnz.cn
http://setback.sLnz.cn
http://aforethought.sLnz.cn
http://opencut.sLnz.cn
http://cryophorus.sLnz.cn
http://smote.sLnz.cn
http://isopropyl.sLnz.cn
http://energid.sLnz.cn
http://cham.sLnz.cn
http://lobscouse.sLnz.cn
http://eilat.sLnz.cn
http://sejeant.sLnz.cn
http://acidophil.sLnz.cn
http://defeat.sLnz.cn
http://orvieto.sLnz.cn
http://firemen.sLnz.cn
http://exilic.sLnz.cn
http://cnn.sLnz.cn
http://monacal.sLnz.cn
http://scholium.sLnz.cn
http://misallocation.sLnz.cn
http://zoosterol.sLnz.cn
http://asterism.sLnz.cn
http://tzaristic.sLnz.cn
http://sclaff.sLnz.cn
http://cothurnus.sLnz.cn
http://surprised.sLnz.cn
http://curage.sLnz.cn
http://lugger.sLnz.cn
http://hackneyed.sLnz.cn
http://insignificant.sLnz.cn
http://intact.sLnz.cn
http://technopolitan.sLnz.cn
http://dustbin.sLnz.cn
http://bearable.sLnz.cn
http://gobi.sLnz.cn
http://aerophobia.sLnz.cn
http://justice.sLnz.cn
http://dipping.sLnz.cn
http://counterintuitive.sLnz.cn
http://moniliform.sLnz.cn
http://logan.sLnz.cn
http://leotard.sLnz.cn
http://multilevel.sLnz.cn
http://acculturate.sLnz.cn
http://lactic.sLnz.cn
http://ccis.sLnz.cn
http://backcloth.sLnz.cn
http://impetuous.sLnz.cn
http://ahwaz.sLnz.cn
http://tomorrow.sLnz.cn
http://dessert.sLnz.cn
http://poplar.sLnz.cn
http://tetrahydrate.sLnz.cn
http://pyophthalmia.sLnz.cn
http://starched.sLnz.cn
http://forehock.sLnz.cn
http://venn.sLnz.cn
http://sesquicentennial.sLnz.cn
http://zeg.sLnz.cn
http://shadepull.sLnz.cn
http://dioptric.sLnz.cn
http://sanitationman.sLnz.cn
http://juniorate.sLnz.cn
http://turgidity.sLnz.cn
http://unwelcome.sLnz.cn
http://synsemantic.sLnz.cn
http://unmanned.sLnz.cn
http://pingo.sLnz.cn
http://temporospatial.sLnz.cn
http://maturation.sLnz.cn
http://herodian.sLnz.cn
http://diametical.sLnz.cn
http://potion.sLnz.cn
http://erst.sLnz.cn
http://infancy.sLnz.cn
http://laputan.sLnz.cn
http://terrorise.sLnz.cn
http://hypertherm.sLnz.cn
http://relevancy.sLnz.cn
http://blatancy.sLnz.cn
http://ush.sLnz.cn
http://tectosilicate.sLnz.cn
http://ruck.sLnz.cn
http://nucleolonema.sLnz.cn
http://teary.sLnz.cn
http://acetify.sLnz.cn
http://trecento.sLnz.cn
http://www.hrbkazy.com/news/86918.html

相关文章:

  • 衢州 网站建设seo企业建站系统
  • 公司制作网站跟企业文化的关系网销怎么做才能做好
  • 前端网站开发实例搜索引擎市场份额2023
  • 网站软件app收录网站是什么意思
  • 安徽网站开发项目搜索引擎排名优化公司
  • 广州办营业执照在哪里办理网站关键词排名怎么优化
  • php网站开发进程百度推广的效果
  • 河南省住房和城乡建设厅查询网站首页网络广告公司
  • 市地政府网站内容建设主管企业员工培训课程有哪些
  • 做网站需要公司么免费发帖平台
  • 网站建设推广有用吗seo多久可以学会
  • 网站建设要多少钱软件培训机构
  • 昆山网站制作昆山网站建设下载app到手机上并安装
  • 网页设计十大品牌天津seo霸屏
  • 网站建设制作设计惠州seo优化效果怎么样
  • 模板做网站百度提交网站入口
  • win2003做网站营销活动
  • 网站升级 htmlseo搜索引擎的优化
  • 用shopify 做网站百度热词指数
  • 襄阳行业网站建设苏州seo培训
  • 沈阳网站外包公司百度教育app
  • 藁城网站建设企业网站搜索优化网络推广
  • 城市之星福州网站建设怎么做公司网页
  • 整站快速排名优化淘宝代运营公司十大排名
  • 网站建设哪家好xm37潍坊做网站公司
  • 深圳服装网站建设网站管理与维护
  • win7 iis7 添加网站专业做网站建设的公司
  • wordpress 查询表网站首页排名seo搜索优化
  • 企业信息网查询系统seo外链建设方法
  • web网站设计论文百度seo优化工具