云服务器安装kafka及python连接测试

云服务器环境:CentOS 7.6

环境准备(版本见解压命令):

  • java环境jdk
  • zookeeper
  • Kafka

传送门:kafka安装包,包括jdk,zookeeper和kafka

jdk环境安装

将下载的包上传到服务器/opt/software,解压

tar -zxvf jdk-8u311-linux-x64.tar.gz
tar  -xzvf kafka_2.12-2.3.1.tgz
tar -zxvf apache-zookeeper-3.5.6.tar.gz

重命名,将三个文件夹移动到/usr/local目录下并重新命名

mv kafka_2.12-2.3.1 ./kafka
mv apache-zookeeper-3.5.6 ./zookeeper

cp -r jdk1.8.0_311/ /usr/local/
cp -r  zookeeper/ /usr/local/
cp -r  kafka  /usr/local/

打开文件环境变量的文件并配置

vim /etc/profile

jdk和zookeeper配置如下

export JAVA_HOME=/usr/local/jdk1.8.0_311
export JRE_HOME=${JAVA_HOME}/jre
export ZOOKEEPER_HOME=/usr/local/zookeeper
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${ZOOKEEPER_HOME}/bin:
export PATH=$PATH:${JAVA_PATH}

使配置文件生效:

source /etc/profile

查看是否安装成功,成功如下图所示

java -version

在这里插入图片描述

zookeeper环境配置

cd /usr/local/zookeeper/conf/

cp ./zoo_sample.cfg zoo.cfg

打开zoo.cfg配置文件

vim zoo.cfg

修改dataDir和dataLogDir配置

dataDir=/usr/local/zookeeper/dataDir
dataLogDir=/usr/local/zookeeper/dataLogDir

在/usr/local/zookeeper/bin/下面启动zookeeper

./zkServer.sh start

./zkServer.sh status

成功如下图所示:
在这里插入图片描述

kafka安装:

在/usr/local/kafka/config下修改server.properties配置,单机只需要配置logs目录

# 用于本地代码测试线上的kafka的配置
listeners=PLAINTEXT://内网ip:9092
advertised.listeners=PLAINTEXT://外网ip:9092

# 单机只需配置,省略新建logs文件夹目录
log.dirs=/usr/local/kafka/logs

在/usr/local/kafka/bin目录下启动kafka

cd  /usr/local/kafka/bin

启动kafka:

./kafka-server-start.sh -daemon ../config/server.properties

查看进程状态:

jps

在这里插入图片描述
创建topic:

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic csdn_test

查看topic列表:

./kafka-topics.sh --list --zookeeper localhost:2181

创建生产者测试:

 ./kafka-console-producer.sh --broker-list localhost:9092 --topic csdn_test

在这里插入图片描述
创建消费者测试:

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic csdn_test --from-beginning

在这里插入图片描述

python本地代码测试

生产者测试:

import json
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='外网ip:9092')

msg = "Hello World".encode('utf-8')  # 发送内容,必须是bytes类型
producer.send('test_2', msg)  # 发送的topic为test
producer.close()

前往服务器/usr/local/kafka/bin查看topic列表,看列表中是否有test_2

./kafka-topics.sh --list --zookeeper localhost:2181

在这里插入图片描述
如果无法找到这个topic,请参考前面kafka的conf的配置文件server.properties修改如下配置

listeners=PLAINTEXT://内网ip:9092
advertised.listeners=PLAINTEXT://外网ip:9092

消费者测试:

from kafka import KafkaConsumer

consumer = KafkaConsumer('test_2', bootstrap_servers=['外网ip:9092'])
for msg in consumer:
    print(msg)
    recv = "%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value)

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值