kafka的客户端限流(资源配额)

news2024/11/26 11:27:37

前言

本文说明的是Kafka的客户端(生产者、消费者)与broker之前的限流,不是kafka的broker间topic副本同步的限流。

客户端限流

在kafka的官方文档,不叫限流,叫做资源配额:通过对客户端请求进行配额,控制集群资源的使用。

主要支持以下两种类型:

  1. 带宽 (从 0.9 版本开始)
  2. 请求速率 (从 0.11 版本开始)

带宽就是基于每秒传输多少个字节来进行限制;但是,注意,请求速率并不是每秒客户端可以发起多少个请求,而是网络和 I/O线程 cpu利用率的百分比。

规则

kafka 客户端以“组”来进行配额限流。同组下的所有客户端共享带宽配置,比如:配置带宽10M/秒,则该组所有客户端限制总带宽使用为10M每秒;但是请求速率指的是每个组的client 使用broker上的cpu的百分比。

组的分类规则如下:

  • (user, client-id)
  • user
  • client-id 

client-id: 客户端ID,这个比较熟悉,比如在启动一个消费者的时候,配置的一个属性:

        // client.id
        props.put(ConsumerConfig.CLIENT_ID_CONFIG, "test-consumer-id");

 如果不配置,会生成一个默认的:

User需要是开启ACL之后的一个用户主体标识,很多同学如果没用过kafka的ACL,可能对这个不太了解,可以看下这个:kafka快速配置启用ACL示例_不识君的荒漠的博客-CSDN博客_kafka-acls.sh --bootstrap-server 

而(user, client-id)这个二元组,就是需要同时指定用户主体标识和客户端ID作为一组分类。

配置位置与优先级

我目前查看官方3.3的文档 Kafka 3.3 Documentation这些配置信息还是在zookeeper上:

  1. /config/users/<user>/clients/<client-id>
  2. /config/users/<user>/clients/<default>
  3. /config/users/<user>
  4. /config/users/<default>/clients/<client-id>
  5. /config/users/<default>/clients/<default>
  6. /config/users/<default>
  7. /config/clients/<client-id>
  8. /config/clients/<default>

数字越小,优先级越高。

注意:支持broker级别的配置,但是未验证(我目前用来测试的版本是2.8)。

命令

1. 基于(user, client-id)限流配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name userName --entity-type clients --entity-name clientId

2. 指定用户

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name userName

3. 用户级默认配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-default

4. 指定客户端ID

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-name clientId

5. 客户端ID级默认配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-default

6. (user, client-id)级默认配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name userName --entity-type clients --entity-default

7. 查看(user, client-id)级配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name userName --entity-type clients --entity-name clientId

8. 查看用户级配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name userName

如果不指定--entity-name,则是查看所有用户 

9. 查看客户端ID级配置

sh bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type clients --entity-name clientId

如果不指定--entity-name,则是查看所有客户端ID的配置 

注意:

  1. producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200三项并不是都需要配置,按需要配置
  2. 查看配置的时候,对于同一个客户端ID,既在客户端ID级别配置了,又在(user, client-id)级配置,查看的时候,也是分开查看。(user, client-id)级配置只能看到(user, client-id)级的配置。客户端ID级别配置只能看到客户端ID级别配置。

官方文档(中文版)

推荐查看:

Kafka 中文文档 - ApacheCN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

细节决定成败:探究Mybatis中javaType和ofType的区别

一. 背景描述 今天&#xff0c;给学生讲解了Mybatis框架&#xff0c;学习了基础的ORM框架操作及多对一的查询。在练习的时候&#xff0c;小张同学突然举手求助&#xff0c;说在做预习作业使用一对多查询时&#xff0c;遇到了ReflectionException 异常 。 二. 情景再现 1. 实…

css 网格布局

简介&#xff1a; 网格是由一系列水平及垂直的线构成的一种布局模式。一个网格通常具有许多的列&#xff08;column&#xff09;与行&#xff08;row&#xff09;&#xff0c;以及行与行、列与列之间的间隙&#xff0c;这个间隙一般被称为沟槽&#xff08;gutter&#xff09;。…

智能摄像头视频监控,智和信通一站式解决方案

为进一步加强公共安全视频监控建设联网应用工作&#xff0c;推动整合各类视频图像资源&#xff0c;九部委联合发布的《关于加强公安视频监控建设网络化应用的若干意见》&#xff0c;明确以全域覆盖、全网共享、全时可用、全程可控为总目标。在大大加强城市社会安全保障能力的同…

Kafka Producer 开发

Kafka Producer 开发 kafka包含5个核心的API接口定义&#xff1a; Producer API - 允许应用程序往kafka集群中的topic中发送事件消息Consumer API - 允许应用程序从kafka topic 中读取数据Streams API - 允许对输入数据流进行数据计算、转换&#xff0c;并发送到其他主题进行…

Ultra-high Resolution Image Segmentation via Locality-aware Context Fusion

极高图像语义分割。 作者使用了一个高分辨率分割的pipeline&#xff0c;将原始的超高分辨率图像分成一块一块的用于局部分割&#xff0c;然后将局部的分割结果融合形成最终的高分辨率分割。 方法&#xff1a;1&#xff1a;作者引入了一个局部感知上下文融合&#xff08;LCF&…

怎么提升360网站权重?怎么查询网站在360权重

怎么提升360网站权重&#xff1f; 一、增加网站流量 1、做高指数的关键词排名。 2、关键词的合理布局。 3、关键词的布局必须注意密度。 4、网站关键词的页面布局必须合理。二、网站页面内容布局 网站页面的内容可以说是网站的灵魂。网站的好坏完全取决于网站的内容是否能给访问…

Redis6新数据类型Bitmaps

Redis6新数据类型1.Bitmaps2.命令1.Bitmaps 简介&#xff1a;现代计算机用二进制(位)作为信息的基础单位&#xff0c;1个字节等于8位&#xff0c;例如“abc”字符串由3个字节组成&#xff0c;但实际在计算机存储时将其用二进制表示&#xff0c;“abc”分别对应的ASCII码是97、…

​草莓熊python turtle绘图(圣诞元旦倒数雪花版)附源代码

​草莓熊python turtle绘图&#xff08;圣诞元旦倒数雪花版&#xff09;附源代码 本篇目录&#xff1a; 一、前言 二、​草莓熊python绘图&#xff08;圣诞元旦倒数雪花版&#xff09;效果图 三、源代码保存方法 四、代码命令解释 &#xff08;1&#xff09;、绘图基本代码…

LaTeX教程(四)——文档内元素

文章目录1. 表格2. 插入图片3. 盒子4. 浮动体1. 表格 LaTeX的表格不想Word能够做到所见即所得&#xff0c;当表格较小还好&#xff0c;一旦表格内容逐渐增多&#xff0c;那么编写表格就变得十分麻烦了&#xff0c;为此&#xff0c;一般都是用在线表格并生成LaTeX代码的形式来得…

Linux——管道和重定向

一、Linux的文件 linux中奉行一切皆文件&#xff0c;包括目录、链接&#xff08;类似windows的快捷方式&#xff09;、设备文件。 在内核中,所有打开的文件都使用文件描述符&#xff08;一个非负整数&#xff09;标记。文件描述符的变化范围是0~OPEN_MAX – 1。早期的unix系统…

前端CDN和DNS

DNS的基础知识 统一资源定位符(URL) scheme: 方案&#xff0c;包括http&#xff0c;https协议。 host&#xff1a;主机 port&#xff1a;端口 path&#xff1a;路径 query&#xff1a;查询 fragment&#xff1a;片段&#xff0c;访问网址时候定位某个位置 DNS &#xff08;Do…

Java 开发环境配置

在本章节中我们将为大家介绍如何搭建Java开发环境。 Windows 上安装开发环境Linux 上安装开发环境安装 Eclipse 运行 Javawindow系统安装java 下载JDK 首先我们需要下载 java 开发工具包 JDK&#xff0c;下载地址&#xff1a;Java Downloads | Oracle&#xff0c;在下载页面…

Kaggle房价预测 特征工程模型聚合

目录 一&#xff1a;Kaggle数据集准备 二&#xff1a;数据集分析 三&#xff1a;空值处理 四&#xff1a;空值填充 五&#xff1a;查找所有字符列 六&#xff1a;实例化独热编码对象 七&#xff1a;方差过滤 八&#xff1a;特征数据提取 九&#xff1a;查看特征之间…

跨域/解决跨域方法

一、同源策略 同源策略(Same Origin Policy)是一种约定&#xff0c;它是浏览器最核心也是最基本的安全功能。同源策略会阻止一个域的javascrip脚本和另一个域的内容进行交互&#xff0c;是用于隔离潜在恶意文件的关键安全机制&#xff1b;关于这一点我们后面会举例说明。如果缺…

C语言—指针

指针用来存放一个内存地址&#xff1b; 指针的类型就是要存放地址的变量的数据类型&#xff1b; #include <stdio.h>int main() {int a 123;char b H;int *pa &a;char *pb &b;printf("%d\n", *pa);printf("%c", *pb); } pa要存放int类…

评估篇 | 单元测试评估也能复用到集成测试?脚本帮你高效评估

上次我们分享了单元测试用例的复用&#xff0c;单元测试的用例可以复用到集成测试&#xff0c;那单元测试的评估是否也可以复用到集成测试&#xff1f;答案是可以的。 TPT中提供了多种多样的评估方式&#xff0c;其中的脚本评估使我们复用测试评估成为可能。脚本评估&#xff…

@EnableCaching如何一键开启缓存

EnableCaching如何一键开启缓存手动挡CacheManagerCache使用演示小结自动挡CachingConfigurationSelectorAutoProxyRegistrarProxyCachingConfigurationCacheOperationSourceCacheOperationBeanFactoryCacheOperationSourceAdvisorCacheInterceptor小结手动挡 我们首先来看看S…

成本、利润分析法在企业管理中的应用

1 、成本、利润分析法的主要内容 成本、利润分析法主要是指&#xff0c;利用数学模型&#xff0c;对关于企业成本、利润的要素分析&#xff0c;然后计算出要素的改变对企业成本、利润的影响&#xff0c;进而对企业决策提出建议的一种方法。在成本、利润分析法中&#xff0c;最主…

基础IO——文件描述符

文章目录1. 文件描述符fd1.1 open返回值2. 理解Linux下一切皆文件3. 文件描述符的分配规则4. 重定向的本质4.1 使用 dup2 系统调用4.2 追加重定向4.3 输入重定向1. 文件描述符fd 1.1 open返回值 我们先来看下面的例子&#xff1a; 运行结果如下&#xff1a; 我们知道open的…

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide Cyanine5 maleimide是单一活性染料&#xff0c;有选择性的与硫醇基团&#xff08;比如蛋白和多肽的半胱氨酸&#xff09;结合以进行标记。我们使用水溶的Sulfo-Cyanine5 maleimide标记抗体和其他敏感蛋白。Cyanine5是Cy5的类似物&am…