感觉自己越来越像个运维了,真的是所有的分布式的中间件基本都搭建了一遍 不得了了。
好 废话少说 , 还是来走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 。
在消费端 可以看到如下信息
原文地址:https://www.cnblogs.com/mythdoraemon/p/10171883.html