zoukankan      html  css  js  c++  java
  • 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的入门,更加深入的知识还需要各位小伙伴一起去探索。

  • 相关阅读:
    Python元组、列表、字典
    测试通过Word直接发布博文
    Python环境搭建(windows)
    hdu 4003 Find Metal Mineral 树形DP
    poj 1986 Distance Queries LCA
    poj 1470 Closest Common Ancestors LCA
    poj 1330 Nearest Common Ancestors LCA
    hdu 3046 Pleasant sheep and big big wolf 最小割
    poj 3281 Dining 最大流
    zoj 2760 How Many Shortest Path 最大流
  • 原文地址:https://www.cnblogs.com/learnhow/p/10159906.html
Copyright © 2011-2022 走看看