0
点赞
收藏
分享

微信扫一扫

CentOS7.x 安装和使用kafka(命令行使用、java操作)


背景

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka 入门

今天是2022年3月23日
目前官网能下载到的最新的kafka已经是​​​kafka-3.1.0-src.tgz​​版本

查了一阵子,发现kafka3 是一个大版本。
变化内容诸如(仅限个人理解,不一定全面和绝对准确):

  1. kafka3 不再一定依赖zookeeper,它自带两种模式:​​Kraft模式​​​ 和​​基于zookeeper启动的模式​​(如果可以这么叫的话)
  2. ​Kraft模式​​​ 是新的,​​基于zookeeper启动的模式​​是旧的,原有的,并且未来会去掉。
  3. kafka3 不支持jdk8
  4. 目前kafka3的​​Kraft模式​​ 不是很稳定,不太建议用在生产环境。
  5. kafka3目前教程不多,网上找到的多是kafka2的例子

结论:先装kafka2学习

实操

1. 按照官网操作

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka 入门_02


安装包自行下载,很容易。

2. 按文档执行安装


$ tar -xzf kafka_2.13-3.1.0.tgz
$ cd kafka_2.13-3.1.0


# Start the ZooKeeper service
# Note: Soon, ZooKeeper will no longer be required by Apache Kafka.
$ bin/zookeeper-server-start.sh config/zookeeper.properties

我的操作后的效果如图:

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka代码示例_03


# Start the Kafka broker service
$ bin/kafka-server-start.sh config/server.properties

效果如图:

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka 入门_04

  1. 查看启动后的效果
  2. CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka 入门_05

实际使用

官方文档里就非常详细准确了,可完全照着做

命令行方式使用

创建event

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

发消息:

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

Ctrl + C 终止。

展示消息:

bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

操作如图:

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka 入门_06

java代码方式使用

我仿照了这个文章的做法,但启动报错,并未成功。​

后经过调整,springboot启动成功、kafka也正常收发消息,算是完成了demo。
地址:
​​​https://gitee.com/codejam_org/springboot-kafka-demo​​

依赖信息:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.1.9.RELEASE</version>
</parent>

<groupId>org.example</groupId>
<artifactId>sb-kafka-demo</artifactId>
<version>1.0-SNAPSHOT</version>


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

具体java代码见demo,亲测成功。

注意事项

  1. 特别补充一下,如果你的kafka-server 和 java项目不在同一台机器的话,需要设置一下允许kafka远程访问。
  2. 使用的kafka是 2.13版本的,springboot是 2.1.9-RELEASE版本的

上个收发成功的图

CentOS7.x 安装和使用kafka(命令行使用、java操作)_spring kafka_07

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka代码示例_08

当前(2022年3月23日)网页备份

对先后启动zk和kafka有用,对java操作无用,放在这里只是个备份

CentOS7.x 安装和使用kafka(命令行使用、java操作)_kafka代码示例_09


举报

相关推荐

0 条评论