根据客户在使用我们部署的Kafka集群进行数据消费的时候,有权限控制及对数据组消费统计的使用场景及相关需求

数据总线

一、 需求

需求如下:目前沪杭甬这边kafka集群对接外部厂商比较多,需要对所有消费厂商和消费数据进行管理和监控 1.厂商管理,包括厂商管理,消费用户和密码设置 2.每个厂商分配固定的group,可以查看每个厂商的订阅数据情况 3.对于每个厂商的订阅数据进行监控,厂商的权限控制 4.kafka offset是否越界的判断接口

二、 目标

针对客户提出来的进行梳理并且提出技术解决方案,并将方案落地。 一期先按照手动控制与管理,二期做web应用管理。

三、 技术方案

  1. 原有kafka集群不做调整
  2. 新建1个kafka集群,开启sasl验证,并且选择性的将某些数据同步
  3. 新集群的kafka的topic数据被消费的时候都需要使用密钥,才能够消费。
  4. 按照之前kafka metric获取办法,进行统计新的指标

四、 功能点

针对不同的消费者,在消费不同的Topic消息的时候的进行权限校验,阻止没有权限的用户可以消费kafka集群当中的任意topic。

  1. 对外服务kafka集群 二级kafka集群,开启权限验证,对外提供数据服务。
  2. 权限管理 SASL权限控制,控制级别topic,支持读写权限校验
  • 密钥添加
  • 密钥删除
  • 支持动态授权
  1. 数据同步 mirror maker数据同步
  2. 阻断消费
  • 方案一:一个topic,多个密钥,支持多个消费组
    • 优点:便于管理
    • 缺点:
      • 权限收回没有办法阻断已连接的消费者,重连接校验生效,不能很好阻断数据消费
      • 消费组监控信息不好收集
  • 方案二:一个topic对应一个密钥,支持一个消费组
    • 优点:及时阻断消费在生产端控制数据
    • 缺点:增加管理成本

最终选择方案一!

  1. metrics 统计不同消费者消费的消息条数、消息数据量字节数大小,数据量保存7天

任务拆解

  • 1. 集群搭建
  • 2. 权限管理,操作方式,脚本操作,密码记录
  • 3. 数据同步,方案二,mirror maker 需要改代码
  • 4. 数据量,机器资源评估
  • 5. 阻断消费,验证
  • 6. zk保护,iptables