一、多租赁模式
基于 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. 【学习笔记】 第05章 pandas入门

    前言 上一篇学习中学成的随笔是我的第一篇随笔,撰写中有颇多不足,比如事无巨细的写入学习过程反而像是在抄书,失去了很多可读性也不利于自己反过头来复习,本章节学习需要多加注意,尽量写下较为关键的内容,犯下 ...

  2. Logstash:Grok filter 入门

    转载自: https://blog.csdn.net/UbuntuTouch/article/details/105922198 Logstash模式:https://www.elastic.co/g ...

  3. 通过Thread Pool Executor类解析线程池执行任务的核心流程

    摘要:ThreadPoolExecutor是Java线程池中最核心的类之一,它能够保证线程池按照正常的业务逻辑执行任务,并通过原子方式更新线程池每个阶段的状态. 本文分享自华为云社区<[高并发] ...

  4. Flask 框架:运用Echarts绘制图形

    echarts是百度推出的一款开源的基于JavaScript的可视化图表库,该开发库目前发展非常不错,且支持各类图形的绘制可定制程度高,Echarts绘图库同样可以与Flask结合,前台使用echar ...

  5. Vue3 Vite3 多环境配置 - 基于 vite 创建 vue3 全家桶项目(续篇)

    在项目或产品的迭代过程中,通常会有多套环境,常见的有: dev:开发环境 sit:集成测试环境 uat:用户接收测试环境 pre:预生产环境 prod:生产环境 环境之间配置可能存在差异,如接口地址. ...

  6. 使用idea操作git(ssh协议)

    问题 我们发现,使用IDEA上的git功能,当使用ssh协议出现了可以commit但无法push和pull的问题,经过测试发现原因是Could not read from remsitory.直接翻译 ...

  7. Unity破窗游戏制作(简易版)

    Unity破窗游戏制作(简易版) 参考:"对不起,我选择摸鱼"-<扫雷>小游戏开发实战,算法.源代码,基于Unity3D开发 - 掘金 (juejin.cn) 到&qu ...

  8. python的微积分运算

    import sympy sympy.init_printing() from sympy import I, pi, oo import numpy as np 求函数的导数 x = sympy.S ...

  9. 硬核剖析ThreadLocal源码,面试官看了直呼内行

    工作面试中经常遇到ThreadLocal,但是很多同学并不了解ThreadLocal实现原理,到底为什么会发生内存泄漏也是一知半解?今天一灯带你深入剖析ThreadLocal源码,总结ThreadLo ...

  10. csharp 基础

    1.C#基础 1.1 C#简介 C#是一个面向对象的.由微软开发的高级编程语言,它专门为公共语言基础结构(CLI)设计的,CLI是由可执行代码和运行时环境组成的. C#语言在编写时有点像JAVA,在运 ...