当前位置: 首页 > 知识库问答 >
问题:

Apache Camel转发和消息顺序

房学文
2023-03-14

我正在调查,看看骆驼是否能满足以下要求。要求是:传入队列上的消息顺序应该与传出队列上的消息顺序相匹配。

from("incomingQueue").to("outgoingQueue);

谢谢你的帮助。

共有1个答案

秦凯旋
2023-03-14

队列是先进先出。因此,在一个单线程进程中,队列#2将以与队列#1相同的顺序接收消息。如果需要,大多数endpoint都有一种方法可以将消费者减少到1。

如果您想保持使用者计数,那么您可以在将消息放置到队列#2之前使用resequencer。就在消息被放入队列#1之前,您可以用序列号填充一个头,然后队列#2之前的resequencer将确保它们被重新排序

 类似资料:
  • 主要内容:1 start启动服务定时锁定消息队列,1.2 lockAll锁定所有消息队列,2 submitConsumeRequest提交消费请求,3 ConsumeRequest执行消费任务,3.1 tryLockLaterAndReconsume尝试延迟加锁并重新消费,3.2 takeMessages拉取消息,4 processConsumeResult处理消费结果,4.1 commit提交消息,4.2 checkReconsumeTimes检查重试次数,,,基于RocketMQ relea

  • 多客服的消息转发绝对是超级的简单,转发的消息类型为 transfer: use EasyWeChat\Kernel\Messages\Transfer; // 转发收到的消息给客服 $app->server->push(function($message) { return new Transfer(); }); $response = $app->server->serve(); 当

  • 我每个websocket接收几十条消息,这些消息可能只差几毫秒就能到达。我需要用操作来处理这些数据,这些操作有时会花费一些时间(例如,在DB中的插入)。为了处理接收到的新消息,必须完成对前一个消息的处理。 我的第一个想法是用Node.js Bull(用Redis)准备一个队列,但恐怕太长了,无法运行。这些消息的处理必须保持快速。 我尝试使用JS迭代器/生成器(直到现在我还从未使用过),我测试了如下

  • 好吧,我对servicebus还比较陌生。在一个项目中,我们使用Azure servicebus对消息进行排队。我们的架构大致如下所示: 因此,我们的想法是,在我们的源系统中,发生了各种各样的事情,这导致消息被放在servicebustopics上。现在,我们的责任是将这些事件同步到外部客户机,以便他们知道我们在做什么。 现在的问题是,目前我们不使用servicebus会话,所以消息顺序无法保证。

  • 通常在服务器发送一些数据时发生Message事件。服务器发送到客户端的消息可以包括纯文本消息,二进制数据或图像。无论何时发送数据,都会触发函数。 此事件充当客户端对服务器的耳朵。每当服务器发送数据时,都会触发事件。 以下代码段描述了打开Web Socket协议的连接。 还需要考虑使用Web套接字可以传输哪些类型的数据。Web套接字协议支持文本和二进制数据。就Javascript而言,文本指的是字符

  • 我有1个活动和1个普通类,其中活动1接收消息,普通类发送消息。如何实施: 在活动一中。班 在Ordinary.class 如何发送空消息(1)的代码?