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/,翻译如下: 简介 我三年前开始使用 ...
随机推荐
- TFS修改映射路径办法
如果你之前配置好了TFS项目的映射路径.然后每次下载项目都会在你配置的路径,但我们可以修改 方法一:我们可以在 "工作区" 中修改路径
- 公司里面用的iTextSharp(教程)---关于PDF的属性设置
下面介绍下怎么添加属性,代码如下: protected void Button1_Click(object sender, EventArgs e) { Document doc = new Do ...
- 新版.Net开发必备十大工具(转)
Snippet Compiler Snippet Compiler是一个基于 Windows 的小型应用程序,你可以通过它来编写.编译和运行代码.如果你具有较小的代码段,并且你不想创建完整的 Visu ...
- python+Django框架运用(二)
Django应用 与 模板 应用就是网站中的一个独立的程序模块,在Django 中,主目录一般不处理用户的具体请求, 主目录主要做的是项目的初始化和设置,以及请求的分发. 创建应用 1. 创建应用命令 ...
- java后台获取和js拼接展示信息
java后台获取和js拼接展示信息: html页面代码: <div class="results-bd"> <table id="activityInf ...
- python 类的私有方法例子
#coding=utf-8 class Person(object): id=12 def __init__(self,name): self.name=name ...
- eclispe 相关设置
1. 关闭js文件校验: 1). windows->preference->Java Script->Validator->Errors/Warnings->Enable ...
- JS实现仿腾讯微博无刷新删除微博效果代码
这里演示JS仿腾讯微博无刷新删除效果,将显示在微博列表里的内容删除,运用AJAX技术,无刷新删除微博的内容,参考性强,希望对初学AJAX的朋友有所帮助. 在线演示地址如下: http://demo.j ...
- android CMakeLists
https://developer.android.google.cn/studio/projects/configure-cmake https://blog.csdn.net/songmingzh ...
- 20145331魏澍琛《网络对抗》Exp6 信息搜集与漏洞扫描
20145331魏澍琛<网络对抗>Exp6 信息搜集与漏洞扫描 问题回答 1.哪些组织负责DNS,IP的管理? DNS域名服务器:绝大多数在欧洲和北美洲,中国仅拥有镜像服务器. 全球一共有 ...