0-kafka需求
根据客户在使用我们部署的Kafka集群进行数据消费的时候,有权限控制及对数据组消费统计的使用场景及相关需求
数据总线
一、 需求
需求如下:目前沪杭甬这边kafka集群对接外部厂商比较多,需要对所有消费厂商和消费数据进行管理和监控 1.厂商管理,包括厂商管理,消费用户和密码设置 2.每个厂商分配固定的group,可以查看每个厂商的订阅数据情况 3.对于每个厂商的订阅数据进行监控,厂商的权限控制 4.kafka offset是否越界的判断接口
二、 目标
针对客户提出来的进行梳理并且提出技术解决方案,并将方案落地。 一期先按照手动控制与管理,二期做web应用管理。
三、 技术方案
- 原有kafka集群不做调整
- 新建1个kafka集群,开启sasl验证,并且选择性的将某些数据同步
- 新集群的kafka的topic数据被消费的时候都需要使用密钥,才能够消费。
- 按照之前kafka metric获取办法,进行统计新的指标
四、 功能点
针对不同的消费者,在消费不同的Topic消息的时候的进行权限校验,阻止没有权限的用户可以消费kafka集群当中的任意topic。
- 对外服务kafka集群 二级kafka集群,开启权限验证,对外提供数据服务。
- 权限管理 SASL权限控制,控制级别topic,支持读写权限校验
- 密钥添加
- 密钥删除
- 支持动态授权
- 数据同步 mirror maker数据同步
- 阻断消费
- 方案一:一个topic,多个密钥,支持多个消费组
- 优点:便于管理
- 缺点:
- 权限收回没有办法阻断已连接的消费者,重连接校验生效,不能很好阻断数据消费
- 消费组监控信息不好收集
- 方案二:一个topic对应一个密钥,支持一个消费组
- 优点:及时阻断消费在生产端控制数据
- 缺点:增加管理成本
最终选择方案一!
- metrics 统计不同消费者消费的消息条数、消息数据量字节数大小,数据量保存7天
任务拆解
- 1. 集群搭建
- 2. 权限管理,操作方式,脚本操作,密码记录
- 3. 数据同步,方案二,mirror maker 需要改代码
- 4. 数据量,机器资源评估
- 5. 阻断消费,验证
- 6. zk保护,iptables