云服务器内容精选

  • 消费者消费Topic失败,提示没有权限? 问题现象:同一个消费组内有多个消费者,为每个消费者授权不同的Topic访问权限,某一消费者消费其中一个Topic时,提示消费失败,报错信息如下:Not authorized to access topics。 问题原因:消费组的leader在进行分区分配时,不会考虑某一个消费者的授权和订阅信息,只会根据消费组整体的订阅情况进行分区分配,此种情况下可能会给消费者分配到未授权的Topic,从而导致了上述问题的出现。 例如:消费组中有消费者A、B、C,A订阅并授权Topic 0、Topic 1、Topic 2,B订阅并授权Topic 3、Topic 4、Topic 5,C订阅并授权Topic 6、Topic 7、Topic 8,假设以上Topic都只有一个分区,消费组的leader会根据策略进行分区分配,分配的结果可能变成:A消费Topic 0、Topic 3、Topic 6,B消费Topic 1、Topic 4、Topic 7,C消费Topic 2、Topic 5、Topic 8。此时A对Topic 3和Topic 6是没有授权的,因此会出现“Not authorized to access topics”的报错。 图1 消费者访问权限 处理方法: 如果业务要求所有消费者在同一个消费组内,即group.id相同,解决方法:为所有消费者授权相同的Topic访问权限。 如果消费者不需要在同一个消费组内,解决方法:修改group.id,让每个消费者单独在一个消费组内。 父主题: Topic和分区问题
  • Kafka实例的Topic数量是否有限制? Topic数量和Topic总分区数、每个Topic的分区数有关,Kafka实例对Topic总分区数设置了上限,当达到上限后,会导致用户无法继续创建Topic。 不同规格配置的Topic总分区数不同,如下表所示。 表1 Kafka集群实例规格 规格名称 代理个数范围 单个代理TPS 单个代理分区上限 单个代理建议消费组数 单个代理客户端总连接数上限 存储空间范围(GB) 单个代理流量规格(MB/s) kafka.2u4g.cluster.small 3~30 20000 100 15 2000 300~300000 40 kafka.2u4g.cluster 3~30 30000 250 20 2000 300~300000 100 kafka.4u8g.cluster 3~30 100000 500 100 4000 300~600000 200 kafka.8u16g.cluster 3~50 150000 1000 150 4000 300~1500000 375 kafka.12u24g.cluster 3~50 200000 1500 200 4000 300~1500000 625 kafka.16u32g.cluster 3~50 250000 2000 200 4000 300~1500000 750 表2 Kafka单机实例规格 规格名称 代理个数 单个代理TPS 单个代理分区上限 单个代理建议消费组数 单个代理客户端总连接数上限 存储空间范围(GB) 单个代理流量规格(MB/s) kafka.2u4g.single.small 1 20000 100 15 2000 100~10000 40 kafka.2u4g.single 1 30000 250 20 2000 100~10000 100 父主题: Topic和分区问题
  • Kafka实例是否支持查看单个Topic占用磁盘空间? 支持。通过以下任意一种方法,查看单个Topic占用磁盘空间大小。 在Kafka实例名称后,单击,跳转到 云监控 页面。在“队列”页签中,“队列”选择待查看磁盘空间大小的Topic名称,“监控类型”选择“基本监控”,查看“队列数据容量”,该指标表示该队列当前的消息数据大小。 单击Kafka实例名称,进入实例详情页。在左侧导航栏单击“监控”,进入监控页面。在“主题”页签中,“主题”选择待查看磁盘空间大小的Topic名称,“监控类型”选择“基本监控”,查看“队列数据容量”,该指标表示该队列当前的消息数据大小。 父主题: Topic和分区问题