Spring Boot Kafka 生产者示例
Spring Boot 是Java编程语言中最流行和最常用的框架之一。它是一个基于微服务的框架,使用 Spring Boot 制作可用于生产的应用程序需要的时间非常少。 Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”。所以下面列出了 Spring boot 的一些主要特性。
- 创建独立的 Spring 应用程序
- 直接嵌入 Tomcat、Jetty 或 Undertow。
- 提供“入门”依赖项以简化构建配置。
- 尽可能自动配置 Spring 和 3rd 方库。
- 提供生产就绪功能,例如运行状况检查、指标和外部化配置。
- 几乎不需要代码生成,也不需要 XML 配置。
Apache Kafka 是一个发布-订阅消息系统。消息传递系统允许您在进程、应用程序和服务器之间发送消息。从广义上讲,Apache Kafka 是可以定义和进一步处理主题(一个主题可能是一个类别)的软件。应用程序可以连接到该系统并将消息传输到主题上。消息可以包含任何类型的信息,来自您个人博客上的任何事件,也可以是非常简单的文本消息,会触发任何其他事件。在这里,我们将讨论如何使用 Spring Boot 将消息发布到 Kafka 主题,其中 Kafka 是先决条件
例子:
Prerequisite: Make sure you have installed Apache Kafka in your local machine. Refer to this article How to Install and Run Apache Kafka on Windows?
第 1 步:转到此链接 https://start.spring.io/ 并创建一个 Spring Boot 项目。将以下依赖项添加到您的 Spring Boot 项目中。
- 春季网络
- Apache Kafka 的春天
第 2 步:现在让我们创建一个名为DemoController的控制器类。
Java
// Java Program to Illustrate Controller Class
package com.amiya.kafka.apachekafkaproducer;
// Importing required classes
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.*;
// Annotation
@RestController
// Class
public class DemoController {
// Autowiring Kafka Template
@Autowired KafkaTemplate kafkaTemplate;
private static final String TOPIC = "NewTopic";
// Publish messages using the GetMapping
@GetMapping("/publish/{message}")
public String publishMessage(@PathVariable("message")
final String message)
{
// Sending the message
kafkaTemplate.send(TOPIC, message);
return "Published Successfully";
}
}
第 3 步:现在我们必须执行以下操作才能使用 Spring Boot 将消息发布到 Kafka 主题
- 运行 Apache Zookeeper 服务器
- 运行 Apache Kafka 服务器
- 收听来自新主题的消息
使用此命令运行 Apache Zookeeper 服务器
C:\kafka>.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
同样,使用此命令运行 Apache Kafka 服务器
C:\kafka>.\bin\windows\kafka-server-start.bat .\config\server.properties
运行以下命令来收听来自新主题的消息
C:\kafka>.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic NewTopic --from-beginning
第 4 步:现在运行您的 Spring Boot 应用程序。确保您已更改application.properties文件中的端口号
server.port=8081
让我们在 ApacheKafkaProducerApplication 文件中运行 Spring Boot 应用程序
第 5 步:浏览此 URL 并在 /publish/ 之后传递您的消息。
http://localhost:8081/publish/GeeksforGeeks
当我们在这里通过“GeeksforGeeks”时,您可以看到我们得到了“成功发布”作为回报。您还可以实时看到消息已在服务器上发布。消息流是实时的。
同样,如果我们在这里通过了“Hello World”,您可以看到我们得到了“Published Successfully”作为回报。您还可以实时看到消息已在服务器上发布。