kafka单机Windows系统环境搭建及利用Python操作kafka

Windows系统下Kafka环境搭建:

1、首先安装Java 1.8版本,配置环境变量

2、下载kafka文件,在官网下载即可,下载地址如下:

http://kafka.apache.org/downloads.html

3、解压完成后进行properties文件配置:

1)找到config/server.properties,在文件中

#listeners=PLAINTEXT://:9092下添加

advertised.listeners = PLAINTEXT://localhost:9092

advertised.listeners = PLAINTEXT://127.0.0.1:9092(重点标注,后面详解)

注:一般场景下只配置listeners即可,在IaaS场景下,比如Kafka集群内部通讯走内网,而对外提供服务的是公网或者隔离网络,则需要配置advertised.listeners。

其他如log.dirs=/tmp/kafka-logs日志文件路径可改可不改

2)找到config/zookeeper.properties对dataDir=/tmp/zookeeper修改为自定义日志路径,也可不修改;至于端口clientPort=2181可自行修改,也可不修改

4、配置完成后,下面针对Windows系统下起服务:

zookeeper与kafka使用的端口是不同的,在步骤3中有体现。

1)启动zookeeper,默认端口使用2181:目的通过集群架构来提供服务

C:\kafka_2.12-2.3.0\bin\windows\zookeeper-server-start.bat C:\kafka_2.12-2.3.0\config\zookeeper.properties

2)启动kafka,默认端口使用9092:一种高吞吐量的分布式发布/订阅消息系统

C:\kafka_2.12-2.3.0\bin\windows\kafka-server-start.bat C:\kafka_2.12-2.3.0\config\server.properties

3)创建topic为test,并查看topic

C:\kafka_2.12-2.3.0\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

C:\kafka_2.12-2.3.0\bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic test

4)创建生产者Producer:

C:\kafka_2.12-2.3.0\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

5)创建消费者Consumer

C:\kafka_2.12-2.3.0\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test

5、测试消息的传输:

在Producer输入消息,在相应Consumer控制台即时显示消息:

以上就是kafka的配置全过程,相对来说简单一些,严格按照步骤操作基本没有问题。

 

Python操作Kafka实例:

利用python操作kafka需要安装相应包,本次使用的是python3.6,安装kafka在外网情况下直接pip install kafka即可,在服务器内部需要下载相应whl文件,地址如下:

https://pypi.org/project/kafka/#files

按照示例建立Producer:

# 先看最简单的场景,生产者生产消息,消费者接收消息,下面是生产者的简单代码。

#--------------------------------------------------------------------------------

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import json

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')

msg = "Hello World".encode('utf-8')  # 发送内容,必须是bytes类型

print(msg)

producer.send('test', msg, partition=0) # 发送的topic为test

producer.close()

#--------------------------------------------------------------------------------

代码报错如下:

       网上解释是说Kafka连接时即使使用IP地址配置,但依旧会使用主机名解析IP地址,那么就配置hosts把服务器主机名都指向本地地址(127.0.0.1),hosts文件需要修改,于是找到windows系统中的hosts文件,位置在C:\Windows\System32\drivers\etc\hosts,在里面加上如下格式内容:

127.0.0.1 localhost,但是还是同样错误。

        后来又找到一篇帖子说是要查找并设置listener,配置监听端口,格式:listeners = listener_name://host_name:port,供kafka客户端连接用的ip和端口,例中配置如下:

listeners=PLAINTEXT://127.0.0.1:9092

这也就是在kafka环境配置是在config/server.properties文件中加入advertised.listeners=PLAINTEXT://127.0.0.1:9092的原因。

总体来讲配置python操作kafka的过程不算难,只是没有找对需要修改的地方,下面是python操作kafka的实例:

Producer发送消息:

Consumer消费消息:

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值