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

Posted mythdoraemon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 。

技术分享图片

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

技术分享图片

 


以上是关于Kafka 单机和伪分布式集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Kafka: Linux环境-单机部署和伪集群集群部署

Hadoop中单机模式和伪分布式的区别是啥

Hadoop单机模式和伪分布式搭建教程CentOS

kafka2.8.0版本(一):搭建部署

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

Linux下kafka集群搭建过程记录