摘要:对消息保存时根据进行归类,发送消息者成为消息接受者成为此外集群有多个实例组成,每个实例成为。无论是集群,还是和都依赖于来保证系统可用性集群保存一些信息。
1 简介 1.1 简介
Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。
官网: http://kafka.apache.org/
中文网: https://www.orchome.com/5
在其中我们知道如果要kafka正常运行,必须配置zookeeper,否则无论是kafka集群还是客户端的生存者和消费者都无法正常的工作的,使用需要先安装zookeeper集群:
Zookeeper下载地址:http://zookeeper.apache.org/r...
1.2 参考资料http://kafka.apache.org/intro...
https://www.cnblogs.com/likeh...
192.168.90.225 : zookeeper + kafka
192.168.90.226 : zookeeper + kafka
192.168.90.227 : zookeeper + kafka
mkdir /usr/local/tmp #临时目录,用于上传压缩包 mkdir /topinfo # 安装目录3 zookeeper集群 3.1 部署环境
操作系统:CentOS7 +
三台服务器:192.168.90.225/226/227
安装包: zookeeper-3.4.14.tar.gz
前置条件: jdk1.8+
3.2 安装zookeeper 3.2.1 上传zookeeper安装包在其中一台服务器上,上传安装包:
cd /usr/local/tmp/ # 跳转到临时目录 rz #通过rz 上传zookeeper-3.4.14.tar.gz3.2.2 安装
1、解压
tar -zxvf zookeeper-3.4.14.tar.gz # 解压 mv zookeeper-3.4.14 zookeeper #重命名 mv zookeeper/ /topinfo/ # 将解压包拷贝到指定目录
2、进入zookeeper的目录
cd /topinfo/zookeeper/ #进入目录 ll # 列出目录的文件列表
如图:
3、修改配置文件
进入conf目录,复制zoo_sample.cfg,并重命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
4、打开并修改zoo.cfg
vi zoo.cfg
修改dataDir的存放目录, clientPort 默认保持不变,添加zookeeper的节点信息。
# dataDir 数据存放目录 dataDir= /topinfo/zookeeper/data # the port at which the clients will connect clientPort=2181 # zookeeper 集群的ip:lead和folw的通信端口:选举端口 # server.index 为服务的myid server.0=192.168.90.225:2888:3888 server.1=192.168.90.226:2888:3888 server.2=192.168.90.227:2888:3888
wq!退出保存后, 创建数据的保持目录
mkdir -p /topinfo/zookeeper/data
在目录中创建myid文件(内容为0)
touch /topinfo/zookeeper/data/myid echo 0 > /topinfo/zookeeper/data/myid
5、把 zookeeper文件夹复制到另外两个服务器上,并创建相同的dataDir目录和myid文件。
scp -r /topinfo/zookeeper root@192.168.90.226:/topinfo/ scp -r /topinfo/zookeeper root@192.168.90.227:/topinfo/
注意:192.168.90.226的 myid 文件内容为 1,192.168.90.227的 myid 文件内容为 2,需要与zoo.cfg中的保持一致。
# 192.168.90.226执行 mkdir -p /topinfo/zookeeper/data touch /topinfo/zookeeper/data/myid echo 1 > /topinfo/zookeeper/data/myid # 192.168.90.227执行 mkdir -p /topinfo/zookeeper/data touch /topinfo/zookeeper/data/myid echo 2 > /topinfo/zookeeper/data/myid
6、关闭防火墙
# 关闭防火墙 service iptables stop # 启动防火墙 service iptables start # 重启防火墙 service iptables restart # 查看防火墙状态 service iptables status3.2.3 设置环境变量
设置环境变量
# 打开profile vim /etc/profile
#加入以下内容 export ZK_HOME=/topinfo/zookeeper export PATH=$ZK_HOME/bin:$PATH
#保持退出后,执行以下命令,立即生效 source /etc/profile3.2.4 启动
进入bin目录,分别在三台机器上启动zookeeper:
zkServer.sh start
启动成功后:
ZooKeeper JMX enabled by default
Using config: /topinfo/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
在三台服务器上执行命令,查看启动状态:
zkServer.sh status
可以查看服务器的角色:leader / follower
如:
ZooKeeper JMX enabled by default
Using config: /topinfo/zookeeper/bin/../conf/zoo.cfg
Mode: follower
查看zookeeper的状态
4 kafka集群 4.1 部署环境操作系统:CentOS7 +
三台服务器:192.168.90.225/226/227
安装包: kafka_2.11-2.3.0.tgz
在其中一台服务器上,上传安装包:
cd /usr/local/tmp/ # 跳转到临时目录 rz #通过rz 上传
4.2.2 安装
1、解压
tar -zxvf kafka_2.11-2.3.0.tgz # 解压 mv kafka_2.11-2.3.0 kafka #重命名 mv kafka/ /topinfo/ # 将解压包拷贝到指定目录
2、修改server.properties
进入kafka的config目录
cd /topinfo/kafka/config
vi server.properties #修改配置
修改内容如下:
# broker的id broker.id=0 # 修改监听的地址, ip 为本机的ip listeners=PLAINTEXT://192.168.90.225:9092 # 修改日志目录 log.dirs=/topinfo/kafka/data/kafka-logs # 连接zookeeper集群 zookeeper.connect=192.168.90.225:2181,192.168.90.226:2181,192.168.90.227:2181 # 可删除topic delete.topic.enable=true
3、创建对应的日志目录
mkdir -p /topinfo/kafka/data/kafka-logs
4、将kafka文件夹复制到另外的两个节点上
scp -r /topinfo/kafka/ root@192.168.90.225:/topinfo/ # 远程复制 scp -r /topinfo/kafka/ root@192.168.90.226:/topinfo/ # 远程复制
mkdir -p /topinfo/kafka/data/kafka-logs # 另外两台上创建目录
5、创建相同的logDir目录,且修改每个节点对应的server.properties文件的broker.id:
192.168.90.225 为 1
192.168.90.227 为 2
vi /topinfo/kafka/config/server.properties #打开文件修改对应的broker.id4.2.3 设置环境变量
设置环境变量
# 打开profile vim /etc/profile
#加入以下内容 export KAFKA_HOME=/topinfo/kafka export PATH=$KAFKA_HOME/bin:$PATH
#保持退出后,执行以下命令,立即生效 source /etc/profile4.2.4 启动kafka
注:启动时:先启动 zookeeper,后启动 kafka;关闭时:先关闭 kafka,后关闭zookeeper
1、分别在每个节点上执行命令,启动zookeeper,如果已经启动或,则跳过
zkServer.sh start
2、启动kafka
kafka-server-start.sh /topinfo/kafka/config/server.properties &4.3 测试 4.3.1 创建topic
kafka-topics.sh --create --zookeeper 192.168.90.225:2181,192.168.90.226:2181,192.168.90.227:2181 --replication-factor 3 --partitions 3 --topic test4.3.2 显示topic信息
kafka-topics.sh --describe --zookeeper 192.168.90.225:2181,192.168.90.226:2181,192.168.90.227:2181 --topic test4.3.3 列出topic
kafka-topics.sh --list --zookeeper 192.168.90.225:2181,192.168.90.226:2181,192.168.90.227:21814.3.4 创建生产者
在master节点上 测试生产消息
kafka-console-producer.sh --broker-list 192.168.90.225:9092 -topic test4.3.5 创建消费者
在worker节点上 测试消费
kafka-console-consumer.sh --bootstrap-server 192.168.90.225:9092 -topic test --from-beginning4.3.6 删除topic和关闭服务
删除topic
kafka-topics.sh --delete --zookeeper 192.168.90.225:2181,192.168.90.226:2181,192.168.90.227:2181 --topic test
关闭kafka服务,在三台机器上执行kafka-server-stop.sh命令:
kafka-server-stop.sh
关闭zookeeper:
zkServer.sh stop
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/34009.html
摘要:另外,也是目前性能最好的消息中间件。架构在集群中,一个节点就是一个,消息由来承载,可以存储在个或多个中。发布消息的应用为消费消息的应用为,多个可以促成共同消费一个中的消息。 一、前言 1、Kafka简介 Kafka是一个开源的分布式消息引擎/消息中间件,同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息,同时并基于消息功能添加了Kafka Connect...
摘要:在机器上创建,并设置为与配置文件里面对应。它支持管理多个集群选择副本副本重新分配以及创建。进入页面网址添加添加集群成功后,点击进去,界面如下添加 环境 Zookeeper集群:172.16.218.201、172.16.218.202、172.16.218.203172.16.218.201 kafka1172.16.218.202 kafka2172.16.218.203 ka...
摘要:分区数查看列表查看详情可以描述分区数副本数副本副本等信息删除注意,只是删除在的元数据,日志数据仍需手动删除。查看消费组消费者这里有两个消费组的消费者查看消费详情可以查看到消费的订阅的,负责的,消费进度积压的消息。 下载kafka,自带 zookeeper。 搭建Zookeeper集群 zookeeper 集群使用 Raft 选举模式,故至少要三个节点(生产中应部署在三个不同的服务器实例...
摘要:截止目前,小红书使用的节点数在个,未来也有更大扩展空间。从基本功能数据同步部署管理运维二次开发及优化安全等多个维度解读小红书在数据库选型的考虑因素及思考。的适用场景,以及在小红书如何进行场景选择如何逐步进行上线规划。 作者介绍:张俊骏,小红书数据库与中间件团队负责人 小红书使用 TiDB 历史可以追溯到 2017 年甚至更早,那时在物流、仓库等对新技术比较感兴趣的场景下应用,在 201...
阅读 1327·2021-11-19 09:55
阅读 2587·2021-09-06 15:02
阅读 1239·2021-09-04 16:46
阅读 3265·2019-08-30 15:53
阅读 809·2019-08-29 16:36
阅读 1089·2019-08-29 16:29
阅读 2127·2019-08-29 15:21
阅读 500·2019-08-29 13:45