【Kafka】Quota配额命令、文档相关概念
一、多租赁模式
基于 Zookeeper和 kafka-configs.sh 管理所有用户
1、步骤
l 基于zookeeper,实现用户管理
l 配置broker认证信息,并进行平滑更新
l 配置client认证信息(通过java api)
2、其他概念
ACL:
访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。
用于通信流量的控制
监听器同时配置无认证的9092和有认证的9093端口,注意对于kafka内部资源无任务ACL时才允许9092
Kafka内部资源包括读写topic和consumer group的读
二、Quotas--限额/资源配额
1、说明
对于认证的kafka,可以使用userId和clientId进行认证,否则只能通过clientId限流
配置选项:生产者、消费者、CPU百分比
可以实现:followers拉取leader副本的速率以及……
三个层级上设置配额:userId和clientId以及二者组合
2、配置命令
配置user+client:bin/kafka-configs.sh --zookeeper 172.31.96.165:2181/jhliu20 --alter --add-config 'producer_byte_rate=1048576,consumer_byte_rate=1048576' --entity-type users --entity-name alice --entity-type clients --entity-name clientA
配置user:bin/kafka-configs.sh --zookeeper 172.31.96.165:2181/jhliu20 --alter --add-config 'producer_byte_rate=1048576,consumer_byte_rate=1048576' --entity-type users --entity-name alice
配置client:bin/kafka-configs.sh --zookeeper 172.31.96.165:2181/jhliu20 --alter --add-config 'producer_byte_rate=1048576,consumer_byte_rate=1048576' --entity-type clients --entity-name clientA
3、超额处理
生产者超额:追加log,记录延时时间
消费者超额:延时到期后再去log读取
验证:超出限流后,broker采取抛弃策略
三、kafka官方文档
0、官网介绍
组成:
1快速入门、
2常用API(需要导入的maven包)、
3配置(不同的属性参数配置描述)、
4设计(ISR、log压缩、配额※--延迟响应)、
5实施(消息格式记录头、集群结构等)、
6常见操作(多租户)、
7安全(SASL+SCRAM、授权和ACL)、7.3节内容
8kafka连接(一些关于Java连接的函数操作)、
9kafka流
2、需要深入了解的知识
l SCRAM的256和512含义及SCRAM的配置等
l 基于SCRAM的多租户实现
l 基于zookeeper的用户管理实现
l JAAS及ACL的配置及添加
l Client的配置
l 配额Quotas的配置及超额的处理
3、名词解释
l Quotas:配额,控制客户端使用的代理资源,避免流量超过阈值从而降低用户体验
l SASL:Simple Authentication and Security Layer,简单认证和安全层,是一种安全机制,可以使用SASL_SSL 和SASL_PLAINTEXT 安全协议(安全认证的明文、安全认证的套接字)
n PLAINTEXT:明文/纯文本,在broker客户端配置kafka_server_jaas.conf认证信息
n SSL:Secure Sockets Layer,安全套接字协议
l SCRAM:Salted Challenge Response Authentication Mechanism,盐化的质询响应认证机制,可以不用重启就能新增用户,与PLAIN是两种常用的权限认证方式
n 配合安全传输层协议TLS,Transport Layer Security
n 通过 SCRAM-SHA-256和SCRAM-SHA-512两种安全认证方式配合TLS完成安全权限认证
n Creating SCRAM Credentials,创建安全认证
l JAAS:Java Authentication and Authorization Service,Java认证和授权服务,需要在客户端中配置kafka_client_jaas.conf文件,配置明文认证信息KafkaClient
l ACL:用户权限控制/访问控制列表,一种权限认证方式,需要配置allow.everyone.if.no.acl.found=true【如果无ACL权限控制,就允许任意用户进行访问】
l Multi-tenancy:多租户,用户空间、集群共享,权限认证
l 关系:SASL(_PLAINTEXT)安全认证,需要先配置broker和client的JAAS文件,针对不同的SASL认证方式(SSL/PLAINTEXT),又分别都可以使用PLAIN(只需要配置jaas即可)/SCRAM(包含两种安全认证/加密方式,配置jaas+命令行添加配置)进行加密【jaas+命令行】
【Kafka】Quota配额命令、文档相关概念的更多相关文章
- kafka集群搭建文档
kafka集群搭建文档 一. 下载解压 从官网下载Kafka,下载地址http://kafka.apache.org/downloads.html 注意这里最好下载scala2.10版本的kafka, ...
- Git教程(2)官方命令文档及常用命令表
http://www.cnblogs.com/angeldevil/archive/2013/11/26/3238470.html 1,官方命令文档 http://www.git-scm.com/do ...
- 09 Command Documentation 命令文档
Command Documentation 命令文档 There is a suite of programs to build and process Go source code. Inste ...
- 500 多个 Linux 命令文档搜索
500 多个 Linux 命令文档搜索 搜索界面:https://wangchujiang.com/linux-command/ 源码:https://github.com/jaywcjlove/li ...
- 环境变量PATH/cp命令/mv命令/文档查看cat/more/less/head/tail
2.10 环境变量PATH 2.11 cp命令 2.12 mv命令 2.13 文档查看cat/more/less/head/tail which rmdir 可以查到命令的路径 例如: ls 命令是 ...
- 常用 Git 命令文档和命令
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3IAAAEVCAIAAAAq20B9AAAgAElEQVR4nOydd3wUxfvH93p6gQRCCF ...
- Linux基础入门级命令文档
Linux系统上命令的使用格式,及常用命令示例 1.命令提示符 登录系统后,第一眼看到的内容是: [root@node01 ~]# 上图就是 Linux 系统的命令提示符.那么,这个提示符的含义是什么 ...
- kafka集群部署文档(转载)
原文链接:http://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候 ...
- ELK+filebeat、kafka、zookeeper搭建文档
系统:centos 6.5 JDK:1.8 Elasticsearch-6.0.0Logstash-6.0.0kibana-6.0.0zookeeper-3.5.3kafka_2.12-1.0.0fi ...
- Markdown 文档生成工具
之前用了很多Markdown 文档生成工具,发现有几个挺好用的,现在整理出来,方便大家快速学习. loppo: 非常简单的静态站点生成器 idoc:简单的文档生成工具 gitbook:大名鼎鼎的文档协 ...
随机推荐
- Elasticsearch:跨集群搜索 Cross-cluster search (CCS)
转载自:https://blog.csdn.net/UbuntuTouch/article/details/104588232 跨集群搜索(cross-cluster search)使您可以针对一个或 ...
- Gitlab备份以及恢复
1.迁移准备工作和思路 从a服务器迁移到b服务器,由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,需要注意在b服务器部署和a服务器一样版本的gitlab,部署好环境后开 ...
- 使用 kubectl 执行 Rolling Update(滚动更新)
Rolling Update滚动更新 通过使用新版本的 Pod 逐步替代旧版本的 Pod 来实现 Deployment 的更新,从而实现零停机.新的 Pod 将在具有可用资源的 Node(节点)上进行 ...
- vue this.$router.push query传递对象方法
this.$router.push({ path: '/home', query: { params: JSON.stringify({ name: 'lokka', age: 18 }) } }); ...
- Linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) "
前言 作者在2021-07-21时遇到 linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localh ...
- 云数据库技术|“重磅升级”后再测 TDSQL-C
来源:云数据库技术 标题 1.摘要 前段时间,测试了国内主要云原生数据库 PolarDB.TDSQL-C.GaussDB 的性能,参考:<再测云原生数据库性能>.在上次测试结果中,由于地域 ...
- Bing 广告平台迁移到 .net6
原文链接 https://devblogs.microsoft.com/dotnet/bing-ads-campaign-platform-journey-to-dotnet-6/ 广告组件平台对于微 ...
- .Net Framework中的AppDomain.AssemblyResolve事件的常见用法、问题,以及解决办法
一.简述 本文简要的介绍.NET Framework中System.AppDomain.AssemblyResolve事件的用法.使用注意事项,以及复杂场景下AssemblyResolve事件的污染问 ...
- OnionArch - 如何实现更新指定字段的通用Handler
博主最近失业在家,找工作之余,自己动手写了个洋葱架构(整洁架构)解决方案,以总结和整理以前的项目经验,起名叫OnionArch,其目的是为了更好的实现采用DDD(领域驱动分析)和命令查询职责分离(CQ ...
- 面试突击91:MD5 加密安全吗?
MD5 是 Message Digest Algorithm 的缩写,译为信息摘要算法,它是 Java 语言中使用很广泛的一种加密算法.MD5 可以将任意字符串,通过不可逆的字符串变换算法,生成一个唯 ...