kafka的基本使用(更新中)
kafka的安装路径:/usr/local/Cellar/kafka/3.2.0
kafka的配置路径:/usr/local/etc/kafka
开启zookeeper
cd /usr/local/Cellar/kafka/3.2.0
执行脚本启动zookeeper:
bin/zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
启动kafka,在打开一个窗口:
cd /usr/local/Cellar/kafka/3.2.0
执行脚本启动kafka:
bin/kafka-server-start /usr/local/etc/kafka/server.properties
测试创建一个主题,再打开一个窗口
cd /usr/local/Cellar/kafka/3.2.0
执行命令,创建一个主题
网上介绍的写法:bin/kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic wangyake-test 这个对于3.0.0的kafka已经不适用了
正确的是:bin/kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic wangyake-test
其中--bootstrap-server localhost:9092 指出了要连接的kafka的服务器的地址,必填项,zookeeper的地址在kafka的配置中有,启动的时候就会默认链接。
–create 创建主题命令
–replication-factor 1 指定副本个数
–partitions 1 指定分区个数
–topic test 主题名称查看是否成功创建主题
bin/kafka-topics --list --bootstrap-server localhost:9092
python中的基本使用方式demo
配置文件config.py:
SERVER = '127.0.0.1:9092'
TOPIC = 'test'
生产者producer.py:
import json
import time
import datetime
import config
from kafka import KafkaProducer
# bootstrap_servers指的是kafka服务器
producer = KafkaProducer(
bootstrap_servers=config.SERVER,
value_serializer=lambda m: json.dumps(m).encode()
)
for i in range(100):
data = {'num': i + 1, 'ts': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "msg": "成功"}
producer.send(config.TOPIC, data)
time.sleep(1)
消费者consumer.py:
# consumer.py
import json
from kafka import KafkaConsumer
import config
# 第一个参数为topic的名称
# bootstrap_servers: 指定kafka服务器
# group_id : 指定此消费者实例属于的组名,可以不指定
consumer = KafkaConsumer(
config.TOPIC,
bootstrap_servers=config.SERVER,
api_version=(0, 11, 5),
group_id="ichpan",
auto_offset_reset='earliest'
)
for msg in consumer:
print(json.loads(msg.value))
# consumer可以同时监听多个消费者
# consumer = KafkaConsumer(
# bootstrap_servers=config.SERVER,
# group_id="ichpan",
# auto_offset_reset='earliest'
# )
# 使用subscribe订阅
# consumer.subscribe(topics=["test",])
# for msg in consumer:
# print(json.loads(msg.value))
kafka的基本使用(更新中)的更多相关文章
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY
正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade 随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- Atom使用记录(持续更新中)
部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进 ...
- Pig基础学习【持续更新中】
*本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...
- Pig语言基础-【持续更新中】
***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.*** Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- 微软承诺将在今年的 Visual C++ 更新中加入 Clang 编译器
微软最近发布将在2015年11月 Visual C++ 更新中加入 Clang 编译器 ,Clang 开源编译器以相比GCC更快的编译速度和更优的错误提示著称. Clang关于C,C++,及Objec ...
- 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )
本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...
- 免费api大全(更新中)
免费api大全(更新中) API大全 http://www.apidq.com/ (这个碉堡了) 天气接口 气象局接口 完整数据:http://m.weather.com.cn/data/10 ...
随机推荐
- Deque的应用案例-回文检查
7.Deque的应用案例-回文检查 回文检测:设计程序,检测一个字符串是否为回文. 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. 分析:该问题的解决方案将使用 ...
- (Python基础教程之二)在Sublime Editor中配置Python环境
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- Mybatis【11】-- Mybatis Mapper动态代理怎么写?
目录 1.回顾Mybatis执行sql的流程 2.mapper动态代理怎么写? 3.mapper动态代理怎么做的? 1.回顾Mybatis执行sql的流程 在之前的代码中我们的运行过程再梳理一下,首先 ...
- 【Java基础】-- isAssignableFrom的用法详细解析
最近在java的源代码中总是可以看到isAssignableFrom()这个方法,到底是干嘛的?怎么用? 1. isAssignableFrom()是干什么用的? 首先我们必须知道的是,java里面一 ...
- Java根据前端返回的字段名进行查询数据
在Java后端开发中,我们经常需要根据前端传递的参数(如字段名)来动态查询数据库中的数据.这种需求通常出现在需要实现通用查询功能或者复杂查询接口的场景中.为了实现这个功能,我们需要结合Java的反射机 ...
- 从Delphi到Lazarus——我的编程之路
今天终于下定决心,把我使用的编程环境从Delphi转变成Lazarus了.这也许是一个明智的选择,但做出这个决定的过程包含了辛酸和无奈. 这应该是我第三次安装Lazarus了.以前安装之后总是感觉有很 ...
- IDEA如何使用快捷键进行驼峰命名转换
idea菜单栏-file-settings-plugins-在marketplace搜索"CamelCase"-点击安装 安装后重新打开idea,选中内容,使用快捷键:shit+a ...
- codeforces1849 D. Array Painting
题目链接 https://codeforces.com/problemset/problem/1849/D 题意 输入 \(n(1 \leq n \leq 2e5)\) 和长为 \(n\) 的数组 \ ...
- openEuler欧拉部署Jenkins
一.系统优化 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 二.安装Jenkins dnf -y install docker ...
- 3.QMainWindow
QMainWindow介绍 QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar),多个工具栏(tool bars),多个铆接部件(dock widgets),一个状 ...