kafka
待整理学习
环境搭建实操(后边写的也不错重点推荐,看不懂先看基础记得回头看)
可以抽空学习一下每个参数配置的意义,这样对于后期的调优会事半功倍
++++++++++++++++++++++++++++++++++++++++++
写的真不错
Java操作kafka
+++++++++++++++++++++++++++++++++++++++++
windows下搭建kafka集群
搭建参考博客
下载地址
ZK下载地址
测试效果图:
Linux下搭建kafka和zookeeper集群
第一步:准备kafka下载包和zookeeper下载包
见上文
第二步:搭建jdk环境
安装jdk1.8
yum install -y java-1.8.0-openjdk-devel.x86_64
默认jre jdk 安装路径是/usr/lib/jvm 下面
配置环境变量 vi /etc/profile
#加入配置
java配置:(注意此处要和安装的版本一致)
zookeeper配置:
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.2-bin export
PATH= P A T H : PATH: PATH:ZOOKEEPER_HOME/bin
kafka配置:
export KAFKA_HOME=/usr/local/kafka_2.12-2.6.0 export PATH= P A T H : PATH: PATH:KAFKA_HOME/bin
查看是否安装成功: java -version
第三步:关闭防火墙
windows无法访问虚拟机中的项目?
解决方法:关闭防火墙,然后重启虚拟机
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
参考博客
第四步:上传压缩包
注:xshell链接服务器rz sz命令无效?
解决方法:yum -y install lrzsz
进入到安装目录
cd /usr/local
#上传压缩包
rz
#然后选中下载的压缩包
#解压
tar zxvf apache-zookeeper-3.5.5-bin.tar.gz
开始配置集群服务:
#进入配置文件夹目录
cd apache-zookeeper-3.5.5-bin/conf/
#复制一份自带的配置文件,改名为zoo.cfg,启动默认使用这个配置文件
cp zoo_sample.cfg zoo.cfg
红框中都是新增或修改的地方,需要在dataDir所指向的位置修改为加压的zookeeper路径,在创建一个data文件夹,若不创建就以zookeeper文件夹为data;还有DataLogDir所指向的地方创建一个logs文件夹,这个文件夹不创建也可以,启动后会自动创建;
其中server.1、2、3所指的是集群所在的服务器地址,包括本机有3台,server.
后面的数字标识只要不重复就行,所对应的数字要在data中创建一个名叫myid的文件把数字写到里面(dataDir不创建的在zookeeper问价夹下创建myid文件)。本机的ip是192.168.50.132
所对应的是server.1,所以myid中需要输入1;
ip后面的2888是zk同步数据的端口号,3888是选举出leader的通信端口号,
在dataDir所指向的位置创建一个 myid的文件
#进入data文件夹创建myid文件,并编辑内容 cd data vi myid
#在文件中输入1然后保存退出
配置环境变量,否则无法直接用 zkServer.sh start 启动服务:
vi /etc/profile
让配置文件生效
source /etc/profile
第一台zk服务就配置好了,其他2台同理;
第二台机器就把myid改为2,机器端口就对应server.2=当前机器ip:2888:3888
第三台机器就把myid改为3,机器端口就对应server.3=当前机器ip:2888:3888
进入bin目录,分别启动三台机器
#启动命令 zkServer.sh start
第一个红框中的myid=1就是我们配的第一台机器data文件夹中的myid文件对应内容;
第二个红框是报错信息,原因是防火墙没有关闭,关闭防火墙
以上是zookeeper集群搭建
kafka集群搭建
kafka集群搭建
集群搭建,在解压压缩包之后,进入kafka解压出的文件夹下的config目录,编辑其下边的server.properties,其他无需求默认即可:
port=9092
host.name=本机ip
需要在kafka解压出的文件下执行,mkdir logs
log.dirs=/usr/local/kafka_2.12-2.6.0/logs
zookeeper.connect=192.168.30.138:2181,192.168.30.136:2181,192.168.30.139:2181
命令汇总:
启动kafka
./bin/kafka-server-start.sh -daemon config/server.properties &
需在kafka目录下操作,创建topic
./bin/kafka-topics.sh --create --zookeeper 10.10.67.102:2181, 10.10.67.104:2181, 10.10.67.106:2181 --replication-factor 3 --partitions 3 --topic test
列出topic列表
./bin/kafka-topics.sh --list --zookeeper localhost:2181
模拟客户端发送消息
./bin/kafka-console-producer.sh --broker-list 192.168.30.138:9092,192.168.30.136:9092, 192.168.30.139:9092 --topic test
模拟客户端接收消息(不同版本此命令可能不一样)
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.30.138:9092, 192.168.30.136:9092, 192.168.30.139:9092 --from-beginning --toc test
使用老版本的ProducerPerformance工具类
这里是引用
exec $(dirname 0 ) / k a f k a − r u n − c l a s s . s h k a f k a . t o o l s . P r o d u c e r P e r f o r m a n c e " 0)/kafka-run-class.sh kafka.tools.ProducerPerformance " 0)/kafka−run−class.shkafka.tools.ProducerPerformance"@"