客户订阅(即订阅者)主题的生命周期是多少?
What is the lifespan for a client's subscription (i.e. subscriber) to a topic?
客户订阅(即订阅者)主题的生命周期是多少?
条件
在我的开发环境中,我一直在为各种服务总线主题创建 SubscriptionClient 实例。
我担心的是,对于我为给定主题实例化的每个订阅客户端,我可能会无意中复制发出的消息(每次我订阅给定主题时)。
我的理论
我担心的基础是我认为服务总线的特征之一,即持久消息。因此,我认为在连接不稳定的情况下可以保证持久消息的传递。
那么当一个应用程序(几个应用程序中的一个)失去与服务总线的连接一天然后第二天应用程序重新启动并实例化一个新的订阅客户端实例时会发生什么?该应用程序是否会继续接收等待发送的消息,而其他应用程序已因其自己的订阅而处理了这些相同的消息?
总而言之,客户订阅(即订阅者)主题的生命周期是多长?
附录
参考文献:
Auto-expire orphaned Subscription (Azure ServiceBus Messaging SubscriptionClient)
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements
https://weblogs.asp.net/sfeldman/asb-subs-with-correlation-filters
What is the lifespan for a client's subscription (i.e. subscriber) to a topic?
这个问题有点宽泛。如果您指的是连接到代理的客户端,只要存在不间断的底层连接,客户端就会连接到订阅。如果您指的是逻辑订阅者,只要逻辑订阅者连接。这可能是 24/7/365 或偶尔。然后,该寿命由您的系统将要执行的操作定义。
So what happens when one application (out of several) loses connectivity with the service bus for a day and then the next day the app is relaunched and a new subscription client instance is instantiated?
新的客户端实例仍然是您的逻辑订阅者的实例,对吗?只要是这种情况,您就会收到该订阅者的事件。重要的是要注意新的客户端实例应该连接到同一个订阅,而不是尝试创建一个新的订阅。如果是,那么你肯定会重复。
Will the app resume receiving messages that were pending delivery while the other apps have already processed those same messages due to their own subscriptions?
如果您 运行 多个应用程序实例连接到同一个主题,如果一个出现故障,其余的将继续处理消息。不会有待处理的消息。如果您有其他应用程序使用来自不同主题的消息,那么是的,您重新连接的应用程序将接收在它关闭时发布的所有消息。
您可能想查看 Competing Consumers 模式。订阅是具有竞争消费者的队列。
客户订阅(即订阅者)主题的生命周期是多少?
条件
在我的开发环境中,我一直在为各种服务总线主题创建 SubscriptionClient 实例。
我担心的是,对于我为给定主题实例化的每个订阅客户端,我可能会无意中复制发出的消息(每次我订阅给定主题时)。
我的理论
我担心的基础是我认为服务总线的特征之一,即持久消息。因此,我认为在连接不稳定的情况下可以保证持久消息的传递。
那么当一个应用程序(几个应用程序中的一个)失去与服务总线的连接一天然后第二天应用程序重新启动并实例化一个新的订阅客户端实例时会发生什么?该应用程序是否会继续接收等待发送的消息,而其他应用程序已因其自己的订阅而处理了这些相同的消息?
总而言之,客户订阅(即订阅者)主题的生命周期是多长?
附录
参考文献:
Auto-expire orphaned Subscription (Azure ServiceBus Messaging SubscriptionClient)
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements
https://weblogs.asp.net/sfeldman/asb-subs-with-correlation-filters
What is the lifespan for a client's subscription (i.e. subscriber) to a topic?
这个问题有点宽泛。如果您指的是连接到代理的客户端,只要存在不间断的底层连接,客户端就会连接到订阅。如果您指的是逻辑订阅者,只要逻辑订阅者连接。这可能是 24/7/365 或偶尔。然后,该寿命由您的系统将要执行的操作定义。
So what happens when one application (out of several) loses connectivity with the service bus for a day and then the next day the app is relaunched and a new subscription client instance is instantiated?
新的客户端实例仍然是您的逻辑订阅者的实例,对吗?只要是这种情况,您就会收到该订阅者的事件。重要的是要注意新的客户端实例应该连接到同一个订阅,而不是尝试创建一个新的订阅。如果是,那么你肯定会重复。
Will the app resume receiving messages that were pending delivery while the other apps have already processed those same messages due to their own subscriptions?
如果您 运行 多个应用程序实例连接到同一个主题,如果一个出现故障,其余的将继续处理消息。不会有待处理的消息。如果您有其他应用程序使用来自不同主题的消息,那么是的,您重新连接的应用程序将接收在它关闭时发布的所有消息。
您可能想查看 Competing Consumers 模式。订阅是具有竞争消费者的队列。