首页 > 其他分享 >【Event Hub】消费消息时遇到Azure.Messaging.EventHubs.EventHubsException(QuotaExceeded) 错误的解决之法

【Event Hub】消费消息时遇到Azure.Messaging.EventHubs.EventHubsException(QuotaExceeded) 错误的解决之法

时间:2024-03-06 20:11:30浏览次数:29  
标签:... Hub consumerGroup EventHubs EventHubsException static consumer Event

问题描述

使用EventHubConsumerClient消费Event Hub的消息时,遇见Azure.Messaging.EventHubs.EventHubsException(QuotaExceeded): Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5.”异常。

代码片段为:

... 
private static String connectionString = "Event Hub Connection ...";
private static String consumerGroup = "xxxxxx";
private static EventHubConsumerClient consumer =  new EventHubClientBuilder()
            .connectionString(connectionString)
            .consumerGroup(consumerGroup)
            .buildConsumerClient();
...
    while (true) {
        IterableStream<PartitionEvent> events = consumer.receiveFromPartition(pId,100, sPosition, Duration.ofMillis(1000));
        int count = 0;
        for (PartitionEvent partitionEvent : events) {
            EventData event = partitionEvent.getData();
...

错误消息为:

com.azure.core.amqp.exception.AmqpException: Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5.

List of connected receivers - ff7e6a04-43a4-4d50-ae86-e0586297f60c, ff7e6a04-43a4-4d50-ae86-e0586297f60c, ff7e6a04-43a4-4d50-ae86-e0586297f60c, ff7e6a04-43a4-4d50-ae86-e0586297f60c, ff7e6a04-43a4-4d50-ae86-e0586297f60c.

问题解答

这是因为Event Hub对于同一个使用者组的限制:建议在使用者组中一个分区上只有一个活动接收器。 但是,在某些情况下,每个分区最多可以使用 5 个使用者或接收器,其中所有接收器都会获取分区的所有事件。

根据文档中提到的非 Epoch Receiver的限制为5,而如果为每一个Receiver设置上Epoch值,当新的Receiver连接到Event Hub服务器后,服务端会保留最大Epoch值的Receiver,其它旧的则会被逐渐删除。

 

例如下面的代码就可以解决Azure.Messaging.EventHubs.EventHubsException(QuotaExceeded): Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5.”异常。

import com.azure.messaging.eventhubs.models.ReceiveOptions;
... 

private static String connectionString = "Event Hub Connection ...";
private static String consumerGroup = "xxxxxx";

private static EventHubConsumerClient consumer =  new EventHubClientBuilder()
            .connectionString(connectionString)
            .consumerGroup(consumerGroup)
            .buildConsumerClient();

...

    ReceiveOptions receiveOptions ;
    receiveOptions = new ReceiveOptions();
    receiveOptions.setOwnerLevel((new Date()).getTime()); // set epoch value


    while (true) {
        IterableStream<PartitionEvent> events = consumer.receiveFromPartition(pId,100, sPosition, Duration.ofMillis(1000),receiveOptions );
        int count = 0;
        for (PartitionEvent partitionEvent : events) {
            EventData event = partitionEvent.getData();

...

 

 

参考资料

  1. https://docs.azure.cn/zh-cn/event-hubs/event-hubs-features#consumer-groups
  2. https://docs.azure.cn/zh-cn/event-hubs/event-hubs-quotas

 

标签:...,Hub,consumerGroup,EventHubs,EventHubsException,static,consumer,Event
From: https://www.cnblogs.com/lulight/p/18057435

相关文章

  • vulnhub靶机:dc3
    一:信息收集1:主机发现arp-scan-Ieth010.9.23.0/24kali的ip10.9.23.112靶机的ip10.4.9.23.2432:端口扫描nmap-A-p--T410.9.23.2433:端口探测提示要获取root权限4:目录遍历查看Wapplayzer信息:使用的Joomla系统,所以使用joomscan(Joomla漏洞扫描器)扫描器扫描:joom......
  • vulnhub靶机:driftingblues7
    一:信息收集1:主机发现arp-scan-Ieth010.9.23.0/24kali的ip:10.9.23.112靶机ip:10.9.23.932:端口扫描nmap-A-p--T410.9.23.93开放了22,66,80,443,3306端口3:端口探测访问66端口,因为是上面运行了SimpleHttpServer访问80端口,发现一个登录界面,来百度搜索Eyesofnetwork发......
  • Rust 登上了开源头条「GitHub 热点速览」
    抱歉!上周因为出月刊工作量比较大,所以「GitHub热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例......
  • GitHub Pages使用过域名解析,停止后还能跳转到原有地址的原因
    问题之前使用hexo+GitHubPages搭建个人博客,同时使用了在腾讯云买了域名,使用了域名解析,将GitHubPages的访问地址解析到了自己买的域名,在GitHub仓库里面使用了CNAME文件指定域名,如我的lingyejun.com。因此如果需要停止域名解析就需要现在阿里云域名解析那里暂停解析该网址(或者删......
  • 【个人前端笔记】手写EventHub
    一、EventHubEventHub是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的模块之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。二、EventHub优缺点优点:1.通过EventHub实现所有模块之间通信的技术。在vue2中可以用事件总线实现任意组件间传递数据2.E......
  • 在github开源市场如何高效寻找优秀开源项目
    作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?常用的开源网站有:github和giteegithub是全球最大的开源社区,今天就以github为例,演示一下github界面一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当然,一个好的项目,它......
  • 10个技巧,3分钟教会你github高效寻找开源项目
    大家好,我是知微!作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?常用的开源网站有:github和giteegithub是全球最大的开源社区,今天就以github为例,演示一下github界面一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当......
  • vulnhub靶机分配不到ip详细解决方法
    一:vmwore修改系统配置1:ro修改成rwsingleinit=/bin/bash2:ctrl+x进入bash3:IPa查看它属于哪块网卡4:vi/etc/network/interfaces进入网卡配置信息将auto和iface后的网卡改回来5:重启服务/etc/init.d/networkingrestart6:IPa就可以看到获取成功重启即可二:virtubox最终......
  • vulnhub靶机:dc-2
    一:主机发现arp-scan-Ieth010.4.7.0/24kaliip:10.4.7.128靶机IP:10.4.7.151二:端口扫描nmap-T4-sV-p--A10.4.7.151三:信息收集无法访问更改host文件vim/etc/hosts通过flag1的提示,我们需要使用cewl爆破出用户名和密码,因为他用wordpress框架搭建,我们先使用wpsca......
  • GitHub使用教程(九)
    你的本地仓库由git维护的三棵“树”组成。第一个是你的工作目录,它持有实际文件;第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后是HEAD,指向你最近一次提交后的结果。事实上,第三个阶段是commithistory的图。HEAD一般是指向最新一次commit的引用。现在暂时不必究......