Kafka中间件部署

一、术语解释

缩写及术语

解释

Kafka

Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,常见可以用于web/nginx日志、访问日志,消息服务等等,主要应用场景是:日志收集系统和消息系统。

broker

Kafka单个节点称为broker,一个Kafka服务就是一个broker,多个broker可以组成一个Kafka集群。

topic

 topic相当于传统消息系统MQ中的一个队列queue,producer端发送的message必须指定是发送到哪个topic上.在一个大型的应用系统中,
可以根据功能的不同,区分不同的topic。

partition

一个topic下面可以有多个partition,kafka在接收到message后,会将这个message进行load blance根据(hash(message)%[broker_num])均匀的将这个message分配在不同的partition上。partition的配置个数一般与kafka的集群数保持一致即可(即broker的数量)。

Partition replica

partition replica 是partition 的副本数据,是为了防止数据丢失的一种优化,partition 不会和 replica 在同一台broker上。Replica 的数量与partition数量保持一致即可做到高可用。

producer

生产message,发送到topic上。

consumer

订阅指定的topic,消费topic上面的message信息。

二、网络环境准备

服务

协议

开始端口

结束端口

备注

Kafka

TCP

9092

Kafka访问端口

三、硬件环境准备

类型

Ip

CPU

内存

硬盘

所需软件

Kafka1

<ip1>

16C

64G

200GB

Kafka

kafka2

<ip2>

16C

64G

200GB

Kafka

Kafka3

<ip2>

16C

64G

200GB

Kafka

 四、Kafka部署

1、部署方案

        1.下载安装包

cd /data/kafka

wget https://archive.apache.org/dist/kafka/2.8.0/kafka_2.12-2.8.0.tgz

tar -zxvf kafka_2.12-2.8.0.tgz

cd kafka_2.12-2.8.0

        2. 修改配置文件config/server.properties

broker.id=49 # 每个broker在集群中的唯一标识,正整数。当该服务器的ip地址发生变更,但broker.id未变,则不会影响consumers的消费情况
listeners=PLAINTEXT://kafkaIp:9092
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=/data/kafka/logs
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka1
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=0
auto.create.topics.enable=true
delete.topics.enable=true

        3. 启动

#启动
kafka/bin/kafka-server-start.sh  -daemon kafka/config/server.properties
#停止
kafka/bin/kafka-server-stop.sh

2、Kafka调优

  • kafka用于处理网络请求的线程数配置优化
num.network.threads=3
  • kafka用于处理网络请求的线程数优化
 num.io.threads=8
  • kafka连接zk的超时时间配置
zookeeper.connection.timeout.ms=6000
  • 日志保留策略配置,当kafka的被写入海量消息后,会生成很多数据文件,且占用大量磁盘空间,如果不及时清理,可能磁盘空间不够
log.retention.hours=168
  • 优化允许接收的最大数据包的大小(防止数据包过大导致OOM)
socket.request.max.bytes=104857600
  • 优化发送数据的缓冲区和接收数据的缓冲区
socket.request.max.bytes=104857600

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别影响我加班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值