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

Akka参与者消息的顺序排序

崔棋
2023-03-14

我对Akka演员和演员模型有点困惑。从参与者A发送到参与者B的消息是否保持顺序?如何在本地/网络环境中实现这一点?据我所知,网络引入了可变延迟,如果M1的延迟为1秒,M2为0.5秒,那么消息M1和消息M2如何保持顺序?

共有1个答案

笪煌
2023-03-14

正如Viktor Klang发布的链接所述:基本上,您可以保证两个特定参与者之间的消息将按照发送方和接收方之间发送的顺序到达,但这并不意味着如果另一个参与者发送给接收方,则顺序将保留在来自不同发送者的消息的接收者队列。也就是如果A1和A3都发送到A2,那么A1的所有消息都将按照A1发送的顺序在队列中。来自A3的消息也是如此,但是它们可能会交错在A1的消息中,而不管A1或A3何时发送它们的消息。(这仅适用于FIFO和非优先级队列)

 类似资料:
  • 我正在尝试实现一个简单的actor,它将使用akka zeromq从zeromq接收消息。 系统只打印 发送消息是通过一个简单的python完成的 我注意到的另一件奇怪的事情是,按下enter键后,程序不会终止。如果我使用python脚本向它发送一条消息,它将被激活。以下是完整的输出: 使用 是版本(在Arch Linux上) 这是

  • 我正在使用Cloud pub/sub构建一个作业队列,我希望按照pub/sub服务接收消息的顺序接收消息。我创建了一个主题和一个启用消息排序的订阅。我正在使用包用Python开发我的系统。正如本文档中所建议的,我必须发布带有排序键的消息。 如果邮件具有相同的排序键,并且您将邮件发布到相同的区域,则订阅服务器可以按顺序接收邮件。 在订阅方,我需要批量处理消息,所以我使用参数进行控制。但是,当我启用m

  • 在消费者重新平衡期间如何确保消息排序。假设最初我们有四个分区:p1、p2、p3、p4和两个消费者c1和c2(在同一组中)。因此每个消费者得到两个分区,例如c1 : p1,p2和c2 : p3,p4。 现在添加了新的消费者,比如c3和c4,重新平衡发生,这样每个消费者都有一个分区,比如c1: p1、c2: p2、c3: p3、c4: p4。 在此期间,消费者c1可能正在处理来自分区p2的消息(在重新

  • 主要内容: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

  • 我正在创建一个使用Java+阿卡的演员系统。特别是,我通过提供onReceive()方法的实现来定义非类型化的参与者。 在该方法中,我通过定义接收消息时要执行的逻辑来实现参与者的行为。它可能是: 但是,如果演员只对单一类型的味精感兴趣呢?有没有可能实现选择性接收,使参与者等待某个消息(系统自动重新排队所有其他类型的消息)???

  • 我的应用程序有一个生产者和一个消费者。我的生产者不定期地生成消息。有时我的队列会是空的,有时我会有一些消息。我想让我的消费者监听队列,当有消息在其中时,接受它并处理这条消息。这个过程可能需要几个小时,如果我的消费者没有完成处理当前消息,我不希望他接受队列中的另一条消息。 我认为AKKA和AWS SQS可以满足我的需求。通过阅读文档和示例,akka-camel似乎可以简化我的工作。 我在github