目录

  • 五. KafKa监控
    • 5.1 介绍
    • 5.2 安装
    • 5.3 使用
  • 六. Flume对接Kafka
  • 七. KafKa Streams
  • 八. KafKa面试题

五. KafKa监控

可以参考:https://www.cnblogs.com/keatsCoder/p/13291615.html

可以参考:https://www.cnblogs.com/yangxiaoli/p/13391205.html

5.1 介绍

  • 监控工具:Eagle(鹰眼)。
  • 功能:通过命令行进行topic的crud很麻烦, 可以通过Ealge来操作. 相当于kfk的图形界面. 另外还能通过Ealge监控kfk生产者消费的速度。

5.2 安装

  • Eagle通过JMX方式拉取数据

  • 1 修改kfk启动命令

    # 修改 kafka-server-start.sh 中的if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    fi# 为if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"export JMX_POST="9999"#export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    fi# 根据配置可以将内存改小一点。
    
  • 2 给启动文件执行权限

    [root@king bin]# pwd
    /opt/kafka/eagle/eagle/bin
    [root@king bin]# chmod 777 ke.sh
    
  • 3 配置环境变量 (必须)

    [root@king ~]# vim /etc/profile# shift+G 跳到文件末尾加上下面两行
    export KE_HOME=/opt/kafka/eagle/eagle
    export PATH=$PATH:$KE_HOME/bin# 配完后执行以下命令 刷新
    [root@king ~]# source /etc/profile
    
  • 4 修改配置文件

    [root@king ~]# vim /opt/kafka/eagle/eagle/conf/system-config.properties
    ######################################
    # multi zookeeper & kafka cluster list Eagle可以监控多套kfk集群。
    ######################################
    # kafka.eagle.zk.cluster.alias=cluster1,cluster2
    # cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181
    # cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181# 只监控一套集群
    kafka.eagle.zk.cluster.alias=cluster1
    cluster1.zk.list=localhost:2181######################################
    # zookeeper enable acl
    ######################################
    cluster1.zk.acl.enable=false
    cluster1.zk.acl.schema=digest
    cluster1.zk.acl.username=test
    cluster1.zk.acl.password=test123######################################
    # broker size online list
    ######################################
    cluster1.kafka.eagle.broker.size=20######################################
    # zk client thread limit 跟zk连接的线程数,不用动
    ######################################
    kafka.zk.limit.size=25######################################
    # kafka eagle webui port UI界面端口
    ######################################
    kafka.eagle.webui.port=8048######################################
    # kafka jmx acl and ssl authenticate
    ######################################
    cluster1.kafka.eagle.jmx.acl=false
    cluster1.kafka.eagle.jmx.user=keadmin
    cluster1.kafka.eagle.jmx.password=keadmin123
    cluster1.kafka.eagle.jmx.ssl=false
    cluster1.kafka.eagle.jmx.truststore.location=/Users/dengjie/workspace/ssl/certificates/kafka.truststore
    cluster1.kafka.eagle.jmx.truststore.password=ke123456######################################
    # kafka offset storage 根据kfk版本不同,消费者将offset存到kfk还是zk
    ######################################
    cluster1.kafka.eagle.offset.storage=kafka
    # cluster2.kafka.eagle.offset.storage=zk######################################
    # kafka metrics, 15 days by default
    ######################################
    # 开启图表
    kafka.eagle.metrics.charts=true
    kafka.eagle.metrics.retain=15######################################
    # kafka sql topic records max
    ######################################
    kafka.eagle.sql.topic.records.max=5000######################################
    # delete kafka topic token
    ######################################
    kafka.eagle.topic.token=keadmin######################################
    # kafka sasl authenticate
    ######################################
    cluster1.kafka.eagle.sasl.enable=false
    cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
    cluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256
    cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";
    cluster1.kafka.eagle.sasl.client.id=
    cluster1.kafka.eagle.blacklist.topics=
    cluster1.kafka.eagle.sasl.cgroup.enable=false
    cluster1.kafka.eagle.sasl.cgroup.topics=
    cluster2.kafka.eagle.sasl.enable=false
    cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
    cluster2.kafka.eagle.sasl.mechanism=PLAIN
    cluster2.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";
    cluster2.kafka.eagle.sasl.client.id=
    cluster2.kafka.eagle.blacklist.topics=
    cluster2.kafka.eagle.sasl.cgroup.enable=false
    cluster2.kafka.eagle.sasl.cgroup.topics=######################################
    # kafka ssl authenticate
    ######################################
    cluster3.kafka.eagle.ssl.enable=false
    cluster3.kafka.eagle.ssl.protocol=SSL
    cluster3.kafka.eagle.ssl.truststore.location=
    cluster3.kafka.eagle.ssl.truststore.password=
    cluster3.kafka.eagle.ssl.keystore.location=
    cluster3.kafka.eagle.ssl.keystore.password=
    cluster3.kafka.eagle.ssl.key.password=
    cluster3.kafka.eagle.blacklist.topics=
    cluster3.kafka.eagle.ssl.cgroup.enable=false
    cluster3.kafka.eagle.ssl.cgroup.topics=######################################
    # kafka sqlite jdbc driver address
    ######################################
    kafka.eagle.driver=org.sqlite.JDBC
    kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
    kafka.eagle.username=root
    kafka.eagle.password=www.kafka-eagle.org######################################
    # kafka mysql jdbc driver address  将一些元数据信息存入mysql
    ######################################
    #kafka.eagle.driver=com.mysql.jdbc.Driver
    #kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    #kafka.eagle.username=root
    #kafka.eagle.password=123456
    
  • 5 启动

    # 启动之前确保先启动zk再自动kfk
    [root@king eagle]# ./bin/ke.sh start[2020-12-12 17:16:09] INFO: Status Code[0]
    [2020-12-12 17:16:09] INFO: [Job done!]
    Welcome to__ __    ___     ____    __ __    ___            ______    ___    ______    __     ______/ //_/   /   |   / __/   / //_/   /   |          / ____/   /   |  / ____/   / /    / ____// ,<     / /| |  / /_    / ,<     / /| |         / __/     / /| | / / __    / /    / __/   / /| |   / ___ | / __/   / /| |   / ___ |        / /___    / ___ |/ /_/ /   / /___ / /___
    /_/ |_|  /_/  |_|/_/     /_/ |_|  /_/  |_|       /_____/   /_/  |_|\____/   /_____//_____/   Version 2.0.3 -- Copyright 2016-2020
    *******************************************************************
    * Kafka Eagle Service has started success.
    * Welcome, Now you can visit 'http://xxx.xx.xxx.xx:8048'
    * Account:admin ,Password:123456
    *******************************************************************
    * <Usage> ke.sh [start|status|stop|restart|stats] </Usage>
    * <Usage> https://www.kafka-eagle.org/ </Usage>
    *******************************************************************
    [root@king eagle]# ./bin/ke.sh status
    [root@king eagle]# jps
    
  • 6 UI界面:

    这个玩意特别占内存

5.3 使用

六. Flume对接Kafka

七. KafKa Streams

八. KafKa面试题

  • kfk中的ISR(InSyncRepli), OSR(OutSyncRepli), AR(AllRepli)代表什么?

  • kfk中的HW, LOE代表什么?

  • kfk中如何体现消息的顺序性?

  • kfk中的分区器 序列化器 拦截器的作用以及原理以及调用顺序.

  • kfk生产者客户端的整体结构是什么样子的, 使用了几个线程来处理, 分别是什么?

  • kafka的balance是怎么做的

  • kafka的消费者有几种模式

  • 为什么kafka可以实现高吞吐?单节点kafka的吞吐量也比其他消息队列大,为什么?

  • kafka的偏移量offset存放在哪儿,为什么?

  • Kafka消费过的消息如何再消费

  • Kafka里面用的什么方式 拉的方式还是推的方式?如何保证数据不会出现丢失或者重复消费的情况?做过哪些预防措施,怎么解决以上问题的?Kafka元数据存在哪?

  • kafka支不支持事物,

  • Kafka的原理

  • 消费者组中的消费者个数如果超过topic的分区, 那么就会有消费者消费不到数据. 这句话是否正确?

  • 消费者提交消费位移时提交的是当前消费到的最新消息的offset还是offset+1?

  • 哪些情形会造成重复消费?

  • 哪些情形会造成消息漏消费?

kafka基础入门(五)相关推荐

  1. 罗马音平假名中文可复制_日语零基础入门五十音,日语零基础五十音图表

    日语零基础入门五十音,日语入门的最基本要求就是记住五十音图,但是这个记住不仅是你能背下来或是默写下来.而是你需对号入座! 下面是一张五十音图表. 即每个假名单独拿出来你要立马反应出来怎么读.其重要性甚 ...

  2. kafka基础入门_CodingPark编程公园

    文章介绍 本文是kafka基础入门篇,讲解内容包括: 1. 消息队列对比表 2. Kafka概念及特性 3. kafka总体结构 4. kafka各项配置 5. 生产者 6. kafka Broker ...

  3. Kafka基础入门篇

    1 kafka简介 Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用与大数据实时处理领域.其主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化 ...

  4. PyTorch基础入门五:PyTorch搭建多层全连接神经网络实现MNIST手写数字识别分类

    )全连接神经网络(FC) 全连接神经网络是一种最基本的神经网络结构,英文为Full Connection,所以一般简称FC. FC的准则很简单:神经网络中除输入层之外的每个节点都和上一层的所有节点有连 ...

  5. kafka基础入门(4):kafka消费者

    kafka消费者 kafka消费方式 kafka采用pull(拉)模式,consumer从broker中拉取数据 pull模式的不足:如果Kafka没有数据,消费者可能会陷入循环中,一直返回空数据 k ...

  6. kafka基础入门(三)

    目录 三. kfk的架构深入 3.4 kfk的消费者 3.4.1 消费者的消费方式 3.4.2 分区分配策略 3.4.2.1 RoundRobin轮询 3.4.2.2 Range范围(默认) 3.4. ...

  7. java5的递归算法_Java基础入门(五)之方法以及递归算法

    一.方法 1.1 什么是方法 java中的方法类似于其他语言中的函数 是一段用来完成特定功能的代码片段 1.2 为什么要声明方法 DRY Don't Repeat Yourself(不要写重复的代码) ...

  8. jquery for循环_前端基础入门五(掌握jQuery的常用api,实现动态效果)

    jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果. 为什么要学习jQuery? [01-让div显示与设置内容.html] 使 ...

  9. 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了

    本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...

最新文章

  1. C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
  2. 物联网配云计算 两情相悦还是单相思?
  3. python教程:getattr函数和hasattr函数的用法
  4. java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...
  5. linux之lsof查看端口占用情况
  6. java实用教程——组件及事件处理——处理事件
  7. Leetcode--287. 寻找重复数
  8. C++基础14-类和对象之多继承与虚继承
  9. android序列化好处,浅谈Android序列化
  10. Android开发--Button的应用
  11. Qt 在VS2005安装过程
  12. 机器学习:贝叶斯网络
  13. 自然语言处理顶会 ACL2019论文接收列表
  14. 百度首页代码(HTML+CSS+jQuery)
  15. 原生/RN/Flutter选型
  16. ESN学习笔记——原理与超参数
  17. 足球一代又一代得青春
  18. 六十星系之43紫微天相坐辰戌
  19. 记一次软考高项【信息系统项目管理师】重点
  20. CSS实现页脚始终在页面底部

热门文章

  1. Pytorch ——基础指北_叁 [Pytorch API 构建基础模型]
  2. 两位数值单词的乘法实现
  3. 多重判断条件IF优化
  4. Android Room 使用详解
  5. Java经典案列——模拟双色球(含完整代码)
  6. linux之hdparm命令说明及其测试硬盘读写速度
  7. vue 设置el-table 某一列点击出现输入框可以编辑
  8. 快递物流信息推送功能分析
  9. m4s格式转换mp3_m4a格式的音频文件怎样转换成MP3格式?
  10. python足球联赛赛程_用Python生成分类的足球联赛表