首页 > 其他分享 >kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究

时间:2023-04-22 22:00:44浏览次数:37  
标签:KafkaManager 管控 kafka manager 集群 mysql Kafka 调试

目录

调试环境搭建

前端调试环境

后端调试环境

功能架构

工具理解

应用开发人员

kafka/管控开发人员

kafka/管控运维人员

部署验证

windows环境下的部署/调试环境

linux环境下生产使用

后续


 

调试环境搭建

前端调试环境

github克隆比较慢gitee很快,采取前后端分离架构(springboot+reactJS+Typescript),代码包含了几个模块common,console,core,dao,extends,task,web,其中web中有MainApplication这个项目的启动类,其他都是依赖,console模块是基于recat+typescript的前端界面(技术栈选型还是很超前的),本地分别对前后端运行查看源码,这里把console单独放在VScode中运行;

# react跟vue一样基于node,所以npm相关依赖引入和配置启动
npm config set registry https://registry.npm.taobao.org 
npm config list #查看npm当前配置
npm install
# 启动react项目
npm start

console前端模块启动运行:

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_kafka

因为前后端分别用idea和vscode,所以后端项目pom.xml需要注释掉对于console前端模块的引用:

     

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_hadoop_02

后端调试环境

依赖Maven 3.5+(后端打包),node v12+(前端打包),Java 8+(运行环境需要),MySQL 5.7(数据存储),node因为放在vscode了所以不需要,在mysql创建kafka_manager库,并且运行sql初始化语句,同时修改springboot中的mysql配置(这里官方提供的sql语句没有加字符集设置,需要加上不然报错)

mysql --default-character-set=utf8 -uroot -p123456 -P3306 -D kafka_manager < create_mysql_table.sql

假设本地使用docker-desktop部署mysql,可以将mysql的create_mysql_table.sql上传到/opt,然后创建kafka_manager库后进行操作;

# 在windows的dos下把DDL语句上传到mysql这个容器docker的opt目录
docker cp .\create_mysql_table.sql mysql:/opt

# 容器操作
mysql --default-character-set=utf8 -uroot -p123456 -P3306 -D kafka_manager < /opt/create_mysql_table.sql

将web模块的MainApplication.java配置成应用主类即可启动;

2021-01-25 19:33:22.642  INFO 18000 --- [           main] c.x.kafka.manager.web.MainApplication    : MainApplication started

由于是本地运行,console模块的API的proxy/target需要修改:

proxy: {
      '/api/v1/': {
          target: 'http://127.0.0.1:8080',
        //target: 'http://10.179.37.199:8008',
        // target: 'http://99.11.45.164:8888',
        changeOrigin: true,
      }

以上,本地独立运行了基于前后端分离的调试环境;可以看见前端读取的是mysql库中kafka集群配置;

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_hadoop_03

功能架构

按照官方提供的功能架构图理解,因为logi-kafka-manager的定位是kafka集群全方位管控系统,它以kafka集群为主体,封装和集成了kafka对外提供的用户API,,以kafka集群和topic资源为运营对象,面向应用系统用户(topic使用者)、kafka/管控平台开发者、kafka/管控平台运维者提供便捷的资源管理能力。按照这个思维理解,官方给的功能架构包括:资源层(zk和mysql元数据存储)、引擎层(kafka集群为主体)、网关层(kafka服务基础管理能力)、服务层(高级用户api)、平台层(面向不同用户);

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_hadoop_04

工具理解

应用开发人员

针对应用开发人员,只关心其当前的应用系统的数据(多为日志数据)应发到哪个集群下的哪个topic?,因此logi-kafka-manager提供了“Topic管理”--“集群管理”--“监控告警”应用菜单服务,能提供以下几种服务:

  • 创建/申请应用
  • 在“Topic管理”内对当前的申请应用,匹配需要使用的topic资源(可调整配额和分区)
  • kafka集群接入申请
  • 在“监控告警”内自定义告警规则;(对消费偏移量、消费速率、集群状态、topic状态进行自定义监控,并实时预警,太有用了!)
  • 资源申请服务

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_大数据_05

kafka/管控开发人员

针对kafka/管控开发人员,需要进行应用系统、kafka集群、kafka管控平台的综合管理,增加“运维管控”菜单,提供对于kafka集群的server.config配置等集群运维能力和用户计费账单管理能力,能提供以下几种服务:

  • 创建/申请应用
  • 在“Topic管理”内对当前的申请应用,匹配需要使用的topic资源(可调整配额和分区)
  • 在“监控告警”内自定义告警规则
  • kafka集群接入、升级、配置修改能力
  • 应用管理能力
  • 平台用户计费账单管理能力
  • 资源申请服务

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_mysql_06

kafka/管控运维人员

针对kafka/管控运维人员,需要及时发现解决kafka集群问题和快速修复,提供“专家服务”,罗列常见问题和解决方法,提供以下几种服务:

  • 创建/申请应用
  • 在“Topic管理”内对当前的申请应用,匹配需要使用的topic资源(可调整配额和分区)
  • 在“监控告警”内自定义告警规则
  • kafka集群接入、升级、配置修改能力
  • 应用管理能力
  • 平台用户计费账单管理能力
  • kafka集群常见问题及修复方案
  • 资源申请服务

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_hadoop_07

部署验证

windows环境下的部署/调试环境

这里在win系统下本地kafka+logi-kafka-manager的联调测试验证,用于对于kafka+logi-kafka-manager的源码研究和联调,关于win环境下如何部署zookeeper以及idea中运行kafka集群可以参考之前系列文章:kafka实践(四):使用idea对Kafka编译和本地运行调试,以及kafka实践(十二):生产者(KafkaProducer)源码详解和调试,环境配置如下:

  • 本地启动zookeeper(3.4.12),服务端口2181;

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_分布式_08

  • idea上本地启动kafka集群(1.0版本),对外暴露9999端口服务,且本地已创建yzg这个topic;

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_分布式_09

  • idea上本地启动logi-kafka-manager后端模块,参考上面配置;
  • vscode本地启动console前端模块,本地调试环境搭建完毕:http://127.0.0.1:1025/

本地测试增加kafka集群到logi-kafka-manager内进行统一管理,新增的本地集群的zk地址和kafka地址,就可以统一管理broker和topic,以及后续的资源分配,win下实现环境配置方便源码调整和kafka/管控平台人员的调试;

kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究_大数据_10

linux环境下生产使用

linux环境下的生产部署使用则更为简单,zk和kafka部署完成后,按照官方文档指引进行前后端统一部署,不再验证;

# mvn会调用npm模块下载node依赖
mvn install


# application.yml 是配置文件

cp kafka-manager-web/src/main/resources/application.yml kafka-manager-web/target/
cd kafka-manager-web/target/
nohup java -jar kafka-manager-web-2.1.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&1 &

后续

对于自己来讲,持续跟踪kafka/logi-kafka-manager新特性和源码研究;

对于logi-kafka-manager工具,期待整合Mirror-maker跨机房数据传输工具,更方便地配置数据实时传输和效率监控;

标签:KafkaManager,管控,kafka,manager,集群,mysql,Kafka,调试
From: https://blog.51cto.com/u_16057845/6215588

相关文章

  • RabbitMQ、RocketMQ、Kafka性能对比分析
    MQ的作用MQ的作用是解耦、异步、削峰填谷。未使用MQ的情况MySql并发写大部分情况下维持在600-800之间,并发读1200-1500之间,所以消费端在消费消息的时候需控制在并发小于1000,从而达到限流的效果。使用MQ的情况MQ做个缓冲,消息放到磁盘,几个G或上T都可以存储,消息丢失......
  • 银河麒麟高级服务器操作系统V10 SP3安装kafka_2.12-2.3.1
    银河麒麟高级服务器操作系统V10SP3安装kafka_2.12-2.3.1 1.安装环境设置1关闭Selinux12345678910111213141516171819[root@localhost~]#vim/etc/selinux/config #Thisfilecontrolsthestate of SELinux on thesystem.#SELI......
  • kafka业务数据到ODS层处理小记
    kafka业务数据到ODS层处理小记1:kafka消息partition分区,应以表主键为key2:kafka消息落地后,同一批次数据中取主键+offset最大的一条,再删除基础数据中此批次数据,最后将此批次数据按数据处理类型(delete、insert、update),先insert、update,再delete。......
  • kafka
    首先配置好zookeeper修改kafka配置文件config/server.properties文件中broker.id=0port=9092host.name=192.168.112.91log.dirs=/usr/local/src/kafka/kafka-logszookeeper.connect=master:2181,slave1:2181,slave2:2181启动kafka./bin/kafka-server-start.sh-daemonc......
  • kafka、zookeeper配置运行的坑
    1、Windows安装zookeeper的时候,zookeeper.properties里dataDir=D:\\kafka_2.13-2.8.1\\data\\zookeeper路径要用双斜杠,否则报错2、idea里,application.yml里,bootstrap-servers:192.168.10.3:2181,192.168.10.50:2181,192.168.10.6:2181注意,冒号后面要有一个空格,否则报错......
  • kafka
    安装kafka首先安装jdk,zookeeper,kafka将压缩包放进linux目录/opt/mySoftware下,并依次执行下面的命令tar-zxvfjdk-8u361-linux-x64.tar.gztar-zxvfzookeeper-3.4.12.tar.gztar-zxvfkafka_2.11-2.0.0.tgz解压后会生成文件夹jdk1.8.0_361``kafka_2.11-2.0.0zookeep......
  • SchemaRegestry组件原生的类和方法无法实现flink消费kafka的数据动态调整schema的情况
    0、前提知识储备Conflurent公司的SchemaRegestry组件的基本了解和使用一、背景:0.组件版本flink:1.141.链路调整情况原先链路:oracle-->OGG-->kafka-->flink-->数据库\湖\仓实现链路:oracle-->OGG-->kafka(搭配conflurent公司的SchemaRegestry组件使用)-->flink-->数据库\湖\仓2......
  • 提高kafka消费速度之从源码去了解Spring-kafka的concurrency参数
    网上看到这篇文章,觉得很不错,这里转载记录一下。转自:提高kafka消费速度之从源码去了解Spring-kafka的concurrency参数-简书第一部分、引言    在spring应用中,如果我们需要订阅kafka消息,通常情况下我们不会直接使用kafka-client,而是使用了更方便的一层封装spring-kafk......
  • Kafka的研究&实战
    一、Kafka简介Kafka是一个高吞吐量的分布式的发布--订阅消息系统,可以处理大量的数据,并将消息从一个端点传递到另一个端点。同时Kafka还能将消息保存在磁盘上并在集群内复制以防数据丢失。二、Kafka的优势可靠性:Kafka是分布式、分区、复制和容错的。扩展性:可结合Zookeeper实现动态扩......
  • Go接入kafka
    需要借助的库github.com/Shopify/sarama//kafka主要的库*github.com/bsm/sarama-cluster//kafka消费组生产者packageproducerimport( "fmt" "github.com/HappyTeemo7569/teemoKit/tlog" "github.com/Shopify/sarama" "kafkaDemo/define"......