感觉自己越来越像个运维了,真的是所有的分布式的中间件基本都搭建了一遍 不得了了。
好 废话少说 , 还是来走Kafka 吧 , 经历了Rocket MQ , Kafka 的搭建真的是简单的不知道多少倍 , RocketMQ 实在 是太麻烦了。
还是老方案 , 先登录官网。
https://archive.apache.org/dist/kafka
可以根据官网的指示文档 进行下载。
> wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
> tar -xzf kafka_2.11-2.1.0.tgz
> cd kafka_2.11-2.1.0
1) 启动Zookeeper
因为kafa 是强依赖于ZooKeeper 的, 所以首先得启动Zookeeper

2)启动kafka
> bin/kafka-server-start.sh config/server.properties

同时进入 Zookeeper 可以看到创建的节点

可以看到在启动kafka 之后 , 就被建立了如下很多的节点。
创建一个主题是Test 的Topic , zookeeper 是本地的 备份因子是1 ,partation 设置为1 的Topic (因为现在是单机版本的,不是集群)
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

主题Test 创建成功。
同时可以看Zookeeper 的下面, 也有topic的成功的创建。

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
发送了两条消息到topic 是Test 的消息中。

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

得到两条消息
Step 6: 查看节点信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

同样的 也可以通过Zookeeper 来进行查看

Step 1 : 修改配置文件
首先 我们先拷贝一份配置文件
> cp config/server.properties config/server-1.properties> cp config/server.properties config/server-2.propertiesconfig/server-1.properties: broker.id=1 listeners=PLAINTEXT://127.0.0.1:9093 log.dirs=/tmp/kafka-logs-1config/server-2.properties: broker.id=2 listeners=PLAINTEXT://127.0.0.1:9094 log.dirs=/tmp/kafka-logs-2 broker.id 是唯一标识符,而且是每一个集群的唯一值。然后我们重写Port 对每一个节点 , 以及给每一个节点创建log 目录
Step 2 : 启动 另外两个服务
> bin/kafka-server-start.sh config/server-1.properties &...> bin/kafka-server-start.sh config/server-2.properties &...
可以看到现在有3个Kafka。
Step 3 :Create Topic
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
现在在Zookeeper 中可以看到 Topic my-replicated-topic

观察状态:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

可以看到此时有三个节点 1 , 2 , 0
Leader 是1 ,因为分区只有一个 所以在0上面, Replicas:主从备份是 1,2,0,ISR(in-sync):现在存活的信息也是 1,2,0
Step 4: 启动消费端
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

Step 5: 启动客户端
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

可以看见消息已经被消费了。
Step 7 : 现在我们试试下kafka 的容灾 。
现在我们知道leader 是 1 那么我们现在kill 掉broker 1 节点 就知道下一个master 是哪个 了
> ps aux | grep server-1.propertiesroot 18735 1.5 14.5 1452824 292820 pts/0 Sl Dec25 0:21...> kill 18735

再来观察现在的状态。ISR 只剩下 2,0 了。 现在的Leader 是 2 。

在消费端 可以看到如下信息

原文:https://www.cnblogs.com/mythdoraemon/p/10171883.html