【Kafka】Quota配额命令、文档相关概念

一、多租赁模式
基于 Zookeeper kafka-configs.sh 管理所有用户

1、步骤

基于zookeeper,实现用户管理

配置broker认证信息,并进行平滑更新

配置client认证信息(通过java api

2、其他概念

ACL

访问控制列表(Access Control ListsACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。

用于通信流量的控制

 

监听器同时配置无认证的9092和有认证的9093端口,注意对于kafka内部资源无任务ACL时才允许9092

 

Kafka内部资源包括读写topicconsumer group的读

二、Quotas--限额/资源配额
1、说明

对于认证的kafka,可以使用userId和clientId进行认证,否则只能通过clientId限流

配置选项:生产者、消费者、CPU百分比

可以实现:followers拉取leader副本的速率以及……

三个层级上设置配额:userId和clientId以及二者组合

2、配置命令

配置user+clientbin/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

 

配置userbin/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

 

配置clientbin/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设计(ISRlog压缩、配额※--延迟响应)、

5实施(消息格式记录头、集群结构等)、

 

6常见操作(多租户)、

7安全(SASL+SCRAM、授权和ACL)、7.3节内容

 

8kafka连接(一些关于Java连接的函数操作)、

9kafka

2、需要深入了解的知识

SCRAM256512含义及SCRAM的配置等

基于SCRAM的多租户实现

基于zookeeper的用户管理实现

JAASACL的配置及添加

Client的配置

配额Quotas的配置及超额的处理

3、名词解释

Quotas:配额,控制客户端使用的代理资源,避免流量超过阈值从而降低用户体验

 

SASLSimple Authentication and Security Layer,简单认证和安全层,是一种安全机制,可以使用SASL_SSL SASL_PLAINTEXT 安全协议(安全认证的明文、安全认证的套接字)

PLAINTEXT:明文/纯文本,在broker客户端配置kafka_server_jaas.conf认证信息

 

 

SSLSecure Sockets Layer,安全套接字协议

SCRAMSalted Challenge Response Authentication Mechanism,盐化的质询响应认证机制,可以不用重启就能新增用户,与PLAIN是两种常用的权限认证方式

配合安全传输层协议TLSTransport Layer Security

通过 SCRAM-SHA-256SCRAM-SHA-512两种安全认证方式配合TLS完成安全权限认证

n Creating SCRAM Credentials,创建安全认证

JAASJava Authentication and Authorization ServiceJava认证和授权服务,需要在客户端中配置kafka_client_jaas.conf文件,配置明文认证信息KafkaClient

ACL:用户权限控制/访问控制列表,一种权限认证方式,需要配置allow.everyone.if.no.acl.found=true【如果无ACL权限控制,就允许任意用户进行访问】

l Multi-tenancy:多租户,用户空间、集群共享,权限认证

l 关系:SASL(_PLAINTEXT)安全认证,需要先配置brokerclientJAAS文件,针对不同的SASL认证方式(SSL/PLAINTEXT),又分别都可以使用PLAIN(只需要配置jaas即可)/SCRAM(包含两种安全认证/加密方式,配置jaas+命令行添加配置)进行加密【jaas+命令行】

 

posted @ 2021-06-28 21:12  哥们要飞  阅读(217)  评论(0编辑  收藏  举报