实战Kafka的部署

目录

一、环境准备

二、安装配置jdk8

(1)Kafka、Zookeeper(简称:ZK)运行依赖jdk8

三、安装配置ZK

(1)安装

(2)配置

四、配置Kafka

(1)配置

五、启动、验证ZK集群

(1)启动

(2)验证

六、启动、验证Kafka

(1)启动

(2)验证

7、监控 Kafka Manager


一、环境准备

  • 服务器

安装软件主机名IP地址系统版本配置
zookeeper/kafkaKafka110.12.153.200centos7.5.18041核2G
zookeeper/kafkaKafka210.12.153.201centos7.5.18041核2G
zookeeper/kafkaKafka310.12.153.202centos7.5.18041核2G
  • 软件版本:jdk-8u121-linux-x64.tar.gz、 kafka_2.11-2.0.0.tgz

  • 示例节点:10.12.153.200

  • 配置域名解析

  • 关闭防火墙selinux

二、安装配置jdk8

(1)Kafka、Zookeeper(简称:ZK)运行依赖jdk8

上传并解压jdk8的包至/usr/local/目录下

tar zxvf /usr/local/package/jdk-8u121-linux-x64.tar.gz -C /usr/local/

改名为jdk8

mv  jdk1.8.0_211  jdk8

配置环境变量

vim /etc/profile
最后面加入以下内容
export RATH=/usr/local/jkd8/bin:$PATH
保存退出后重新加载
source /etc/profile

三、安装配置ZK

Kafka运行依赖ZK,Kafka官网提供的tar包中,已经包含了ZK,这里不再额下载ZK程序。

官网地址Apache Kafka

(1)安装
tar zxvf /usr/local/package/kafka_2.11-2.0.0.tgz -C /usr/local/
(2)配置
vim /usr/local/kafka_2.11-2.0.0/config/zookeeper.properties
#删除全部内容粘贴以下内容
dataDir=/opt/data/zookeeper/data 
dataLogDir=/opt/data/zookeeper/logs
clientPort=2181 
tickTime=2000 
initLimit=20 
syncLimit=10 
server.1=10.12.153.200:2888:3888             //kafka集群IP:Port .1为id 3处要对应
server.2=10.12.153.201:2888:3888
server.3=10.12.153.202:2888:3888

配置项含义:

dataDir ZK数据存放目录。
dataLogDir  ZK日志存放目录。
clientPort  客户端连接ZK服务的端口。
tickTime        ZK服务器之间或客户端与服务器之间维持心跳的时间间隔。
initLimit       允许follower(相对于Leaderer言的“客户端”)连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
syncLimit   Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
server.1=172.16.244.31:2888:3888    2888是follower与leader交换信息的端口,3888是当leader挂了时用来执行选举时服务器相互通信的端口。

创建data、log目录

mkdir -p /opt/data/zookeeper/{data,logs}

 创建myid文件

​​​​​​​kafka1服务器

echo 1 > /opt/data/zookeeper/data/myid

kafka2服务器

echo 2 > /opt/data/zookeeper/data/myid

kafka3服务器

echo 3> /opt/data/zookeeper/data/myid

四、配置Kafka

(1)配置
vim /usr/local/kafka_2.11-2.0.0/config/server.properties
#覆盖为以下内容,注意broker.id号三台机器不能为一样的,必须对应上面的myid
broker.id=1
listeners=PLAINTEXT://10.12.153.200:9092  #本机ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/data/kafka/logs
num.partitions=6
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=10.12.153.200:2181,10.12.153.201:2181,10.12.153.202:2181  #kafka集群ip地址
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

配置项含义:

broker.id   每个server需要单独配置broker id,如果不配置系统会自动配置。
listeners       监听地址,格式PLAINTEXT://IP:端口。
num.network.threads 接收和发送网络信息的线程数。
num.io.threads          服务器用于处理请求的线程数,其中可能包括磁盘I/O。
socket.send.buffer.bytes    套接字服务器使用的发送缓冲区(SO_SNDBUF)
socket.receive.buffer.bytes 套接字服务器使用的接收缓冲区(SO_RCVBUF)
socket.request.max.bytes        套接字服务器将接受的请求的最大大小(防止OOM)
log.dirs        日志文件目录。
num.partitions  partition数量。
num.recovery.threads.per.data.dir       在启动时恢复日志、关闭时刷盘日志每个数据目录的线程的数量,默认1。
offsets.topic.replication.factor        偏移量话题的复制因子(设置更高保证可用),为了保证有效的复制,偏移话题的复制因子是可配置的,在偏移话题的第一次请求的时候可用的broker的数量至少为复制因子的大小,否则要么话题创建失败,要么复制因子取可用broker的数量和配置复制因子的最小值。
log.retention.hours 日志文件删除之前保留的时间(单位小时),默认168
log.segment.bytes   单个日志文件的大小,默认1073741824
log.retention.check.interval.ms 检查日志段以查看是否可以根据保留策略删除它们的时间间隔。
zookeeper.connect   ZK主机地址,如果zookeeper是集群则以逗号隔开。
zookeeper.connection.timeout.ms     连接到Zookeeper的超时时间。

创建log目录

mkdir -p /opt/data/kafka/logs

五、启动、验证ZK集群

(1)启动

在三个节点依次执行:

cd /usr/local/kafka_2.11-2.0.0/
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
(2)验证

查看ZK配置

下载nmap

yum install nmap

echo conf | nc 127.0.0.1 2181
显示如下为成功
clientPort=2181
dataDir=/opt/data/zookeeper/data/version-2
dataLogDir=/opt/data/zookeeper/logs/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=1
initLimit=20
syncLimit=10
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0

查看ZK状态

 echo stat |nc 127.0.0.1 2181

 

显示以下内容为成功
Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 00:39 GMT
Clients:
 /127.0.0.1:51876[0](queued=0,recved=1,sent=0)
​
Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4

查看端口

lsof -i:2181
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    15002 root   98u  IPv4  43385      0t0  TCP *:eforward (LISTEN)

六、启动、验证Kafka

(1)启动

在三个节点依次执行:

cd /usr/local/kafka_2.11-2.0.0/
​​​​​​​
nohup bin/kafka-server-start.sh config/server.properties &
(2)验证

在10.12.153.200上创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopic

Created topic "testtopic".

查询10.12.153.200上的topic

bin/kafka-topics.sh --zookeeper 10.12.153.200:2181 --list 
              
testtopic

查询10.12.153.201上的topic

bin/kafka-topics.sh --zookeeper 10.3.145.42:2181 --list 
​​​​​​​
testtopic

查询10.12.153.202上的topic

bin/kafka-topics.sh --zookeeper 10.3.145.43:2181 --list 
​​​​​​​
testtopic

模拟消息生产和消费 发送消息到10.12.153.200

bin/kafka-console-producer.sh --broker-list 10.3.145.41:9092 --topic testtopic 
​​​​​​​ 
>Hello World!

从10.12.153.201接受消息

bin/kafka-console-consumer.sh --bootstrap-server  10.3.145.41:9092 --topic testtopic --from-beginning 
​​​​​​​
Hello World!
扩展
7、监控 Kafka Manager

Kafka-manager 是 Yahoo 公司开源的集群管理工具。

可以在 Github 上下载安装:GitHub - yahoo/CMAK: CMAK is a tool for managing Apache Kafka clusters

亿级 ELK 日志平台构建实践

如果遇到 Kafka 消费不及时的话,可以通过到具体 cluster 页面上,增加 partition。Kafka 通过 partition 分区来提高并发消费速度

亿级 ELK 日志平台构建实践

希望能够帮助到大家!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/416681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合rabbitmq-扇形交换机队列(三)

说明:本文章主要是Fanout 扇形交换机的使用,它路由键的概念,绑定了页无用,这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列。 大白话:广播模式,交换机会把消息发给绑定它的所有队…

day06_菜单管理(查询菜单,添加菜单,添加子菜单,修改菜单,删除菜单,角色分配菜单,查询菜单,保存菜单,动态菜单)

文章目录 1 菜单管理1.1 表结构介绍1.2 查询菜单1.2.1 需求说明1.2.2 页面制作1.2.3 后端接口SysMenuSysMenuControllerSysMenuServiceMenuHelperSysMenuMapperSysMenuMapper.xml 1.2.4 前端对接sysMenu.jssysMenu.vue 1.3 添加菜单1.3.1 需求说明1.3.3 页面制作1.3.3 后端接口…

类加载的过程以及双亲委派模型

类加载,指的是java进程运行的时候,需要把.class文件从硬盘,读取到内存,并进行一系列的校验解析的过程。(.class文件 > 类对象,硬盘 > 内存) 类加载的过程,类加载的过程其实是在…

探索Sora:AI视频模型的创新与未来展望

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您些帮助请👉关…

Python进阶学习:Pandas--查看DataFrame中每一列的数据类型

Python进阶学习:Pandas–查看DataFrame中每一列的数据类型 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希…

数据库子父结构表,树状结构数据进行递归查询

表结构: 三个字段如图所示,目标是获取每条数据的根id(父id为0的数据根id就是自己的id,否则一直根据父id去查找一直找到父id为0的数据,此数据的id就是根id) 业务中实际的解决办法: 新加一个字段进行存储&…

Python + Google AI 自动修复 Sonar Bug 实践

前言 在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种…

如何在Linux使用Docker部署Nexus容器并实现公网访问本地仓库【内网穿透】

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可…

【airtest】自动化入门教程(一)AirtestIDE

目录 一、下载与安装 1、下载 2、安装 3、打开软件 二、web自动化配置 1、配置chrome浏览器 2、窗口勾选selenium window 三、新建项目(web) 1、新建一个Airtest项目 2、初始化代码 3、打开一个网页 四、恢复默认布局 五、新建项目&#xf…

流程图怎么画?只需这几步就可以搞定!

你在工作中有没有遇到过下面这些问题: 思维混乱,想快速厘清一个项目的逻辑; 想让客户轻松接受自己的设计构思/产品理念等; 产品流程总是百密一疏,经常遗漏了某种用户需求; 想让小伙伴们快速理解一件事&…

软件项目验收测试报告-软件项目验收流程

对甲方而言,项目验收是正式接受项目成果,将项目从建设转为运营。对于乙方来说,则意味着项目的结束,项目资源的释放。 项目验收是项目收尾的重要环节,依据招投标文件、合同对测评相关要求内容、项目章程和项目过程中的…

LATEX中将表格序号和标题放置在两列/一列【已解决】

目录 LATEX中将表格序号和标题放置在两列 LATEX中将表格序号和标题放置在一列 LATEX中将表格序号和标题放置在两列 每个期刊对于表格的要求不一样,发现期刊要求表格的序号列和标题列是两行且标题大写,如下图所示 而我的表格是这样 解决方法: …

使用Haproxy搭建Web群集

1、Haproxy概述。 Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功…

AI未来10年展望

人工智能(AI)在过去十年中迅速发展,其未来有望取得更加引人注目的发展。 在本文中,我们将探讨人工智能的未来 10 年以及我们对未来十年的期望。 我们将解决一些关键问题,以全面概述人工智能的未来。 1、10年后AI会发展…

前端配置开发环境,新电脑配置前端开发环境,Vue开发环境配置的详细过程(前端开发环境配置,电脑重置后配置前端开发环境)

简介:有时候,我们需要在新电脑 或者 电脑重置后,配置前端开发环境,具体都需要安装什么软件和插件,这里来记录一下(文章适合新手和小白,大佬可以带过)。 ✨前端开发环境,需…

前端架构: 脚手架之包管理工具的案例对比及workspaces特性的使用与发布过程

npm的workspaces 特性 1 )使用或不使用包管理工具的对比 vue-cli 这个脚手架使用 Lerna 管理,它的项目显得非常清晰在 vue-cli 中包含很多 package 点开进去,每一个包都有package.json它里面有很多项目,再没有 Lerna 之前去维护和…

重生奇迹MU攻略教学

1:前提是人物等级到80级,没有80级不能使用。 2:杀怪范围,大家不用改,就8吧,但是有时候也会跑很远。 3:技能近战使用,我作为战士,点了和不点没区别。 4:然后…

【国产MCU】-CH32V307-定时器同步模式

定时器同步模式 文章目录 定时器同步模式1、定时器同步模式介绍2、驱动API介绍3、定时器同步模式实例1、定时器同步模式介绍 CH32V307的定时器能够输出时钟脉冲(TRGO),也能接收其他定时器的输入(ITRx)。不同的定时器的ITRx的来源(别的定时器的TRGO)是不一样的。 通用定…

Midjourney是个什么软件?midjourney订阅教程

数字时代,AI的应用正在不断推动各个领域的发展。其中,AI在艺术和设计领域的运用引起了广泛的关注。作为一款爆火的AI绘画软件,Midjourney通过其独特的原理和便捷的使用方法,为创作者提供了一个创作逼真绘画作品的全新平台 1、AI绘…

【c语言】探索结构体---解锁更多选择

前言 结构体属于自定义类型的一种,这增加了我们写代码的选择,跟着我的脚步一起来探索结构体吧~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 认识结构体 结构是⼀些值的集合,这些值…