kafka搭建、学习(三)

kafka集群设置

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

如下是输出的说明。第一行给出了全部分区的摘要,每一个附加行提供有关一个分区的信息。由于这个主题只有一个分区,只有一行。

  • “leader”是负责给定分区的全部读取和写入的节点。每一个节点将成为随机选择的分区部分的引导者。
  • “replicas”是复制此分区的日志的节点列表,不管它们是领先者仍是如今都是活着的。
  • “isr”是一组“同步”副本。这是副本列表的子集,它目前是生存和追赶领导者的。

让咱们发布一些消息到咱们的新主题:

1

2

3

4

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

...

my test message 1

my test message 2

^C

如今咱们来看看这些消息:

1

2

3

4

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

...

my test message 1

my test message 2

^C

如今咱们来测试容错。经纪人1做为领导者,因此让咱们杀了它:

1

2

3

> ps aux | grep server-1.properties

7564 ttys002    0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.8/Home/bin/java...

> kill -9 7564

领导已经切换到其中一个从站,节点1再也不处于同步副本集中:

1

2

3

> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:

    Topic: my-replicated-topic  Partition: 0    Leader: 2   Replicas: 1,2,0 Isr: 2,0

不过消息仍然能够用于消费,即便最初采起写做的领导者也是如此:

1

2

3

4

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

...

my test message 1

my test message 2

^C

 

至此,集群已搭建完成

相关文章
相关标签/搜索