架构一、zookeeper、Kafka集群部署及失败方法

理论
Kafka重要概念:
Topic:话题、或者消息主题,是逻辑上的概念
Partition:分区,用于存放topic的数据
Partition offset:分区上消息的偏移量
Replicas of patition:分区的副本数量(大于等于   节点数量)
Brokers:指的是Kafka集群,一个Kafka节点称为一个broker
Producer:消息的生产者,其实就是服务
Consumer:消息的消费者
Leader: leader是负责所有分区的读写的节点,每个分区都有一台服务器充当leader
Follower:追随者,当leader不行的时候,成为新的leader
副本的数量≥1,小于等于节点数   节点是存储某一个话题,或多个话题
实例和节点相同:一个Kafka节点和一个Kafka实例   指的就是一台服务器
节点一:A B1 C1
节点二:B A1 C1
节点三:C A1 B1
  理解的要点:
   一个broker上可以创建多个topic,同一个topic也可以在集群的
   Kafka集群会保留所有消息的发布记录,不管有没有被消费过,默认情况下,Kafka会把消息保留两天,两天内可以用于消费,之后将被丢弃以腾出空间
   Consuman会保存元数据,这个元数据包括它消费的消息在哪个partition,偏移量是多少
   Kafka不允许partition的副本数量多于集群节点数量
   Consuman以消费者群的名称来标识自己,每个发布到topic的消息都会发送给订阅这个topic的消费群的一个消费者实例
   Kafka只能保证一个partition中的消息是有序的,不能保证消息在多个partition中的分布是有序的
Zookeeper作用:传消息走zookeeper,收消息、发消息走Kafka,Kafka依赖于zookeeper来实现offset
如果启动zookeeper失败
[root@localhost ~]# ll /usr/local/zookeeper/data/              第一种方式
总用量 8
-rw-r--r--. 1 root root  2 8月  24 15:53 myid
drwxr-xr-x. 2 root root 68 8月  24 16:09 version-2
-rw-r--r--. 1 root root  5 8月  24 15:55 zookeeper_server.pid
[root@localhost ~]# rm -rf /usr/local/zookeeper/data/zookeeper_server.pid 
[root@localhost ~]# rm -rf /usr/local/zookeeper/data/version-2         

     
[root@localhost ~]# netstat -anput | grep 2181                 第二种方式
tcp6       0      0 :::2181                 :::*                    LISTEN      70041/java       
[root@localhost ~]# kill -9 70041      

如果启动Kafka失败
[root@localhost ~]# echo 192.168.1.11:server.1 >> /etc/hosts       每个节点都添加server.1、server.2、server.3
安装zookeeper以及Kafka
[root@localhost ~]# tar -xzf zookeeper-3.4.12.tar.gz 
[root@localhost ~]# tar -zxf kafka_2.12-2.1.0.tgz 
[root@localhost ~]# mv zookeeper-3.4.12 /usr/local/zookeeper
[root@localhost ~]# mv kafka_2.12-2.1.0 /usr/local/kafka
[root@localhost ~]# cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg 
[root@localhost ~]# vim /usr/local/zookeeper/conf/zoo.cfg 
 12 dataDir=/usr/local/zookeeper/data
 13 dataLogDir=/usr/local/zookeeper/data
 16 server.1=192.168.1.11:2888:3888
 17 server.2=192.168.1.12:2888:3888
 18 server.3=192.168.1.13:2888:3888

[root@localhost ~]# scp /usr/local/zookeeper/conf/zoo.cfg 192.168.1.12:/usr/local/zookeeper/conf/
root@192.168.1.12's password: 
zoo.cfg                                                   100% 1066   828.2KB/s   00:00    
[root@localhost ~]# scp /usr/local/zookeeper/conf/zoo.cfg 192.168.1.13:/usr/local/zookeeper/conf/
root@192.168.1.13's password: 
zoo.cfg                                                   100% 1066   891.5KB/s   00:00    
[root@localhost ~]# mkdir /usr/local/zookeeper/data
[root@localhost ~]# echo 1 > /usr/local/zookeeper/data/myid                 其余节点依次排列1、2、3、4、5、、、
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# /usr/local/zookeeper/bin/zkServer.sh start              启动zookeeper
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost ~]# /usr/local/zookeeper/bin/zkServer.sh status             查看状态
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower               Mode: leader            Mode: follower         节点中必有一个leader
[root@localhost ~]# vim /usr/local/kafka/config/server.properties 
 21 broker.id=1                                                             第几台节点写几
 31 listeners=PLAINTEXT://192.168.1.11:9092                                 监听本机9092端口
 65 num.partitions=3                                                        几个节点写几
123 zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181  写入集群IP
[root@localhost ~]# /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties 
[root@localhost ~]# netstat -anput | grep 9092
tcp6       0      0 192.168.1.11:9092       :::*                    LISTEN      70599/java          
kafka测试
[root@localhost ~]# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.11:2181 --replication-factor=2 --partitions=3 --topic test         
Created topic "test".                                              创建一个话题 test
[root@localhost ~]# /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.11:9092 --topic test
>hello world!
>                                                                   第一个节点
[root@localhost ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.12:9092 --topic test --from-beginning
hello world!                                                        第二个节点
[root@localhost ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.13:9092 --topic test --from-beginning 
hello world!                                                        第三个节点
[root@localhost conf]# firewall-cmd --add-port=2181/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --add-port=2888/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --add-port=3888/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --add-port=9092/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --reload 
Success
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值