一、多租赁模式
基于 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+命令行】

最新文章

  1. ISO日期格式标准,浏览器到服务器到mysql中的时区
  2. SpringMVC处理请求流程
  3. jquery自定义函数的多种方法
  4. Quartus 11.0 的AS 下载方式和JTAG下载jic文件的方式
  5. linux服务开机启动顺序
  6. SQL SERVER ->> CXPacket等待类型
  7. Android实时监听网络状态(1)
  8. 【转】Android HAL实例解析
  9. Android Studio 解决方法No JVM installation found. Please install a 64-bit JDK.
  10. KindEditor - 代码高亮
  11. 关于SourceTree License
  12. mysql revise
  13. Java开发工具(Eclipse中内容辅助键的使用)
  14. 201521123084 《Java程序设计》第5周学习总结
  15. .net core 使用Redis的发布订阅
  16. omit 配合antd from使用 hoistStatics
  17. 2018年最新JAVA面试题总结之数据库(3)
  18. 【Redis】yum安装redis
  19. (二叉树 BFS DFS) leetcode 111. Minimum Depth of Binary Tree
  20. linux shell中如何往所有行尾添加内容

热门文章

  1. .Net 不受 EAR 的约束
  2. 12.第十一篇 安装docker引擎
  3. 使用TLS安全的访问Minio服务
  4. 我的 Kafka 旅程 - broker
  5. 为什么 CRM 能帮助装备制造企业进行数字化转型?
  6. ERP 系统最重要的是什么?
  7. flutter系列之:把box布局用出花来
  8. iptables介绍和基本使用
  9. PMM实现监控Mysql-MGR
  10. Scrapy 如何传递 get请求的params