搭建Kafka集群

1. 启动Zookeeper服务器

 ./zookeeper-server-start.sh /opt/cx/kafka_2.11-0.9.0.1/config/zookeeper.properties

2. 修改broker-1,broker-2配置

broker.id=1
listeners=PLAINTEXT://:9093 
# The port the socket server listens on
port=9093
log.dirs=/opt/cx/kafka/kafka-logs-1
broker.id=2
listeners=PLAINTEXT://:9094
# The port the socket server listens on
port=9094
log.dirs=/opt/cx/kafka/kafka-logs-2

3. 启动broker-1,broker-2服务器

 ./kafka-server-start.sh /opt/cx/kafka/config/server-1.properties &
 ./kafka-server-start.sh /opt/cx/kafka/config/server-2.properties &

4. 查看broker集群

ps -ef|grep kafka

5. 创建并查看topic

 ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic
Created topic "my-replicated-topic".

查看topic

 ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic    PartitionCount:1    ReplicationFactor:2    Configs:
    Topic: my-replicated-topic    Partition: 0    Leader: 1    Replicas: 1,2  Isr: 1,2

从控制台可以看出,总共创建了一个主题(第一行是汇总行,下面列表显示的是详细信息)。

leader:从分区中读写消息的节点。每个节点成为leader都是随机的。

replicas:复制日志的节点,不管它是否是leader,也不管它是否还可用。

isr:同步状态的副本集。这个副本集包括活动者的以后可能成为leader的节点。

现在看一下在单节点创建的主题test(如果没有更好Zookeeper的话,之前创建的主题都存在)。我们发现根本没有副本(Replicas: 0),因为副本只有在集群服务器下才会创建。

 ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Topic:test    PartitionCount:1    ReplicationFactor:1    Configs:
    Topic: test    Partition: 0    Leader: 0    Replicas: 0    Isr: 0

6. 发送消息

 ./kafka-console-producer.sh --broker-list localhost:9093 --topic my-replicated-topic
My replicated message 1
My replicated message 2

7. 接收消息

./kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
My replicated message 1
My replicated message 2

8. 测试容错机制,结束server-1的进程,查看集群主题。可以看到Leader节点已经转移,而且server-1已经不在同步的复制集中。

[[email protected] bin]# ps -ef|grep server-1.properties
root      5777 14396  0 12:07 pts/5    00:00:00 grep server-1.properties
root     11351 10096  1 11:08 pts/3    00:01:01 java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true -Xloggc:/opt/cx/kafka_2.11-0.9.0.1/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=/opt/cx/kafka_2.11-0.9.0.1/bin/../logs -Dlog4j.configuration=file:./../config/log4j.properties -cp :/opt/cx/kafka_2.11-0.9.0.1/bin/../libs/* kafka.Kafka /opt/cx/kafka/config/server-1.properties
[[email protected] bin]# kill -9 11351
[[email protected] bin]# ./kafka-topics.sh  --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic    PartitionCount:1    ReplicationFactor:2    Configs:
    Topic: my-replicated-topic    Partition: 0    Leader: 2    Replicas: 1,2    Isr: 2

9. 重新运行消费者仍能接收消息,尽管这些消息是由leader-1写入的。

[[email protected] bin]# ./kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
My replicated message 1
My replicated message 2
时间: 2024-12-20 01:05:25

搭建Kafka集群的相关文章

centos7搭建kafka集群-第二篇

好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软件环境 (3台服务器) 10.0.20.131 10.0.20.132 10.0.20.133 1.Linux服务器一台.三台.五台.(2*n+1),Zookeeper集群的工作是超过半数才能对外提供服务,3台中超过两台超过半数,允许1台挂掉 ,是否可以用偶数,其实没必要. 如果有四台那么挂掉一台还

docker容器搭建kafka集群

Docker搭建kafka集群 ?  需求说明: 公司目前有三个环境,生产环境,测试和演示环境,再包括开发人员还有开发的环境,服务器上造成了一定的资源浪费,因为环境需要依赖zookeeper和kafka,redis这些服务,只要搭一个环境,所有东西都要重新搭一遍,所以搭建kafka集群,让大部分环境都连接一个集群,把单个的服务变成公共的,稳定并易于管理 ?  Kafka集群管理和状态保存是通过zookeeper来实现的,要先部署zk集群 ?  环境说明: centos系统安装docker,通过d

基于docker环境搭建kafka集群(三台真机之间)

环境基于docker,三台物理主机192.168.0.27.192.168.0.28.192.168.0.29,每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点,容器之间的网络采用host模式 1.拉取镜像 2.启动容器 step1. 创建配置文件zoo.cfg并替换容器内的该文件,不同的镜像有可能zoo.cfg位置不同 # The number of milliseconds of each tick tickTime=2000 #

docker容器中搭建kafka集群环境

Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务,所以服务器的数量应该是2*N+1,这里使用3台node进行搭建zookeeper集群. 1. 3台linux服务器都使用docker容器创建,ip地址分别为 NodeA:172.17.0.10 NodeB:172.17.0.11 NodeC:172.17.0.12 2. zookeeper的doc

centos7搭建kafka集群-第一篇

Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算.统计.分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2.Kafka的定义 What is Kafka:它是一个分布

五 搭建kafka集群

1 下载    wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz 2 tar  -zxvf  kafka_2.12-2.0.0.tgz -C  kafka 3  进入到config下: 修改zookeeper.properties, 配置三台servers. 4: 创建myid文件,进入/usr/local/kafka/zookeeper,创建myid文件,将三个服务器上的myid文件

Kafka【第一篇】Kafka集群搭建

Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是又上游模块产生,上游模块,使用上游模块的数据计算.统计.分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2.Kafka的定义 What is Kafka:它是一个分布

Kafka1 利用虚拟机搭建自己的Kafka集群

前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ===============================================================长长的分割线==================================================================== 正文: 关于Kafka

zookeeper集群环境搭建(使用kafka的zookeeper搭建zk集群)

---恢复内容开始--- 使用kafka的zookeeper来搞集群的话和单纯用zk的其实差不了多少. 0.说在前头,搭建kafka集群之前请把每个服务器的jdk搞起来. 1.安装kafka wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz 下载kafka然后放到你的目录下 解压 tar zxvf kafka_2.11-2.0.0.tgz 2.配置zk cd kafka_2.11-2.0.0/confi