Kafka备忘
官网 http://kafka.apache.org/
多生产者多消费者
多topic和多分区
多消费者组。每组中消息不能重复消费,组间不影响
启动
RunKafka(){
cd $kafka_home
nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties >> zk$dayStr.log &
echo 'Starting zookeeper...'
sleep 5s #wait a monment until zookeeper is ready nohup ./bin/kafka-server-start.sh ./config/server.properties >> kafka$dayStr.log &
echo 'Starting kafka-server...'
}
流程:启动zookeeper -> 启动kafka-server -> 创建topic -> 创建生产者 -> 创建消费者
基本命令
# kafka basic common
# ./app/kafka/bin/kafka-topics.sh --create --zookeeper localhost: --replication-factor --partitions --topic huashi
# ./app/kafka/bin/kafka-topics.sh --list --zookeeper localhost:
# ./app/kafka/bin/kafka-topics.sh --describe --zookeeper localhost: --topic huashi
# ./app/kafka/bin/kafka-topics.sh --delete --zookeeper localhost: --topic huashi # ./bin/kafka-console-producer.sh --broker-list localhost: --topic huashi
# ./bin/kafka-console-consumer.sh --zookeeper localhost: --topic huashi --from-beginning
# ./bin/kafka-topics.sh --zookeeper localhost: --alter --topic huashi --partitions # ==================delete consumer group======
# ~/kafka/bin/zookeeper-shell.sh localhost:
# ls /consumers
# rmr /consumers/bd/offsets
# rmr /consumers/test/offsets/huashi20151108 # ls /tmp/kafka-logs/
Python包
https://github.com/mumrah/kafka-python
用法:http://kafka-python.readthedocs.org/en/latest/usage.html
FakeProducer.py
#!/usr/bin/python
# -*- coding: utf-8 -*- __author__ = 'manhua' from kafka import SimpleProducer, KafkaClient
import time
# To send messages synchronously
kafka = KafkaClient('localhost:9092')
producer = SimpleProducer(kafka)
n=0
while True:
producer.send_messages(b'huashi', str(n))
n+=1
time.sleep(1)
print n
ConsumerTest.py
#!/usr/bin/python
# -*- coding: utf-8 -*- __author__ = 'manhua' from kafka import KafkaConsumer
import sys class UnzipConsumer:
def __init__(self, topic, partition_id, gid='bd', bs_server='localhost:9092'):
self.partition_id = partition_id
self.consumer = KafkaConsumer((topic, int(partition_id)), # must specify an id, or it will quite slow
group_id=gid,
bootstrap_servers=[bs_server],
auto_offset_reset='smallest' # ,
# consumer_timeout_ms=1000*60*30
) def run(self):
for message in self.consumer:
print("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
message.offset, message.key,
message.value))
self.consumer.task_done(message)
self.consumer.commit() if __name__ == '__main__': if len(sys.argv) == 3:
obj = UnzipConsumer(sys.argv[1], sys.argv[2])
obj.run()
else:
print 'Parameters: [topic] [id]' # python unzipConsumer.py huashi #0
监控工具
https://github.com/quantifind/KafkaOffsetMonitor
实时监控kafka的consumer以及他们在partition中的offset
因为KafkaOffsetMonitor中有些资源文件(css,js)是访问google资源,所以有人做了修改版 http://pan.baidu.com/s/1qWH05q8
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk localhost --refresh 15.minutes --retain 5.day --port 5354
Ref:
http://blog.csdn.net/lizhitao/article/details/27199863
Kafka备忘的更多相关文章
- kafka 备忘
创建topic/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --partitions 3 --rep ...
- GIS部分理论知识备忘随笔
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
- Vi命令备忘
备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...
- ExtJs4常用配置方法备忘
viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...
- [备忘] Automatically reset Windows Update components
这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...
- ECMAScript 5(ES5)中bind方法简介备忘
一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...
- MFC通过txt查找文件并进行复制-备忘
MFC基于对话框的Demo txt中每行一个23位的卡号. 文件夹中包含以卡号命名的图像文件.(fpt或者bmp文件) 要求遍历文件夹,找到txt中卡号所对应的图像文件,并复制出来. VC6.0写的. ...
- php 相关模块备忘
在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
随机推荐
- linux进程地址空间--vma的基本操作【转】
转自:http://blog.csdn.net/vanbreaker/article/details/7855007 版权声明:本文为博主原创文章,未经博主允许不得转载. 在32位的系统上,线性地址空 ...
- Kubernetes镜像制作
#将需要安装的包全部放入一个目录下,然后开始编写Dockerfile#Dockerfile格式FROM #依赖的镜像MAINTAINER #制作者信息WORKDIR #工作目录,打包启动镜像后的所在目 ...
- ASP.NET webFrom
web窗体的后缀名.aspx 1.<% %> 标签内的代码在服务器上执行 <body> <form id="form1" runat="se ...
- (11)C#值类型和引用类型,堆和栈,ref和out,装箱和拆箱
一.值类型和引用类型定义 以内存中的存在方式可以把变量分成两大类型,值类型和引用类型. 值类型:系统只占用一块内存,数据直接存储在内存里. 引用类型:系统占用两块内存,一块存放地址,另一块存放实际数据 ...
- (7)C#流程控制
一.判断语句 if if可以单独使用,else不能单独使用 ; ) { Console.WriteLine("aaa); } Console.WriteLine("xxx" ...
- Code+ A 晨跑【三个数的最小公倍数】
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld 题目描述 “无体育,不清华”.“每天锻炼一小时,健康工作 ...
- C++米勒拉宾算法模板
//我也忘了从哪找来的板子,不过对于2^63级的数据请考虑使用java内置的米勒拉宾算法. 1 #include <iostream> #include <string> #i ...
- NIO入门之BIO
传统BIO编程 网络编程的基本模型是Client-Server模型,也就是两个进程之间相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的端口发起连接请求,通 ...
- 五. 面向对象高级特性6. Java 泛型
我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值. 假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数.小数和字符串,例如: x = 1 ...
- android xml 布局文件中 android:ems="10"
宽度为10个字符的宽度 xml中 android:ems属性 ,作为EditText 默认生成 的属性,其含义是需要编辑的 字符串长度 .设置为10时,最多编辑 10个em ,一个em单位是 两个in ...