EventHub 异常:无法为当前会话或连接分配更多句柄

2023-11-26

我有 C# 控制台应用程序,通过它经常向事件中心发送数据。这个控制台应用程序基本上从 SQL 存储中读取一些数据,并开始将数据推送到事件中心。

整个程序以无限循环/方式运行,就像在 while 控制中一样,每当它收到 SQL 中的任何数据时,它就会从那里提取数据并开始发送到事件中心。

但在某个时刻我收到了这个错误。

“无法为当前会话或连接分配更多句柄。允许的最大句柄数为 4999。请释放资源再试一次。在 Microsoft.ServiceBus.Common......

当我重新启动此控制台应用程序时,它工作正常。但我不知道为什么会出现此错误。

请帮我。

感谢和问候,

RK


TLDR: 在“发送到 EventHub 逻辑”中,确保您正在重用(缓存)同一发送者实例。

The Why:

EventHubs 旨在支持超大规模高吞吐量低延迟事件系统。因此,我们选择依赖一个非常高性能的协议来执行所有运行时操作 - 即Amqp。的好处Amqp协议当构建在其之上的应用程序充分利用其优势时,它就会发挥作用。这是 EventHubs 对象模型映射到 Amqp 工件的方式:

  1. EventHubClient映射到一个 AmqpConnection。基数为 1:1。如果创建时指定了完全相同的 ConnectionStringEventHubClient.CreateFromConnectionString- 底层物理套接字将被共享 - 但 amqp 工件 - AmqpConnection 仍然不同。
  2. 每当客户端调用EventHubClient.Send(EventData),内部,EventHubClient创造1 Amqp 会话 and 该会话中有 1 个 AmqpLink在创建的 AmqpConnection 上EventHubClient。此Session和Link只要相同就可以重复使用EventHubClient实例用于后续发送。
  3. 每当对系统执行任何管理操作时EventHubClient- 因为,管理。操作(如 getPartitionInfo)始终是请求-响应并且需要 2 路通信 -EventHubClient创造1 Amqp 会话 and 该会话中有 2 个 AmqpLink - 一个用于请求的链接,另一个用于响应的链接(例如:想象 REST 的结果Get call).
  4. 每当任何时候,任何子实体都是从创建的EventHubClient - like EventHubSender or EventHubReceiver - EventHubClient创造一个全新的 AmqpSession&&该会话中的 AmqpLink.

使用 eventhub SDK 的客户端应用程序的主要要点是:

每次EventHubClient创建实例 - 在下面创建一个真实的物理套接字。

每次EventHubSender or an EventHubReceiver创建了该套接字创建的实例EventHubClient被重用并在其之上:(a)创建一个 Amqp 会话 - 否。每个连接的 Amqp 会话数限制为 5k -我想这是您的客户端应用程序所达到的限制。 (b) AmqpLink 在该会话内创建 - 这将反过来触发 EventHubs 服务中的实体解析(即有点贵与现有的发送相比EventHubSender).

有关事件中心的更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EventHub 异常:无法为当前会话或连接分配更多句柄 的相关文章

  • 如何使用 Java 将错误消息移动到 Azure 死信队列?

    我们使用 Azure 服务总线队列在不同系统之间交换消息 我们希望使用 Java 代码将无效消息移至死信队列 我可以将消息移动到主队列 但不能移动到死信队列 我尝试将队列名称指定为 基本队列 死信队列 但出现错误 Azure 服务总线运行时
  • 使用rest api时选择Azure事件中心的分区

    我正在尝试使用 python 和其余 API 向 Azure 事件中心发送消息 经过一些失败的实验后 我找到了工作代码 见下文 但我希望能够选择将事件发送到哪个分区 使用其余 API 是否可以实现这一点 如果可以 应该如何完成 user b
  • 如何从 ADLS 将自定义数据帧写入 eventhub

    我想将自定义数据框写入 eventhub val customDf spark read json path to json EventHub ConnectionString val connectionString new com mi
  • 如何为 Azure 服务编写 MassTransit Json 反序列化器

    这就是我将对象发布到事件网格的方式 我希望能够使用天蓝色服务总线来收听它 public void Publicar
  • 如何在本地调试EventHubTrigger?

    我正在尝试在本地调试 Azure 函数 这是一个EventHubTrigger 问题是我需要在本地调试代码 因为我仍然没有 真实 设置 我的代码目前如下所示 public static class Notificator FunctionN
  • 是否可以在不使用实际事件中心的情况下在本地执行事件中心触发的 Azure Functions?

    我只是想问是否可以纯粹在本地计算机上执行 Azure 函数 事件中心触发器 而不依赖于任何 Azure 事件中心资源 我一直在关注 Microsoft 在本地开发 Azure Functions 的流程 Link https learn m
  • Azure 服务总线空闲时自动删除

    我试图找出设置 AutoDeleteOnIdle 时的正确行为 我有一个名为 MyGameMessages 的主题 不透露游戏名称 因为它可能被视为广告 我所做的是在服务器场中的每个节点上创建一个订阅 var manager GetName
  • 如何通过 Qpid JMS (qpid-jms-client-0.11.1.jar) 从 Azure 服务总线发送/接收消息?

    我目前正在研究如何使用 Qpid JMS qpid jms client 0 11 1 jar 连接到 Azure 服务总线 我创建了一个演示 Java 应用程序 SimpleSenderReceiver 它使用以下指南连接到已配置的 Az
  • 消息正文上的 Azure 服务总线订阅筛选器

    我想根据消息的内容创建订阅 这可能吗 我试图摆脱添加自定义属性的麻烦 谢谢 这是不可能的 订阅只能根据标准 系统 和自定义 用户 属性进行过滤 如果正文 有效负载中有需要参与过滤的数据 则需要将其提升到标头
  • Azure 函数 V2 中的延迟消息:提供的锁无效

    在我的天蓝色功能中 有时我想推迟我的消息 但如果我这样做 我会得到一个例外 7 30 2020 5 59 02 PM Message processing error Action Complete ClientId MessageRece
  • C#:OperationCanceledException:操作已取消

    下面我尝试将数据发送到 eventhub 它会工作几分钟 然后操作取消异常被抛出 关于我在使用 CancellationToken 时出错的地方有任何提示吗 如果那是我应该使用的 或者我该如何解决这个问题 public async void
  • Azure 事件中心如何处理不同的事件?

    不同的事件类型通过主题 队列和消息头的某种组合来区分 在 Kafka 中 记录流仍然被分离为主题 https kafka apache org intro https kafka apache org intro 在浏览 Azure 事件中
  • Azure 服务总线主题分区

    我正在尝试向使用两者创建的主题发送消息启用重复检测 and 启用分区选项已选中 我不设置SessionId and PartitionKey我的属性BrokeredMessage实例 根据this https learn microsoft
  • Azure 服务总线序列化类型

    随着我们转向面向服务的体系结构 我们已开始研究使用 Windows Azure 服务总线来替代当前的队列 大部分文档都很清楚 但是我很难确定哪种类型的序列化BrokeredMessage当提供主体时使用 例如 假设我实例化了一个Broker
  • EventGrid 与 EventHub

    我正在开发一个服务结构应用程序 想要从此应用程序发布一些事件 并在另一个应用程序中订阅或处理这些发布事件 我尝试过 EventGrid 概念 并观察到发布和处理事件时存在延迟 所以 现在我正在寻找其他替代方案 例如 EventHub 或队列
  • Azure 服务总线 1.1 无法启动

    服务总线网关未启动 首先 我尝试完全卸载所有Azure Fabric Service Bus类型的SDK和安装 我已经安装了两个Windows Azure Pack Service Bus 1 1 and Windows Azure Pac
  • 为什么不总是配置事件中心分区的最大数量?

    The Azure 事件中心概述 https azure microsoft com en us documentation articles event hubs overview 文章指出以下内容 分区数量在事件中心创建时指定 且必须在
  • 事件中心指标显示大量“其他错误”,如何获取详细信息?

    因此 我使用新门户创建了一个事件中心 当我访问 事件中心 边栏选项卡并浏览到 监控 部分中的 指标 边栏选项卡时 我得到以下图表 我想知道在哪里可以找到有关这些错误的更多信息 有人知道吗 事件中心还可以发出诊断日志 其中包含有关错误的详细诊
  • Azure 服务总线主题请求与消息

    I need help interpreting these graphs 它有 0 订阅 这是否意味着该主题没有任何内容 查看消息图表 在过去 30 天内 没有收到或读取来自此主题的消息 如果没有向该主题写入 读取任何内容 为什么会有 3
  • Azure 服务总线是否可能创建了该消息的副本?

    我们在 Azure 服务总线上遇到了一些奇怪的行为 除了 Azure 中的一些错误之外 我们无法弄清楚如何解释 这就是发生的事情 我们已向 Azure 服务总线发送过一次消息 发送消息的调用执行时间略长于一分钟 但仍然成功 并且此后消息收到

随机推荐