Apache Kafka 是一个发布订阅消息系统。消息队列允许您在进程、应用程序和服务器之间发送消息。在本文中,我们将看到如何在 Spring Boot 应用程序中向 Apache Kafka 发送字符串消息。
为了学习如何创建一个spring boot项目,可以参考这篇文章。
该字符串是一个字符序列。在Java, String 的对象是不可变的,这意味着一个常量,一旦创建就不能更改。而且, Java允许显式类型转换,其中一种类型的变量可以强制转换为另一种类型。例如,如果字符串仅由数字组成并且需要用于某些计算,则可以将相同的字符串消息进一步转换为 int 或 float。可以按照以下步骤将字符串消息发布到 Apache Kafka:
- 转到 spring initializr 并创建一个具有以下依赖项的入门项目:
- 春网
- Apache Kafka 的 Spring
- 在 IDE 中打开项目并同步依赖项。现在创建一个带有注解@RestController的新类Controller 。此类处理所有 RESTful 路由。
- 在这一类中,创建一个GET API,并以如下参数初始化字符串KafkaTemplate。下面是该类的实现:
// Java program to implement the // controller for the spring // application @RestController @RequestMapping("/kafka") public class Controller { @Autowired KafkaTemplate
kafkaTemplate; static final String TOPIC = "gfg"; // Implementing a GET method @GetMapping("publish/{message}") public String publish_message( @PathVariable("message") String message) { kafkaTemplate.send(TOPIC, message); return "Message Published on Kafka !"; } } - 启动 zookeeper 和 Kafka 服务器。现在我们需要创建一个名为gfg的新主题。为此,请打开一个新的命令提示符窗口并将目录更改为 Kafka 目录。
- 现在使用下面给出的命令创建一个新主题:
For Mac and Linux: bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic topic_name
For Windows: .\bin\windows\kafka-topics.bat –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic topic_name
- 现在要实时查看 Kafka 服务器上的消息,请使用以下命令:
For MAC and Linux: bin/kafka-console-consumer.sh –bootstrap-server localhost:9092 –topic topic_name –from-beginning
For Windows: .\bin\windows\kafka-console-consumer.bat –bootstrap-server localhost:9092 –topic topic_name –from-beginning
- 运行应用程序并将 API 调用为:
localhost:8080/kafka/publish/{your message}
注意:如果使用了不同的端口,则将该端口替换为 8080。
输出:
- 调用API:
- 实时查看消息: