在Spring Boot应用程序中使用Apache Kafka的方法步骤详解

网友投稿 240 2023-01-19


在Spring Boot应用程序中使用Apache Kafka的方法步骤详解

第1步:生成我们的项目: Spring Initializr 来生成我们的项目。我们的项目将提供Spring MVC / Web支持和Apache Kafka支持。

第2步:发布/读取Kafka主题中的消息:

public class User {

private String name;

private int age;

public User(String name, int age) {

this.name = name;

this.age = age;

}

}

第3步:通过application.yml配置文件配置Kafka:

我们需要创建配置文件。我们需要以某种方式配置我们的Kafka生产者和消费者,以便能够发布和读取与主题相关的消息。相比建立一个使用@Configuration标注的java类,我们可以直接使用配置文件application.properties或application.yml。Spring Boot让我们避免像过去一样编写的所有样板代码,同时为我们提供了更加智能的配置应用程序的方法,如下所示:

server: port: 9000

spring:

kafka:

consumer:

bootstrap: localhost:9092

group-id: group_id

auto-offset-reset: earliest

key-deserializer: org.apache.kafka.common.serialization.StringDeserializer

value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

producer:

bootstrap: localhost:9092

key-serializer: org.apache.kafka.common.serialization.StringSerializer

value-serializer: org.apache.kafka.common.serialization.StringSerializer

第4步:创建一个生产者,创建生产者会将我们的消息写入该主题。

public class Producer {

private static final Logger logger = LoggerFactory.getLoggvOrikdjUFer(Producer.class);

private static final String TOPIC = "users";

@Autowired

private KafkaTemplate kafkaTemplate;

public void sendMessage(String message) {

logger.info(String.format("#### -> Producing message -> %s", message));

this.kafkaTemplate.send(TOPIC, message);

}

}

自动连接autowire到 KafkaTemplate ,使用它将消息发布到主题 - 这就是消息的生产者!

第5步:创建一个消费者,消费者是负责根据您自己的业务逻辑的需求阅读处理消息的消息的服务。要进行设置,请输入以下内容:

@Service

public class Consumer {

private final Logger logger = LoggerFactory.getLogger(Producer.class);

@KafkaListener(topics = "users", groupId = "group_id")

public void consume(String message) throws IOException {

logger.info(String.format("#### -> Consumed message -> %s", message));

}

}

在这里,我们告诉我们的方法void consume(String message)订阅用户的主题,并将每条消息发送到应用程序日志。在您的实际应用程序中,您可以按照业务需要的方式处理消息。

第6步:创建REST控制器,们已经拥有了能够消费Kafka消息所需的全部内容。

为了充分展示我们创建的所有内容的工作原理,我们需要创建一个具有单一端点的控制器。消息将发布到此端点,然后由我们的生产者处理。然后,我们的消费者将通过登录到控制台来捕获并处理它。

@RestController

@RequestMapping(value = )

public class KafkaController {

private final Producer producer;

@Autowired

KafkaController(Producer producer) {

this.producer = producer;

}

@PostMapping(value = "/publish")

public void sendMessageToKafkaTopic(@RequestParam("message") String message) {

this.producer.sendMessage(message);

}

}

让我们使用cURL将消息发送给Kafka:

curl -X POST -F 'message=test' http://localhost:9000/kafka/publish

基本上就是这样!在不到10个步骤中,您了解了将Apache Kafka添加到Spring Boot项目是多么容易。如果您遵循本指南,您现在知道如何将Kafka集成到Spring Boot项目中,并且您已准备好使用这个超级工具!

总结

以上所述是给大家介绍的在Spring Boot应用程序中使用Apache Kafka的方法步骤详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Springboot+React项目跨域访问问题
下一篇:关于post测试教程的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~