首页 > 其他分享 >kafka简单入门

kafka简单入门

时间:2023-02-22 11:47:07浏览次数:63  
标签:bin java 入门 -- kafka topic 简单 server

kafka 用途

高性能分布式的消息队列工具,你可以用它收集信息或者同时进行消息纷发。

kafka 安装以及Quickstart

安装以及quickstart见官网http://kafka.apache.org/documentation/#introduction. 启动kafka的环境要求安装java 8+,我自动安装不上然后去java官网下了二进制文件包(下方链接),解压然后添加PATH环境指向该文件夹即可:
https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
我敲的几个关键命令如下:

# 启动kafka server
KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
bin/kafka-server-start.sh config/kraft/server.properties

启动成功后进程名称可以查到kafka,但监听端口列表中也没有kafka字样而是java字样,如下所示:

tcp6       0      0 :::9093                 :::*                    LISTEN      33725/java          
tcp6       0      0 :::9092                 :::*                    LISTEN      33725/java          
tcp6       0      0 :::43809                :::*                    LISTEN      33725/java          
tcp6       0      0 127.0.0.1:9093          127.0.0.1:46606         ESTABLISHED 33725/java          
tcp6       0      0 127.0.0.1:46606         127.0.0.1:9093          ESTABLISHED 33725/java          
unix  2      [ ]         STREAM     CONNECTED     158878712 33725/java           
unix  2      [ ]         STREAM     CONNECTED     137710167 33994/java           

官网Quickstart中有一个往test.txt文件写信息,然后消费者再读出来的例子。这需要在另一个终端中,编辑文件config/connect-standalone.properties在里面添加如下一段话:

plugin.path=/home/sj/ebpf/kafka_2.13-3.3.1/libs/connect-file-3.3.1.jar

然后运行bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties, 然后再在另外一个终端中运行消费端:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning

关键概念理解

  • broker: 就是kafka server
  • topic: 官网给出的比喻是topic像文件夹,events是里面的文件
  • log: 我理解的log就是kafka记录的一段一段的events集合

如果要清楚所有kafka消息,用以下命令,但是需要从头配置log format, topic等。
rm -rf /tmp/kafka-logs /tmp/zookeeper /tmp/kraft-combined-logs

kafka客户端

这些例子里的脚本只是举个例子,无法满足实际的数据读写。因此需要kafka客户端,因为我们组一直用GO开发,搜索得知有三个常用的Go版kafka客户端:Shopify/sarama、confluent-kafka-go和segmentio/kafka-go.其中sarama星多但不易上手,我看了半天没用起来,confluent-kafka-go基于cgo,于是选了kafka-go. https://github.com/segmentio/kafka-go example文件夹里的consumer-logger和producer-random可以搭配运行,一个是消费者一个是生产者。记得要配置环境变量:

export kafkaURL=0.0.0.0:9092
export topic=quickstart-events

一般需要为客户端新建topic,收到操作topic可以使用kafka自带的脚本:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-topics.sh --create --topic sj-212 --bootstrap-server 172.18.8.203:9092
bin/kafka-topics.sh --delete --topic sj-212 --bootstrap-server 172.18.8.203:9092

标签:bin,java,入门,--,kafka,topic,简单,server
From: https://www.cnblogs.com/janeysj/p/17025275.html

相关文章

  • 一、入门案例
    开发环境IDE:idea2019.2JDK:JDK8+构建工具:maven3.5.4MySQL版本:MySQL5.7SpringBoot:2.6.3MyBatis-Plus:3.5.1创建数据库及表创建表CREATEDATABASE`mybatis_plu......
  • Cypress简易入门教程
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试 01Wind......
  • HDFS写操作(简单源码解读)
    HDFS最重要的就是写流程了,学校老师教的时候也是重点介绍这个过程(虽然我并没有在任何面试中被问到过)。下面从画图和文字两个过程介绍写流程,这次读了源代码之后对整个过程更......
  • NProgress进度条简单使用
    安装//npmnpminstall--savenprogress//Yarnyarnaddnprogress直接引入js、css或者通过cdn引入<scriptsrc='nprogress.js'></script><linkrel='stylesheet'......
  • mysql5.7压缩包配置教程(简单高效)
    MySql5.764位下载链接1.下载压缩包之后,解压压缩包,添加系统环境变量%MYSQL_HOME%\bin2.新建my.ini文件[mysqld]basedir=D:\DevelopTools\mysql-5.7.32-winx64......
  • Linux平台实现简单的IP白名单策略
    /etc/hosts.allow与/etc/hosts.deny的判定机制读取/etc/hosts.allow文件,从上到下读取:如果守护程序-客户端对与文件中的第一行匹配,则授予访问权限;如果该行不匹配,则读取......
  • 简单聊下VM重置密码遇到的问题
    重置密码是个很常见的需求,方法也很多,之前还介绍过用automation批量来重置,实际上一般常用的方法是通过Portal上这个resetpassword的功能来重置,如下图本来其实是很简单的功能......
  • golang入门(十二)并发channel
    多线程与多进程本质的区别在于,多线程的内存空间是共享的,多进程是每一个进程都会独立开辟一块内存空间。如果我们运行的多个任务是完全独立的,那么在资源足够的情况下并发还是......
  • 简单html
    srong加粗ins下划线em倾斜del删除线<hr>分割线<p></p>整段<ahref="此为跳转网站">此为跳转内容</a>图片标签<imgsrc=""alt=""title="">(src,alt标签属性,src后加图片文......
  • Python paramiko的简单使用
    paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输、中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功......