1.复制server.propertiesjava
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
bootstrap
如今编辑这些新文件并修改如下3个属性:测试
config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2spa
该broker.id属性是集群中每一个节点的惟一和永久名称。咱们必须覆盖端口和日志目录,只由于咱们在同一台机器上运行这些目录,咱们但愿让经纪人不要在同一个端口上注册或覆盖对方的数据。日志
咱们已经有Zookeeper,咱们的单节点启动,因此咱们只须要启动两个新节点:code
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &server
如今建立一个复制因子为三的新主题:ci
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topickafka
查看详情:同步
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
如下是输出的说明。第一行给出了全部分区的摘要,每一个附加行提供有关一个分区的信息。由于这个主题只有一个分区,只有一行。
让咱们发布一些消息到咱们的新主题:
1 2 3 4 五 |
|
如今咱们来看看这些消息:
1 2 3 4 五 |
|
如今咱们来测试容错。经纪人1做为领导者,因此让咱们杀了它:
1 2 3 |
|
领导已经切换到其中一个从站,节点1再也不处于同步副本集中:
1 2 3 |
|
不过消息仍然能够用于消费,即便最初采起写做的领导者也是如此:
1 2 3 4 五 |
|
至此,集群已搭建完成