一、多租赁模式
基于 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配额命令、文档相关概念的更多相关文章

  1. kafka集群搭建文档

    kafka集群搭建文档 一. 下载解压 从官网下载Kafka,下载地址http://kafka.apache.org/downloads.html 注意这里最好下载scala2.10版本的kafka, ...

  2. Git教程(2)官方命令文档及常用命令表

    http://www.cnblogs.com/angeldevil/archive/2013/11/26/3238470.html 1,官方命令文档 http://www.git-scm.com/do ...

  3. 09 Command Documentation 命令文档

    Command Documentation 命令文档   There is a suite of programs to build and process Go source code. Inste ...

  4. 500 多个 Linux 命令文档搜索

    500 多个 Linux 命令文档搜索 搜索界面:https://wangchujiang.com/linux-command/ 源码:https://github.com/jaywcjlove/li ...

  5. 环境变量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 命令是 ...

  6. 常用 Git 命令文档和命令

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3IAAAEVCAIAAAAq20B9AAAgAElEQVR4nOydd3wUxfvH93p6gQRCCF ...

  7. Linux基础入门级命令文档

    Linux系统上命令的使用格式,及常用命令示例 1.命令提示符 登录系统后,第一眼看到的内容是: [root@node01 ~]# 上图就是 Linux 系统的命令提示符.那么,这个提示符的含义是什么 ...

  8. kafka集群部署文档(转载)

    原文链接:http://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候 ...

  9. 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 ...

  10. Markdown 文档生成工具

    之前用了很多Markdown 文档生成工具,发现有几个挺好用的,现在整理出来,方便大家快速学习. loppo: 非常简单的静态站点生成器 idoc:简单的文档生成工具 gitbook:大名鼎鼎的文档协 ...

随机推荐

  1. 使用Filebeat传送多行日志

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106272704 在解决应用程序问题时,多行日志为开发人员提供了宝贵的信息. 堆栈跟踪 ...

  2. 8. 使用Fluentd+MongoDB采集Apache日志

    Fluentd+MongoDB,用以实时收集半结构化数据. 背景知识 日志接入Fluentd后,会以json的格式在Fluentd内部进行路由.这就决定了Fluentd处理日志的方式是非常灵活的,它将 ...

  3. C++面向对象编程之转换函数、explicit、one-argument

    1.转换函数 转换函数不需要返回值和参数,直接 "operator 类型名称() {}" ,类型名称就决定了返回值: 在一开始在执行 d = 4 + f; 时,先看有木有重载 + ...

  4. springboot的注解声明过滤器配置错误导致拦截所有请求。

    究其原因, 原来spring 扫包时候 扫了Webfilter 注解,注册了一次过滤匹配路径,扫了Component注解(又注册了一次过滤匹配路径,默认是全路径). Component注解后于WebF ...

  5. ABC260 作战总结

    ABC260 作战总结 今后开始写一些模拟赛外的其他比赛的总结(也许有题解?). 开场点到另一场\(\text{ARC}\)去了,耽误了点时间,切完前四题发现已经过了\(37\)分钟了,看来自己读题+ ...

  6. String类型变量的使用

    1.String属于引用数据类型,翻译为:字符串 2.声明String类型变量时,使用一对"" 3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+ 4.运算 ...

  7. python: m个位置,每个位置有n种可能,求所有排列结果

    >>> import itertools >>> m, n = 3, 2 >>> paths = list(itertools.product(r ...

  8. WPF 鼠标移动到图片变大,移开还原,单击触发事件效果

    <Grid>         <Canvas x:Name="LayoutRoot">             <Image Cursor=" ...

  9. nrf9160开机测试(做主控)——连接nrfcloud云

    由于作者水平有限,如有披漏欢迎指正. 测试流程: 1.前期开发准备(硬件) 2.开发环境准备(软件) 3.连接云 4.GPS测试 一.前期开发准备: nrf9160-DK版 nRF Connect f ...

  10. 各种优化器对比--BGD/SGD/MBGD/MSGD/NAG/Adagrad/Adam

    指数加权平均 (exponentially weighted averges) 先说一下指数加权平均, 公式如下: \[v_{t}=\beta v_{t-1}+(1-\beta) \theta_{t} ...