Kafka Manager

Kafka 原理和实战

痴心易碎 提交于 2021-02-18 08:17:11
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平台、移动浏览器、推荐广告和大数据、人工智能等相关开发和架构。目前在vivo智能平台中心从事 AI中台建设以及广告推荐业务。擅长各种业务形态的业务架构、平台化以及各种业务解决方案。 博客地址: http://arganzheng.life 。 背景 最近要把原来做的那套集中式日志监控系统进行迁移,原来的实现方案是: Log Agent => Log Server => ElasticSearch => Kibana,其中Log Agent和Log Server之间走的是Thrift RPC,自己实现了一个简单的负载均衡(WRB)。 原来的方案其实运行的挺好的,异步化Agent对应用性能基本没有影响。支持我们这个每天几千万PV的应用一点压力都没有。不过有个缺点就是如果错误日志暴增,Log Server这块处理不过来,会导致消息丢失。当然我们量级没有达到这个程度,而且也是可以通过引入队列缓冲一下处理。不过现在综合考虑,其实直接使用消息队列会更简单。PRC,负载均衡,负载缓冲都内建实现了。另一种方式是直接读取日志,类似于logstash或者flume的方式

部署Kafka集群管理工具kafka-manager

孤街醉人 提交于 2021-02-07 12:35:14
一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,它最早由雅虎开源,功能非常齐全,展示的数据非常丰富。同时用户能够在界面上执行一些简单的集群管理操作。 不过雅虎已经将其更名为CMAK(Cluster Manager for Apache Kafka)。具体支持以下内容: 管理多个集群 轻松检查集群状态(主题,消费者,偏移,代理,副本分发,分区分发) 运行首选副本选举 使用选项生成分区分配以选择要使用的代理 运行分区重新分配(基于生成的分配) 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置) 删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true) 主题列表现在指示标记为删除的主题(仅支持0.8.2+) 批量生成多个主题的分区分配,并可选择要使用的代理 批量运行重新分配多个主题的分区 将分区添加到现有主题 更新现有主题的配置 选择性为 broker level and topic level metrics 开放JMX polling 选择性过滤掉在zookeeper中没有ids|owners|offsets|directories的消费者 CMAK管理工具支持的范围 支持 Kafka 0.8以上版本 Java 11+ zookeeper必须是3.5+版本。

kafka集群及监控部署

回眸只為那壹抹淺笑 提交于 2021-01-10 04:46:20
1. kafka的定义   kafka是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。 2. kafka 和其他主流分布式消息系统的对比 定义解释:   1. Java 和 scala都是运行在JVM上的语言。   2. erlang和最近比较火的和go语言一样是从代码级别就支持高并发的一种语言,所以RabbitMQ天生就有很高的并发性能,但是有RabbitMQ严格按照AMQP进行实现,受到了很多限制。kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议,他也是仿照AMQP( Advanced Message Queuing Protocol 高级消息队列协议)设计的。   3. 事务的概念:在数据库中,多个操作一起提交,要么操作全部成功,要么全部失败。举个例子, 在转账的时候付款和收款,就是一个事物的例子,你给一个人转账,你转成功,并且对方正常行收到款项后,这个操作才算成功,有一方失败,那么这个操作就是失败的。 对应消在息队列中,就是多条消息一起发送,要么全部成功,要么全部失败。3个中只有ActiveMQ支持,这个是因为,RabbitMQ和Kafka为了更高的性能,而放弃了对事物的支持 。   4. 集群

Kafka 面试真题及答案,建议收藏

谁都会走 提交于 2020-09-30 06:43:31
Kafka可以说是必知必会的了,首先面试大数据岗位的时候必问kafka,甚至现在java开发岗位也会问到kafka一些消息队列相关的知识点。先来看看有哪些最新的Kafka相关面试点: 一、基础摸底 1.1、你们Kafka集群的硬盘一共多大?有多少台机器?日志保存多久?用什么监控的? 1.2、Kafka分区数、副本数和topic数量多少比较合适? 1.3、Kafka中的HW、LEO、ISR、AR分别是什么意思? 1.4、Kafka中的消息有序吗?怎么实现的? 1.5、topic的分区数可以增加或减少吗?为什么? 1.6、你知道kafka是怎么维护offset的吗? 1.7、你们是怎么对Kafka进行压测的? 二、感觉还不错,接着深入考察 2.1、创建或者删除topic时,Kafka底层执行了哪些逻辑? 2.2、你了解Kafka的日志目录结构吗? 2.3、Kafka中需要用到选举吗?对应选举策略是什么? 2.4、追问,聊聊你对ISR的了解? 2.5、聊聊Kafka分区分配策略? 2.6、当Kafka消息数据出现了积压,应该怎么处理? 2.7、Kafka是怎么实现Exactly Once的? 2.8、追问、谈谈你对Kafka幂等性的理解? 2.9、你对Kafka事务了解多少? 2.10、Kafka怎么实现如此高的读写效率? 三、侃侃而谈 3.1、说说你常用的broker参数优化? 3.2

K8S(15)监控实战-ELK收集K8S内应用日志

佐手、 提交于 2020-08-16 09:58:13
K8S监控实战-ELK收集K8S内应用日志 目录 K8S监控实战-ELK收集K8S内应用日志 1 收集K8S日志方案 1.1 传统ELk模型缺点: 1.2 K8s容器日志收集模型 2 制作tomcat底包 2.1 准备tomcat底包 2.1.1 下载tomcat8 2.1.2 简单配置tomcat 2.2 准备docker镜像 2.2.1 创建dockerfile 2.2.2 准备dockerfile所需文件 2.2.3 构建docker 3 部署ElasticSearch 3.1 安装ElasticSearch 3.1.1 下载二进制包 3.1.2 配置elasticsearch.yml 3.2 优化其他设置 3.2.1 设置jvm参数 3.2.2 创建普通用户 3.2.3 调整文件描述符 3.2.4 调整内核参数 3.3 启动ES 3.3.1 启动es服务 3.3.1 调整ES日志模板 4 部署kafka和kafka-manager 4.1 但节点安装kafka 4.1.1 下载包 4.1.2 修改配置 4.1.3 启动kafka 4.2 获取kafka-manager的docker镜像 4.2.1 方法一 通过dockerfile获取 4.2.2 直接下载docker镜像 4.3 部署kafka-manager 4.3.1 准备dp清单 4.3.2 准备svc资源清单 4

树莓派4B使用docker安装kafka和kafka-manger

 ̄綄美尐妖づ 提交于 2020-08-04 12:02:50
本次实践将 zookeeper、kafka和 kafka-manager安装在同一台树莓派4B上,树莓派的IP设置为192.168.5.21,读者可以根据实际情况调整自己的运行容器参数。 硬件 :Raspberry Pi 4B(4g或8g版本) 系统 :Ubuntu 20.04 LTS Docker :18.09.9 zookeeper镜像 :pi4k8s/k8szk:v3.4.14 kafka镜像: iecedge/cp-kafka-arm64:5.0.1 kafka-manger镜像: pi4k8s/kafka-manger:1.3.3.23 注意 :因为我们树莓派4B本身并非x86,而是arm架构,且我们的系统装的是64位ubuntu,因此镜像只能选择arm64v8架构的镜像。这里我们选择的kafka镜像是iecedge/cp-kafka-arm64:5.0.1,对应的apache-kafka版本是2.0.x。zookeeper镜像和kafka-manager镜像都是参考x86版本的Dockerfile修改在树莓派上重新编译获取。 运行容器 启动zookeeper docker run -itd --name k8szk \ -p 2181:2181 \ -e ZK_REPLICAS=1 \ -e ZK_HEAP_SIZE=512M \ --hostname=zk-1 \

Kafka集群管理和监控方案之Kafka Manager

爱⌒轻易说出口 提交于 2020-05-08 04:04:32
https://blog.frognew.com/2019/07/kafka-manager.html 1.Kafka监控方案简介 前面我们已经在k8s上使用 incubator/kafka chart部署了Kafka。本篇来聊聊kafka的管理和监控。 关于kafka的监控方案有很多: Confluent Control Center 是Confluent Kafka提供的监控和管理方案,但Confluent Control Center只能在CP Kafka收费的企业版中使用。 Kafka Offset Monitor 是开源的监控方案,如果监控单个Kafka集群可以选择Kafka Offset Monitor,但从Kafka Offset Monitor的源码来看已经很久没有维护了 Prometheus + kafka-prometheus-jmx-exporter 的监控方案,这个也是 incubator/kafka 中支持的监控方案,默认使用helm部署kafka是没有开启,可通过 prometheus.kafka.enabled 开启,这里先不开启,准备在之后的内容中介绍 Prometheus + kafka-prometheus-jmx-exporter Kafka Manager 可以用来管理和监控多个Kafka集群,本篇将介绍Kafka Manager。 2

kafka和zookeeper安装部署(版本弄不好就是坑)

与世无争的帅哥 提交于 2020-05-02 12:04:36
yum install -y unzip zip 配置host vi /etc/host 172.19 . 68.10 zk1 1. zookeeper zookeeper下载地址 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz tar -zxvf apache-zookeeper-3.4.14.tar.gz mv apache-zookeeper-3.4.14 zookeeper cd /opt/zookeeper 拷贝zoo_sample.cfg文件重命名为zoo.cfg,然后修改dataDir属性 # 数据的存放目录 dataDir =/opt/ zkdata # 端口,默认就是2181 clientPort = 2181 server.1=zk1:2888:3888 配置环境变量 # Zookeeper Environment Variable export ZOOKEEPER_HOME =/opt/ zookeeper export PATH =$PATH:$ZOOKEEPER_HOME/bin 在/opt/zookeeper/data文件下创建myid vi myid 1 Zookeeper 启动停止命令 zkServer.sh start

Zabbix实战-简易教程--中间件kafka监控

牧云@^-^@ 提交于 2020-04-27 08:37:33
一、环境准备 1、安装kafka Step 1: 下载代码 你可以登录Apache kafka 官方下载。 http://kafka.apache.org/downloads.html 备注: 2.11-1.1.0 版本才与 JDK1.7 兼容,否则更高版本需要 JDK1.8 Step 2: 启动服务 运行kafka需要使用Zookeeper,所以你需要先启动Zookeeper,如果你没有Zookeeper,你可以使用kafka自带打包和配置好的Zookeeper(PS:在kafka包里)。 //这是前台启动,启动以后,当前就无法进行其他操作(不推荐) ./zookeeper-server-start.sh ../config/zookeeper.properties //后台启动(推荐) ./zookeeper-server-start.sh ../config/zookeeper.properties 1>/dev/null 2>&1 &    启动 kafka config/server1.properties: broker.id=0 listeners=PLAINTEXT://192.168.10.100:9092 log.dirs=kafka-logs zookeeper.connect=localhost:2181   //后台启动kafka ./kafka

30分钟了解如何使用Kafka

▼魔方 西西 提交于 2020-04-26 08:14:44
Kafka是当下对海量数据提供了最佳支持的MQ中间件,无论是高并发的处理,还是依托zookeeper的水平拓展都有不俗的特性。由于公司最近也在尝试如何将它应用到开发中以对业务更好的支撑,因此特地分享一些安装和使用的心得。 一、安装与启动 服务器环境采用CentOS 7 x64位系统。实际使用中Kafka依赖Zookeeper进行Broker管理,测试环境我们可以只使用Kafka自带的Zookeeper。 Kafka运行依赖JVM,首先需要安装Java java-1.8.0-openjdk-1.8.0 java-1.8.0-openjdk-devel 解压Kafka并将解压的文件放置到系统目录下 tar -zxvf kafka_2.12-2.1.0.tgz mv kafka_2.12-2.1.0 /usr/local/kafka 进入kafka下的config目录,打开zookeeper.properties文件,确定端口号(默认:2181) 打开server.properties文件修改以下配置 broker.id=1 #这个属性是kafka需要提交给zookeeper注册的Key num.partitions=3 #主题的默认分区数,可选修改,默认为1 listeners=PLAINTEXT:// < host > :9092 #配置当前主机ip,这个是broker的通信地址