当前位置: 首页 > 知识库问答 >
问题:

我们是否应该关闭Azure service bus订阅客户端上的会话

潘驰
2023-03-14

我正在使用Azure service bus主题/订阅和会话。我正在为sessionId设置一个硬编码值,因为我想控制传入消息的处理。

因此,即使有多个合格的订阅者可以处理该消息,也只有一个订阅者将获得sessionlock并处理它。我通过关闭会话来释放锁,一旦会话完成处理,这样任何处理器都可以接收到新消息。我在这里唯一关心的是,在完成消息处理后关闭会话有没有坏处?如果我关闭会话,会话关闭的处理器是否能够在以后打开会话并处理消息?

TIA

共有1个答案

周通
2023-03-14

会话通常用于消息组而不是单个消息。当您希望这些消息按顺序处理(FIFO)时,应该由一个订阅服务器处理该订阅,直到会话中的消息全部处理完毕。然后,您所做的,关闭一个会话,是没有问题的,因为它最终会过期。更不用说您的订户可以开始处理另一个会话,而不是等待“空”会话超时。

如果每个会话只有一条消息,我建议不要使用会话。

 类似资料:
  • 问题内容: 我在ORM上还很新。我刚刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。 我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗? 我们是否应该在每次持久/更新/删除后关闭它?如果我们不关闭它,数据库连接会保持打开状态吗? 问题答案: 我只是想知道,关闭与jdbc数据库连接关闭类似吗? 这并非完全正确,但关闭

  • 在http p2-spec中,服务器半关闭流(服务器发送了http.END_STREAM),客户端仍然允许发送数据(因为它是半关闭的)。 考虑下面的GRPC场景: 客户端打开bidi-stream到服务器并开始发送数据 服务器关闭响应流并发送状态预告片(转换为发送http.END_STREAM) 客户端继续发送数据 gRPC中是否定义了语义? 可能的方式: 遵循http2规范:允许客户端继续发送服

  • 我在RestEasy客户端-3.0.8中得到以下异常

  • 问题内容: 从本教程可以看出,必须从哪里调用,也应该从哪里调用? 问题答案: 简短的回答是。您应该调用stmt.Close(); 长答案可以在此Google网上论坛线程中找到。

  • 我正在使用spring Websocket与STOMP,简单的消息代理。在我的中,我使用方法级的,它应该为客户端订阅一个主题,以便客户端在之后接收该主题的消息。假设客户端订阅主题“聊天”: 当客户端订阅了“/app/chat”而不是“/topic/chat”时,此订阅将转到使用映射的方法: 这是spring裁判。说道: 默认情况下,来自@SubscribeMapping方法的返回值作为消息直接发送

  • 客户对主题的订阅(即订阅者)的寿命是多少? 我之所以这么担心,是因为我认为服务总线的一个特点--持久的信息。因此,我认为在连接不稳定的情况下,可以保证提供持久的消息。 那么,当一个应用程序(多个应用程序中的一个)失去与服务总线的连接一天,然后第二天重新启动应用程序并实例化一个新的订阅客户端实例时,会发生什么呢?当其他应用程序由于自己的订阅已经处理了这些相同的消息时,应用程序是否会继续接收等待传递的