• spring boot集成kafka简单实用


    先导入spring boot整合kafka的依赖

     <dependency>
                <groupId>org.springframework.kafka</groupId>
                <artifactId>spring-kafka</artifactId>
            </dependency>

    然后是application.yml中关于kafka的配置

     1 spring:
     2   kafka:
     3     bootstrap-servers: ip:端口 #kafka服务器地址 多个以,号隔开
     4     #生产者配置
     5     producer:
     6       batch-size: 16384  #每次批量发送信息的数量
     7       buffer-memory: 33554432 #达到该缓冲区大小就发送数据
     8       key-serializer: org.apache.kafka.common.serialization.StringSerializer #key的序列化器
     9       value-serializer: org.apache.kafka.common.serialization.StringSerializer #value的序列化器
    10     #消费者配置
    11     consumer:
    12       group-id: test #消费者分组id,同一个分组的消费者不会读取到同一个消息
    13       enable-auto-commit: true #启用自动提交偏移量
    14       auto-commit-interval: 100 #设置偏移量提交间隔
    15       key-deserializer: org.apache.kafka.common.serialization.StringDeserializer #key的反序列化器
    16       value-deserializer: org.apache.kafka.common.serialization.StringDeserializer #value的反序列化器
    17 
    18 #自定义主题名,在代码中可以读取,方便修改主题
    19 topic: testTopic

    这是基础配置,我生产者和消费者这里都是同一个工程进行测试了,如果是两个不同的工程,只写生产者或消费者的配置就行

     1 @Component
     2 public class KafkaProducer {
     3 
     4     @Autowired
     5     private KafkaTemplate<String,Object> kafkaTemplate;
     6 
     7     @Value("${topic}")
     8     private  String topic;
     9 
    10     public  void sendMessage(String message){
    11          kafkaTemplate.send(topic,message);
    12     }
    13 
    14 }

    这里新建了一个kafka生产者类用于发送信息到kafka,并且交给了spring 管理,在我们需要使用的地方直接注入进来即可.

    这个KafkaTemplate<>类是spring boot提供的模板类,封装了关于kafka的操作.

    kafka消费者

    1 @Component
    2 public class KafkaConsumer {
    3 
    4     @KafkaListener(topics = {"${topic}"})
    5     public void getMessage(String message){
    6         System.out.println(message);
    7     }
    8 
    9 }

    同样交由spring管理,然后使用@KafkaListener注解,定义要监听的主题,至于{"${topic}"}这个是读取配置文件中的topic配置项,也是我所定义的主题,但监听到有信息时,

    就会调用这个方法,将信息作为一个字符串参数传递进来,里面就可以写你的业务逻辑了.

    kafka大致使用就是这样,很多细节配置,暂时也不清楚,有机会在补充吧 

  • 相关阅读:
    Logstash利用GeoIP库显示地图以及通过useragent显示浏览器(
    remote tomcat monitor---jmc--jvisualvm
    python AI(numpy,matplotlib)
    rpm package.http://rpmfind.net/
    cpuspeed和irqbalance服务器的两大性能杀手
    什么叫CallBack函数,怎么用回调函数?
    发送微博消息
    curl抓取信息
    JavaScript键盘事件全面控制代码
    js实现网页收藏功能,动态添加删除网址
  • 原文地址:https://www.cnblogs.com/java888/p/12411553.html
Copyright © 2020-2023  润新知