- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要为发布到 DistributedPubSubMediator 主题的消息提供至少一次传递保证。
我查看了 DistributedPubSubMediator.scala,可以在 TopicLike 特征(Akka 2.4.6)中看到以下内容:
trait TopicLike extends Actor {
var subscribers = Set.empty[ActorRef]
def defaultReceive: Receive = {
case msg ?
subscribers foreach { _ forward msg }
}
}
但是我找不到任何方法来从中介检索订阅者集...如果有消息请求 GetTopicSubscribers 会将此信息公开给中介客户端,那就太好了:
mediator ! GetTopicSubscribers("mytopic")
因此在发布到主题后,发布者可以等待来自所有事件订阅者的 Ack 消息。还有其他方法可以完成类似的事情吗?如果能以某种方式将 akka.contrib.pattern.ReliableProxy 插入到 DistributedPubSubMediator 中,那就太好了。
最佳答案
您可以让您的发布商通过 akka.cluster.pubsub.DistributedPubSubMediator.CountSubscribers 向调解员询问订阅者数量。 (“我的主题”)
然后它只需要记录从订阅者那里收到了多少 Ack 消息。
无需跟踪实际订阅者或哪些订阅者已确认,当您的 Ack 计数达到订阅者计数时,您知道他们都已收到(感谢 Akka at-most-once 交付可靠性)
但是请注意 source code 中的这条评论:
// Only for testing purposes, to poll/await replication
case object Count
final case class CountSubscribers(topic: String)
也许 CountSubscribers 不是太依赖的东西?
关于scala - Akka DistributedPubSubMediator at-least-once delivery guarantees for publishing to a topic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470738/
我找到了这一行: return (<-chan Delivery)(deliveries), nil https://github.com/streadway/amqp/blob/master/cha
delivery-limit 和 x-delivery-limit 有什么区别? 当我将 x-delivery-limit 设置为 RabbitMQ 队列参数时,我可以看到它限制了我的消息重新排队尝试
delivery-limit 和 x-delivery-limit 有什么区别? 当我将 x-delivery-limit 设置为 RabbitMQ 队列参数时,我可以看到它限制了我的消息重新排队尝试
我试图证明这个条件, 00 - 07 am - 显示“今天早上”||07 - 19 pm - 显示“今天晚上” ||19 - 24 am - 显示“明天早上” 但我猜我的代码有问题。
我正在使用 Jenkins Delivery Pipeline 插件。我有一些手动触发的参数化构建。如果我从项目页面触发构建,构建将显示一个屏幕,其中需要定义参数(如预期)。但是,当我从 Delive
我对任何类型的网络编程都是新手。请您回答以下问题。 我正在使用 Java。 场景 主题 1: Socket s = new Socket("remote machine", portNum); //g
我想允许客户使用 paypal 付款,而无需创建 paypal 帐户。 Paypal 通过设置 2 个变量允许这样做: SOLUTIONTYPE = '独家'; LANDINGPAGE = '计费';
我知道有 2 个选项可用: “非持久性” “持续” 但这实际上意味着什么? “非持久”:如果没有消费者,AMQP 结构将尝试传递消息,消息会被丢弃吗? “持久”:AMQP 将重试消息,直到消费者接受它
从 2017 年 6 月 28 日发布的 Kafka 最新版本 (0.11.0.0) 开始,kafka 团队提供了新功能以支持一次性交付。下载最新版本后,我尝试配置 Producer(通过 kafka
我们将 Rebus 与 MSMQ 一起用于应用程序组件之间基于消息的通信。这些组件都在同一台机器上运行。 消息发送和接收之间的时间通常保持在一秒以下。但是如果系统空闲一分钟左右(意味着没有消息被发送)
我们将 Rebus 与 MSMQ 一起用于应用程序组件之间基于消息的通信。这些组件都在同一台机器上运行。 消息发送和接收之间的时间通常保持在一秒以下。但是如果系统空闲一分钟左右(意味着没有消息被发送)
我一直在尝试提出一种 Camel 路线,可以从 activemq 中读取数据并将其写入 Oracle AQ。 但是,当消息成功写入 Oracle-aq 时,我必须将成功的消息写入另一个 Active
我正在创建一个具有发送短信模块的应用程序。我正在使用 2 个广播接收器和 Pending Intent ,一个用于发送确认短信,另一个用于发送 ..发送的短信广播接收器工作正常,但没有送达。 我在服务
当使用 HTML5 keygen 元素时,表单(以及其他)向服务器发送证书签名请求(SPKAC 格式)。然后服务器发送相应的证书,mime 类型为 application/x-x509-user-ce
我正在为我的应用程序创建测试。 创建 quotation_request 后,我会向用户发送一封确认电子邮件。我还发了一封电子邮件通知校对人员。 我仍在学习 Ruby,我确信有更好的方法来编写以下
我正在尝试从 rabbitmq 队列中检索响应,第一次使用相同的代码时,我能够正确检索响应,但是每当我第二次或第三次运行它时,它都不会调用 delivercallback 我试图检索响应的函数 Del
我在 Contentful Delivery API 中运行查询以返回基于它的 slug 的特定页面项目。这个查询还设置了语言环境,以便它只返回我需要呈现的语言的数据。 但是,我还需要设置页面的 hr
最近我盯着破译 hotmail 收件箱/垃圾文件夹的位置。经过长时间的搜索,我发现 Hotmail/Outlook 正在使用他们在每封邮件中输入的 X-Message-Delivery 标签来确定很多
实时情况下,我有几个 azure 服务总线队列。每个队列都有自己的默认消息传递计数限制。当超过传递计数时,消息将移至“死信队列”。 现在我必须将死信消息重新发布到原始队列进行重新处理。由于传递计数,它
我希望从我的应用程序发送邮件的用户能够收到失败通知,并能够提取从其帐户发送的所有邮件的报告。 但是这个问题的重点是取回失败的传递通知,我将如何设置监听它们的东西,以便我可以修改数据库中发送的电子邮件日
我是一名优秀的程序员,十分优秀!