likes
comments
collection
share

SpringBoot整合Kafka【02】- 发送消息的初体验一、新建Spring Boot项目 通过Spring In

作者站长头像
站长
· 阅读数 24

一、新建Spring Boot项目

通过Spring Initializr脚手架创建SpringBoot项目,如下: SpringBoot整合Kafka【02】- 发送消息的初体验一、新建Spring Boot项目 通过Spring In 选择Spring Boot的版本(Ps:我这里是默认的)和所需依赖,如下: SpringBoot整合Kafka【02】- 发送消息的初体验一、新建Spring Boot项目 通过Spring In

二、配置文件

配置其实还是挺全面的,但我们刚开始只需要简单地配置下连接信息就可以了,不用关注生产者和消费者的配置(它们各有24个配置),只需要知道有这么个东西,如下:

spring:
  # kafka配置
  kafka:
    # 连接地址
    bootstrap-servers: 127.0.0.1:9092
    # 消费者配置
    # consumer:
    # 生产者配置
    # producer:

在前文中,我们是在本地用docker启动的kafka,这里的连接地址自然也就是127了。

三、发送消息测试

完成了基本的配置后,我们就可以编写一个简单的发送消息的案例来测试下整合是否成功,很简单地就发送一个“hello kafka”,如下:

@Resource
private KafkaTemplate<String, String> kafkaTemplate;

public void sendEvent(){
    kafkaTemplate.send("hello-topic", "hello kafka");
}

直接在需要使用的地方注入KafkaTemplate,然后调用 send() 方法即可,这里只是简单测试,先简单穿两个参数,分别是topic和value。再写个测试方法调用测试下,如下:

@SpringBootTest
class KafkaDemoApplicationTests {
    @Resource
    private EventProducer eventProducer;

    @Test
    void test01() {
        eventProducer.sendEvent();
    }
}

执行成功之后,就可以在连接工具(Ps:安装参考01篇)里看到刚刚发送的消息了,如下: SpringBoot整合Kafka【02】- 发送消息的初体验一、新建Spring Boot项目 通过Spring In 这个让我们体会了下作为生产者如何发送消息,就是这么简单,只需要一个kafkaTemplate即可,所以在项目里整合Kafka其实就是干这么两件事:作为生产者发送事件Event(包含消息和数据)、作为消费者读取事件Event(包含消息和数据)。

四、熟悉概念

为了便于读者的后续学习,我们先来熟悉下在Kafka中涉及到的几个基本概念:生产者Producer、消费者Consumer、主题Topic、分区Partition、偏移量Offset。关于生产者和消费者大家已经有所认识,就不赘述了,而我则通过一个例子让大家更好地认识它们及其关系。

首先,我们可以将Kafka存储事件Event的地方看做一个图书馆,那么:

1.事件Event

就像是图书馆里的每一本书。

2.主题Topic

类似于图书馆的书架,每个书架上放置了特定类别的书籍。例如,一个书架上可能全是关于历史的书,另一个书架上可能全是关于科学的书。

3.分区Partition

可以看作是书架上的不同隔间,每个隔间里放置了一部分书籍。这样做的目的是为了更好地组织和管理书籍,使得查找和存取更加高效。

4.偏移量Offset

是每本书在书架上的具体位置编号。通过这个编号,你可以精确地找到某一本书,和索引的作用一样。

这样一来,当你需要查找某本书(事件)时,你首先会知道它在哪个书架(主题)上,然后找到具体的隔间(分区),最后通过位置编号(偏移量)准确地找到它。

五、小结

用案例帮大家熟悉之后,有这么几个知识点需要大家了解下:

  • Kafka中,每个topic可以有一个或多个partition;
  • 当创建topic时,如果不指定该topic的partition数量,那么默认就是1个partition;
  • offset是标识每个分区中消息的唯一位置,从0开始;
转载自:https://juejin.cn/post/7407983735663181858
评论
请登录