Каков срок службы подписки клиента (т. Е. Подписчика) на топи c?
Немного шире вопроса. Если вы ссылаетесь на клиента, подключающегося к брокеру, при условии, что существует непрерывное основное соединение, клиент будет подключен к подписке. В случае, если вы обращаетесь к логическому подписчику, всякий раз, когда логический подписчик подключается. Который может быть 24/7/365 или случайным. Затем этот срок службы определяется тем, что собирается делать ваша система.
Так что же происходит, когда одно приложение (из нескольких) теряет связь с сервисной шиной на один день, а затем на следующий день - приложение перезапускается и создается новый экземпляр клиента подписки?
Новый экземпляр клиента все еще является экземпляром вашего логического подписчика, верно? Пока это так, вы будете получать события для этого подписчика. Важно отметить, что новый экземпляр клиента должен подключаться к той же подписке, а не пытаться создать новую подписку. Если это произойдет, то у вас точно будут дубликаты.
Будет ли приложение возобновлять получение сообщений, ожидающих доставки, в то время как другие приложения уже обработали те же сообщения из-за своих собственных подписок?
Если вы запускаете несколько экземпляров приложения, подключенных к одной и той же топике c, если один из них выходит из строя, остальные продолжат обработку сообщений. Там не будет никаких ожидающих сообщений. Если другие приложения используют сообщения из различных тем , тогда да, ваше приложение для повторного подключения будет получать все сообщения, которые были опубликованы, когда оно было недоступно.
Возможно, вы захотите посмотреть шаблон Конкурирующих потребителей . Подписка - это очередь с конкурирующими потребителями.