当前位置:   article > 正文

Springboot2整合kafka的两种使用方式_please define kafka_listeners / (deprecated) kafka

please define kafka_listeners / (deprecated) kafka_advertised_host_name

kafka是一个分布式消息队列。在项目中应用十分广泛,具有高性能、持久化、多副本备份、横向扩展能力。


kafka

  • 在多台机器上分别部署Kafka,即Kafka集群。每台机器运行的Kafka服务称为broker。
  • 一个Topic主题可以被分为若干个分区(partition),每个分区在存储层面是append log文件。
  • 分区(Partition )为Kafka提供了可伸缩性,水平扩展功能。
  • 多副本机制(Partition Replica)提高了kafka的数据可靠性和容灾能力。
    来源《深入理解kafka核心设计和实践原理》
    图片来源《深入理解kafka核心设计和实践原理》

docker上安装环境

1.安装zookeeper 和 安装kafka

  • 这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像

2.运行镜像

  • 整个启动过程遇到了8个左右报错,一个个解决,最后运行成功,简单列几个
    • Please define KAFKA_LISTENERS / (deprecated) KAFKA_ADVERTISED_HOST_NAME
    • WARN Session 0x0 for server zookeeper:2181, unexpected error, closing socket
    • java.nio.channels.UnresolvedAddressException
    • could not be established. Broker may not be available
    • Give up sending metadata request since no node is available
  • 总结下最后的启动命令,依此启动zookeeper和kafka
docker run --name zk01 -p 2181:2181 --restart always -d zookeeper
  • 1
docker run --name kafka01 -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e  KAFKA_ADVERTISED_HOST_NAME=localhost -e KAFKA_ZOOKEEPER_CONNECT="192.168.0.111:2181" -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.111:9092 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092 --link zk01:zk -t wurstmeister/kafka
  • 1

在这里插入图片描述


Springboot2引入kafka

 <!--引入Kafka-->
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • application.properties配置

#kafka配置
spring.kafka.bootstrap-servers=192.168.0.111:9092
#=============== provider  =======================
spring.kafka.producer.retries=0
# 每次批量发送消息的数量
spring.kafka.producer.batch-size=16384
spring.kafka.producer.buffer-memory=33554432
# 指定消息key和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
#======
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/533373
推荐阅读
相关标签
  

闽ICP备14008679号