【问题标题】:How to read the content of service bus messages only for monitoring如何读取服务总线消息的内容仅用于监控
【发布时间】:2016-07-25 14:40:03
【问题描述】:

有没有办法在不拉取消息或更改任何行为的情况下读取队列或主题中的消息(仅用于监控)?

【问题讨论】:

    标签: .net azure azureservicebus azure-servicebus-topics


    【解决方案1】:

    Azure 服务总线允许查看消息。

    例如,您可以使用QueueClient.PeekAsync() 来查看队列中的消息。 topicssubscriptions 也有一个等价物。

    如果您不需要区分来自队列和订阅的消息,可以使用MessageReceiver.PeekAsync() 选项。

    【讨论】:

    • 感谢您的回答。有没有办法让发件人知道邮件已被阅读?
    • 查看消息不会修改消息。如果您提到消息已被消费(如阅读),那将超出代理的责任。在这种情况下,我会说您的消费者必须回复生产者或以某种方式指示消息已被处理。看看 NServiceBus 或 MassTransit 可以帮助您解决这些情况。
    • 谢谢!我对 ServiceBus 主题的情况是我有很多订阅(不知道有多少),并且所有订阅都应该收到消息。我需要在发件人中使用一种方法来指示消息已被所有人使用。我知道一旦所有客户端都使用了该消息,该消息将不再处于活动状态,但是如何在发送方知道这一点?每隔几秒钟就一直尝试获取它,一旦它消失就被消耗掉了吗?这是唯一的方法吗?
    • 我认为问题出在方法上。订阅是针对事件的。事件是关于发生的事情的通知,它的核心是它应该在发布者和订阅者之间解耦。如果您的发送者知道有多少事件消费者,那么这个设计听起来就不对了。
    猜你喜欢
    • 2022-07-03
    • 2020-02-20
    • 2015-05-15
    • 1970-01-01
    • 2020-07-24
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多