Kafka 单机和伪分布式集群搭建

感觉自己越来越像个运维了,真的是所有的分布式的中间件基本都搭建了一遍   不得了了。

好 废话少说 , 还是来走Kafka 吧 , 经历了Rocket MQ , Kafka 的搭建真的是简单的不知道多少倍 , RocketMQ  实在 是太麻烦了。

还是老方案 , 先登录官网。

https://archive.apache.org/dist/kafka

可以根据官网的指示文档  进行下载。

单机搭建

Step 1: 下载代码

> 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

Step 2: 启动服务

1) 启动Zookeeper

因为kafa 是强依赖于ZooKeeper 的, 所以首先得启动Zookeeper

2)启动kafka

> bin/kafka-server-start.sh config/server.properties

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

可以看到在启动kafka  之后 , 就被建立了如下很多的节点。

Step 3: 创建Topic

创建一个主题是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的成功的创建。

Step 4: 发送消息

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

发送了两条消息到topic 是Test 的消息中。

 

Step 5: 开启客户端,接收消息。

> 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 .properties
更改如下内容  因为我的是伪集群  所以 都用 本地的地址来做host 那么
config/server-1.properties:
     broker.id=1
     listeners=PLAINTEXT://127.0.0.1:9093
     log.dirs=/tmp/kafka-logs-1
 
config/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.properties
root      18735  1.5 14.5 1452824 292820 pts/0  Sl   Dec25   0:21...
> kill  18735

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

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

猜你喜欢

转载自www.cnblogs.com/mythdoraemon/p/10171883.html