30分钟了解如何使用Kafka
Kafka是当下对海量数据提供了最佳支持的MQ中间件,无论是高并发的处理,还是依托zookeeper的水平拓展都有不俗的特性。由于公司最近也在尝试如何将它应用到开发中以对业务更好的支撑,因此特地分享一些安装和使用的心得。
一、安装与启动
服务器环境采用CentOS 7 x64位系统。实际使用中Kafka依赖Zookeeper进行Broker管理,测试环境我们可以只使用Kafka自带的Zookeeper。
Kafka运行依赖JVM,首先需要安装Java
java-1.8.0-openjdk-1.8.0
java-1.8.0-openjdk-devel
解压Kafka并将解压的文件放置到系统目录下
tar -zxvf kafka_2.12-2.1.0.tgz
mv kafka_2.12-2.1.0 /usr/local/kafka
进入kafka下的config目录,打开zookeeper.properties文件,确定端口号(默认:2181)
打开server.properties文件修改以下配置
broker.id=1 #这个属性是kafka需要提交给zookeeper注册的Key
num.partitions=3 #主题的默认分区数,可选修改,默认为1
listeners=PLAINTEXT://<host>:9092 #配置当前主机ip,这个是broker的通信地址
zookeeper.connect=localhost:2181 #zookeeper的地址
group.initial.rebalance.delay.ms=3 #集群环境下的节点平衡时间,默认是0
启动服务
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties #启动zookeeper服务
bin/kafka-server-start.sh -daemon config/server.properties #启动kafka服务
最后Jps查看结果
> 13587 Kafka
> 13604 Jps
> 13269 QuorumPeerMain
二、创建主题——生产者与消费者
创建主题
kafka-topics.sh --create --topic test --zookeeper localhost:2181 --partitions 1 --replication-factor 1
我们分别指定了操作类型(create),主题(test),zookeeper的地址(localhost:2181),分区数(1),副本数(1)
查询主题
bin/kafka-topics.sh --list --zookeeper localhost:2181
启动生产者
bin/kafka-console-producer.sh --topic test --broker-list <host>:9092
打开另一个终端启动消费者监听test主题
bin/kafka-console-consumer.sh --topic test --bootstrap-server <host>:9092 --from-beginning
三、使用辅助Web工具:kafka-mamage
下载:网上的资源很多,不乐意从百度云下载的可以在我的QQ群获取(960652410)
修改配置文件application.conf
kafka-manager.zkhosts="localhost:2181"
后台启动
nohup ./bin/kafka-manager -Dconfig.file=./conf/application.conf -Dhttp.port=8080 >kafka-manager.log 2>&1 &
具体操作网上有大量的现成案例,我主要想说一下为什么选择kafka-manager。按照别人的说法似乎KafkaOffsetMonitor是最佳选择,但是KafkaOffsetMonitor是使用AngularJs开发的页面工具,js资源需要google的支持(防火长城了解一下)。所以权衡再三,我还是选择了后者。当然有兴趣的同学也可以根据实际情况自己开发一个监控工具,由于kafka提供了librdkafka的C/C++开源库自己写一个简单难度其实也不大。我的群里就有我自己使用Qt开发的linux版本的监听工具。
后记:这里仅仅是对Kafka的入门,更加深入的知识还需要各位小伙伴一起去探索。
30分钟了解如何使用Kafka的更多相关文章
- 30分钟学会XAML
1.狂妄的WPF 相对传统的Windows图形编程,需要做很多复杂的工作,引用许多不同的API.例如:WinForm(带控件表单).GDI+(2D图形).DirectX API(3D图形)以及流媒体和 ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
- JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)
前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...
- 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world
2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...
- 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- 30分钟?不需要,轻松读懂IL
先说说学IL有什么用,有人可能觉得这玩意平常写代码又用不上,学了有个卵用.到底有没有卵用呢,暂且也不说什么学了可以看看一些语法糖的实现,或对.net理解更深一点这些虚头巴脑的东西.最重要的理由就是一个 ...
- 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)
前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...
- Objective-C 30分钟入门教程
Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念. ...
- AngularJS 30分钟快速入门【译】
引用自:http://www.revillweb.com/tutorials/angularjs-in-30-minutes-angularjs-tutorial/,翻译如下: 简介 我三年前开始使用 ...
随机推荐
- 一个新人对HTML内JavaScript的理解
首先是对于JavaScript(以后简称JS)的定义: ① JS他是一个脚本语言,有点类似于外部插件,需要插入引用才会有效 ② 他需要一个宿主文件,就是他插入到谁里面进行运算,谁就是这个JS的宿主文件 ...
- 剑指offer2
请实现一个函数,将一个字符串中的字符串空格替换成“%20”.例如:“We Are Happy”转化后为“We%20Are%20Happy” 思路:把字符串转化成字符数组,判断这个字符是不是空格,如果是 ...
- string.Format字符串格式说明(转)
转自:http://blog.csdn.net/dl020840504/article/details/8921875 先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式 ...
- 025-du命令查看文件大小
1.查看某个目录下面所有文件占用空间大小并排序.du -sh 目录 2.排序.sort -h
- python练习-生成一个1到50的大字符串每个数字之间有个空格
#-*-encoding:UTF-8-*- string=[] for i in range(1,51): string.append(str(i)) print string#打印一下string ...
- 微信公众号为什么要加粉?流量,广告,KPI,吸粉,增粉
微信公众号为什么要加粉?流量,广告,KPI,吸粉,增粉 1.曾有人这样比喻:当你的粉丝超过100人时,你就像是一本内刊:超过1000人,你就像个布告栏:超过1万人,你就好比一本杂志:超过10万人,你就 ...
- ajax return true/false无效原因
错误示例:function checkCP(customerId,productId){ $.ajax({ url:"/cp/checkCP", type:"post&q ...
- Java MD5校验与RSA加密
区别: MD5加密: 加密时通过原字符串加密成另一串字符串 解密时需要原加密字符串进行重新加密比较两次加密结果是否一致 RSA加密: 加密时通过原字符串生成密钥对(公钥+私钥) 解密时通过公钥和私钥进 ...
- SQL 报表 --简易进销系统
模型图: -- ============================================ -- Author: lifu -- Create Date: 2017-06-18 -- D ...
- JAVA学习调查问卷——20145101
1.你对自己的未来有什么规划?做了哪些准备? 我希望在未来不管自己是否从事机要工作,都要做一个有能力,对社会能有所贡献的人.所以在现阶段我应该努力学习基础知识,夯实基本功,具备成为合格机要人的素质. ...