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