Kafka单服务器配置伪集群

一 简介

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,其主要特性如下:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性。
  • 高吞吐量:即使是非常普通的硬件,Kafka也可以支持每秒数百万的消息。
  • 支持通过Kafka服务器和消费机集群来分区消息。
  • 支持Hadoop并行数据加载。

Kafka主要术语

  • broker:Kafka集群中包含的服务器。
  • topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)。
  • partition:partition是物理上的概念,每个 topic 包含一个或多个 partition。
  • replica:partition 的副本,保障 partition 的高可用。
  • leader:replica 中的一个角色, producer 和 consumer 只跟 leader 交互。
  • follower:replica 中的一个角色,从 leader 中复制数据。
  • producer:消息生产者,发布消息到 Kafka集群的终端或服务。
  • consumer:消息消费者,从Kafka集群中消费消息的终端或服务。
  • consumer group:high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被consumer group 中的一个 consumer 消费,但可以被多个 consumer group 消费。

二 ZooKeeper单服务器配置伪集群

三 Kafka伪集群安装

Kafka下载地址:http://apache.01link.hk/kafka/2.1.1/(版本你随意)

(1)解压:

1

2

3

[root@localhost bin]# cd /usr/local/src

[root@localhost src]# tar -zxvf kafka_2.11-1.0.0.tgz

[root@localhost src]# mv kafka_2.11-1.0.0 /usr/local/

 

(2)修改配置文件:

1

[root@localhost src]# cd /usr/local/kafka_2.11-1.0.0

i)创建伪集群的三个Kafka节点:

1

2

3

[root@localhost kafka_2.11-1.0.0]# mkdir server1 server2 server3

 

[root@localhost kafka_2.11-1.0.0]# mkdir server1/logs server2/logs server3/logs

ii)分别修改server.properties配置文件:

1

[root@localhost kafka_2.11-1.0.0]# cp config/server.properties server1/

分别修改以下内容:

broker.id=0
listeners=PLAINTEXT://192.168.1.159:9092
log.dirs=/usr/local/kafka_2.11-1.0.0/server1/logs
zookeeper.connect=192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102

注:这里的“192.168.1.159”为当前服务器IP,后面的9092端口表示此Kafka节点的访问端口。另外,后面的2100、2101、2102端口表示ZooKeeper集群的访问端口

1

[root@localhost kafka_2.11-1.0.0]# cp config/server.properties server2/

分别修改以下内容:

broker.id=1
listeners=PLAINTEXT://192.168.1.159:9093
log.dirs=/usr/local/kafka_2.11-1.0.0/server2/logs
zookeeper.connect=192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102

1

[root@localhost kafka_2.11-1.0.0]# cp config/server.properties server3/

分别修改以下内容:

broker.id=2
listeners=PLAINTEXT://192.168.1.159:9094
log.dirs=/usr/local/kafka_2.11-1.0.0/server3/logs
zookeeper.connect=192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102

(3)启动:

1

2

3

4

5

[root@localhost kafka_2.11-1.0.0]# cd /usr/local/kafka_2.11-1.0.0

 

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./server1/server.properties

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./server2/server.properties

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./server3/server.properties

注:如何关闭启动起来的Kafka节点?

直接杀掉其进程即可,比如:

1

2

[root@localhost bin]# ps -ef | grep kafka

[root@localhost bin]# kill -9 kafka进程号

(4)测试:

i)创建一个名为”topic-test”的topic,该topic切分为3份,每一份备份数为3:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-topics.sh --create --zookeeper 192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102  --replication-factor 3 --partitions 3 --topic topic-test

注:为topic创建分区时,–partitions(分区数)最好是broker数量的整数倍,这样才能使一个topic的分区均匀的分布在整个Kafka集群中。

ii)列出所有已创建的topic:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-topics.sh --list --zookeeper 192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102

iii)查看指定topic详情信息:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102 --topic topic-test

iv)修改topic参数,增加partition:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-topics.sh --alter --zookeeper 192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102 --topic topic-test --partitions 6

注:对于已经存在的topic,只能增加partition数量,而不能减少其数量

v)删除topic:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-topics.sh --delete --zookeeper 192.168.1.159:2100,192.168.1.159:2101,192.168.1.159:2102 --topic topic-test

vi)模拟生产者发送消息:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-console-producer.sh --broker-list 192.168.1.159:9092,192.168.1.159:9093,192.168.1.159:9094 --topic topic-test

vii)模拟消费者接收消息:

[root@localhost kafka_2.11-1.0.0]# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.159:9092,192.168.1.159:9093,192.168.1.159:9094 --topic topic-test --from-beginning

可以看到已经成功接收到前面的消息了,至此Kafka伪集群就全部安装结束了

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Kafka服务器配置取决于多个因素,包括预期的负载、数据吞吐量、容错性需求以及可用的硬件资源。以下是一些常见的 Kafka 服务器配置建议: 1. 硬件资源:Kafka 集群通常由多个服务器组成,建议选择具有良好的 CPU、内存和磁盘性能的机器。具体要求取决于预期的消息吞吐量和处理能力。可以考虑使用多个独立的机器来构建 Kafka 集群,以提供高可用性和容错性。 2. 内存:Kafka 使用内存来缓存消息和保持活跃的连接状态。建议为 Kafka 服务器分配足够的内存,以便能够容纳活跃的连接、缓存消息和执行其他操作。通常建议至少分配几个 GB 的内存。 3. 磁盘:Kafka 使用磁盘来持久化消息和日志。建议选择高速、可靠的磁盘,以提供高吞吐量和低延迟的数据写入和读取。此外,确保磁盘有足够的空间来存储消息和日志。 4. 网络带宽:Kafka 集群中的各个节点之间需要进行频繁的网络通信。确保网络带宽足够,以支持预期的消息流量和数据传输。 5. 分区和副本:根据预期的负载和容错需求,合理配置分区和副本数量。分区数的选择应考虑到并发处理能力和负载均衡。 6. 配置参数:Kafka 具有多个配置参数,可以根据实际需求进行调整。例如,可以调整日志保留策略、消息压缩设置、消费者和生产者的缓冲区大小等。 这些是一些常见的 Kafka 服务器配置建议,具体的配置取决于您的业务需求和环境。建议在部署 Kafka 之前参考官方文档和最佳实践指南,以获取更详细和具体的配置建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值