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

网站三要素怎么做丰台专业网站建设公司

网站三要素怎么做,丰台专业网站建设公司,wordpress 阅后即,南宁网站建设费用在RabbitMQ中,CorrelationData是一个用于封装业务ID信息的类,它主要在消息确认机制中发挥作用。以下是关于CorrelationData在RabbitMQ中的详细作用: 封装业务ID信息: 当发送消息时,可以将业务ID信息封装在Correlation…

在RabbitMQ中,CorrelationData是一个用于封装业务ID信息的类,它主要在消息确认机制中发挥作用。以下是关于CorrelationData在RabbitMQ中的详细作用:

封装业务ID信息:
当发送消息时,可以将业务ID信息封装在CorrelationData对象中,并作为参数传递给消息发送方法。这样,在消息处理过程中,可以方便地追踪和识别与该消息相关的业务信息。
消息确认机制:
RabbitMQ支持消息确认机制,即生产者发送消息后,可以等待消费者的确认消息,以确保消息已成功被消费者处理。
CorrelationData在这种机制中起到关键作用。生产者发送消息时,可以将CorrelationData对象与消息一起发送。当消费者处理完消息后,可以通过CorrelationData中的业务ID来确认该消息。
唯一性标识:
CorrelationData对象内部通常包含一个id属性,用于表示当前消息的唯一性。这个唯一性标识可以在整个消息处理流程中保持不变,方便进行消息追踪和确认。
获取方式:
在消费者端,可以通过消息的headers属性来获取CorrelationData中的业务ID信息。例如,在Spring AMQP中,可以使用Message.getHeaders().get(“spring_returned_message_correlation”)来获取CorrelationData中的业务ID。
与DeliveryTag的区别:
DeliveryTag是RabbitMQ自动为每条消息生成的唯一标识,用于消息的确认和重试等机制。而CorrelationData则是业务层面上的唯一性标识,用于标识和追踪与特定业务相关的消息。
综上所述,CorrelationData在RabbitMQ中主要用于封装和传递与消息相关的业务ID信息,以便在消息处理过程中进行追踪和确认。它通过与RabbitMQ的消息确认机制相结合,为消息的可靠传递和处理提供了重要支持。

例子:

@Service
public class TestServiceImpl implements TestService {@Autowiredprivate MsgLogMapper msgLogMapper;@Autowiredprivate RabbitTemplate rabbitTemplate;@Overridepublic ServerResponse send(Mail mail) {String msgId = RandomUtil.UUID32();mail.setMsgId(msgId);MsgLog msgLog = new MsgLog(msgId, mail, RabbitConfig.MAIL_EXCHANGE_NAME, RabbitConfig.MAIL_ROUTING_KEY_NAME);msgLogMapper.insert(msgLog);// 消息入库CorrelationData correlationData = new CorrelationData(msgId);rabbitTemplate.convertAndSend(RabbitConfig.MAIL_EXCHANGE_NAME, RabbitConfig.MAIL_ROUTING_KEY_NAME, MessageHelper.objToMsg(mail), correlationData);// 发送消息return ServerResponse.success(ResponseCode.MAIL_SEND_SUCCESS.getMsg());}}

其中的String msgId = RandomUtil.UUID32(); 是自己随机生成的编码,作为唯一的业务ID信息

对于DeliveryTag,则是在消息手动确认的时候,需要传给MQ的一个消息标识(这个仅仅是消息的标识,和业务没关系)
使用如下:

package com.atguigu.gulimall.consumertrue.listener;import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;/****此处用一个类下的两个方法来模拟消费者** @author: jd* @create: 2024-06-25*/
@Component
public class MyConsumerListener {@RabbitListener(bindings = {@QueueBinding(value = @Queue("consumer_queue_2"),//绑定交换机exchange = @Exchange(value = "muscle_fanout_exchange", type = "fanout"))})public void consumer2(String msg,Message message, Channel channel) throws Exception {long deliveryTag = message.getMessageProperties().getDeliveryTag();try {System.out.println("消费者2 => " + msg);channel.basicAck(deliveryTag, false);  //手动确认 设置消息唯一标识} catch (Exception e) {channel.basicReject(deliveryTag, false);e.printStackTrace();}}}
http://www.yayakq.cn/news/425700/

相关文章:

  • 福州网站建设公司哪个好网站建设工作流程html
  • 唐山建设网站制作自己做网站成本
  • 商务网站建设中存在的问题人和动物做的电影网站
  • 免费网站流量统计工具云南专业网站优化
  • 上海网站建设 排名seo技术外包 乐云践新专家
  • 电子商务网站建设专业主修课程梅州市住房和城乡建设局网站
  • 网店运营教学网站优化+山东
  • 佛山做公司网站济南中京网站建设公司
  • 有什么网站开发软件wordpress主题版权
  • 网站访客qq提取wordpress快速插图
  • 网站新闻专题怎么做移动软件管理的应用场景
  • 网站备案成功后可以改吗移动应用开发技术
  • 网站建设调研通知网站开发方倍工作室
  • 大学网站建设方案书自己设计网站
  • 我想建设一个网站网站建设需要公司
  • 企业网站建设实训小结免费私人网站建设
  • 怎么自学做网站互联网创业平台有哪些
  • 重庆做个网站多少钱wordpress怎么编程
  • 专业的无锡网站建设电子政务与网站建设工作总结
  • 响应式商品展示的网站做现金贷的网站有哪些
  • 做电影网站量刑标准vi设计经典案例
  • 自己做电影网站怎么赚钱2023新闻大事10条
  • 南宁网站建设公司利润ASP net网站开发资料
  • 网站建设 申请周口航迪科技网站建设公司怎么样
  • 做网站自动赚钱qq企业邮箱怎么申请
  • 网站建设哪家公司好网站建设秦皇岛seo网站推广
  • 上海网站建设知识 博客网站建设与推广销售户话术
  • 北京网站优化昆山网站建设官网
  • 济南做网站优化哪家好长沙网站建设维护
  • 食品网站网页设计渭南做网站的公司电话