如果你让4个webapp实例,并且很多消息在服务总线队列中排队(意味着要到达所有4个实例),那么会发生什么?webapp只缩小到2个实例。将服务总线中用于移除的其他两个实例的消息将被阻塞在队列中,直到超过生存时间然后被移除,或者服务总线是否知道不再有4个实例,因此它不需要向4个实例发送消息吗?
我不确定这是否正确但是根据我的理解,通常会有一个主题,然后是多个订阅?服务总线是否会在其中一个实例(拥有订阅)消失后理解,然后在消息排队时删除用于该订阅的消息(之前有很多其他消息)?
很抱歉,如果问题有点愚蠢,但我无法在互联网上找到任何答案。
答案 0 :(得分:0)
服务总线中用于移除的其他两个实例的消息是否会被卡在队列中,直到超过生存时间然后被删除
Service Bus队列和主题订阅提供了一个辅助子队列,称为死信队列(DLQ)。 死信队列的目的是保存无法传递给任何接收者的消息,或者仅保留无法处理的消息。更多详情请参阅document。
服务总线是否知道不再有4个实例,因此不需要向4个实例发送消息?
服务总线队列提供先进先出(FIFO)消息,服务总线队列消息仅由一个消息使用者接收和处理。如果我们有多个Web实例,当任务到达时,WebApp LoadBlance(ARR)会将请求分配给相应的实例以处理该消息。如果已删除实例,则WebApp loadBlance(ARR)会将请求分配给现有实例。
服务总线是否会知道其中一个实例(谁有订阅)已经消失,然后在消息排队时删除了针对该订阅的消息(之前有很多其他消息)?
如上所述,它由WebApp LoadBlance而非Service Service分配。如何使用消息取决于您的WebApp。