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的入门,更加深入的知识还需要各位小伙伴一起去探索。

  • 相关阅读:
    Jenkins分享
    Java静态绑定和动态绑定
    SpringBoot中RedisTemplate订阅发布对象
    Idea项目:Failed to create a Maven project ‘…pom.xml’ already exists in VFS 解决
    Java Web不能不懂的知识
    Required String parameter 'id' is not present
    Hive使用druid做连接池代码实现
    Docker Toolbox常见错误解决方案
    初学者手册-MyBatis踩坑记(org.apache.ibatis.binding.BindingException)
    SpringMVC日志管理(自定义异常及自定义注解)
  • 原文地址:https://www.cnblogs.com/learnhow/p/10159906.html
Copyright © 2011-2022 走看看