springboot~连接kafka需要注意的地方

本文介绍了在SpringBoot应用中连接Kafka时需要注意的事项,包括Kafka依赖于Zookeeper,部署Kafka的hostname配置,以及如何在Java应用中正确设置Kafka的连接地址和端口。通过docker-compose部署Kafka环境,并在k8s中配置容器hosts以确保连接成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kafka需要zookeeper的支持,我们可以使用docker-compose简单的部署一个环境,在部署时,kafka需要我们为它配置一个hostname,这个名称是每个kafka节点(broken)的名称,也是很容易被忽视的地方,通过kafka客户端工具可以看到你当前部署kafka时的hostsname,在部署java时,你的主机也需要配置这个host.
[图片上传失败...(image-ed46c6-1651027215872)]

部署一个kafka

docker-compose实现

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    hostname: zookeeper1
    network_mode: bridge
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka:2.11-0.11.0.3
    hostname: kafka1
    network_mode: bridge
    links:
      - zookeeper
    ports:
      - "9092:9092" #表示宿主机的端口为随机,这样方便使用docker-compose scale 进行扩容
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

部署一个应用,使用k8s配置容器hosts

spec:
  template:
    spec:
      hostAliases:
        - ip: "192.168.60.146"
          hostnames: ["kafka1"]

在java应用中可以直接连接kafka的地址和端口

[图片上传失败...(image-598b3-1651027215870)]

在此我向大家推荐一个架构学习交流圈。交流学习微信:539413949(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

Spring Boot中连接Kafka,你可以通过以下步骤进行操作: 1. 首先,在你的Spring Boot应用程序中添加Kafka的依赖。可以在pom.xml文件中添加以下Maven依赖: ```xml <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> ``` 2. 创建Kafka生产者。你可以创建一个类,例如`DemoKafkaProducerApplication`,并在其中添加`@SpringBootApplication`注解。同时,你还需要在该类中创建一个`KafkaAdmin.NewTopics`的Bean,用于创建Kafka主题。你可以使用`TopicBuilder`来定义主题的名称和其他属性。以下是一个示例代码: ```java @SpringBootApplication public class DemoKafkaProducerApplication { public static void main(String[] args) { SpringApplication.run(DemoKafkaProducerApplication.class, args); } @Bean public KafkaAdmin.NewTopics topics() { return new KafkaAdmin.NewTopics(TopicBuilder.name(KafkaMessageConst.KAFKA_TOPIC_DEMO).build()); } } ``` 请注意,`KafkaMessageConst.KAFKA_TOPIC_DEMO`是一个主题的常量,你可以根据自己的需求进行修改。这个常量定义可以在`KafkaMessageConst`类中找到。 3. 现在,你的Spring Boot应用程序已经可以连接Kafka了。你可以使用Spring Kafka提供的工具类和注解来创建Kafka生产者和消费者,并进行消息的发送和接收。 希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot 2.6 集成 Kafka 2.8](https://blog.youkuaiyun.com/Mrqiang9001/article/details/123212777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值