Kafka学习(三)kafka_2.12-1.1.0 整合SpringMVC

准备

  • 一个springMVC基础工程
  • 在pom.xml添加依赖,jackson的版本不能太低,要不然会报错误。
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/deser/std/StdNodeBasedDeserializer
#Kafka

    org.springframework.kafka
    spring-kafka
    2.1.7.RELEASE

#fasterxml

    com.fasterxml.jackson.core
    jackson-core
    2.9.6


    com.fasterxml.jackson.core
    jackson-databind
    2.9.6


    com.fasterxml.jackson.core
    jackson-annotations
    2.9.6


    com.fasterxml.jackson.module
    jackson-module-jaxb-annotations
    2.9.6

  • 创建配置文件spring-context-kafka.xml

配置生产者




    Kafka Configuration

    
    

    
    
        
            
                
                
                
                
                
                
                
                
            
        
    

    
    
        
            
        
    

    
    
        
        
        
    

配置文件zerodbt.properties如下

kafka.bootstrap.servers=192.168.1.211:9092,192.168.1.212:9092,192.168.1.213:9092
kafka.group.id=2
kafka.retries=10
kafka.batch.size=16384
kafka.linger.ms=1
kafka.buffer.memory=33554432
kafka.key.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.value.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.autoFlush=true
kafka.defaultTopic=test

使用方式:

//自动注入
@Autowired
private KafkaTemplate kafkaTemplate;

//使用send方法发送消息
kafkaTemplate.send("qweasd","test","KAFKA分布式消息服务测试");
Kafka学习(三)kafka_2.12-1.1.0 整合SpringMVC_第1张图片

配置消费者

在spring-context-kafka.xml补充如下配置


    
        
            
                
                
                
                
                
                
                
            
        
    

    
    
        
            
        
    

    
    

    
    
        
        
    

    
    
        
        
    

配置文件zerodbt.properties增加如下

kafka.enable.auto.commit=true
kafka.auto.commit.interval.ms=1000
kafka.session.timeout.ms=15000
kafka.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
kafka.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
kafka.topic=qweasd

接收消息处理类com.lczyfz.zerobdt.test.service.KafkaConsumerService

package com.lczyfz.zerobdt.test.service;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.MessageListener;
import org.springframework.stereotype.Service;

/**
 * Created by maple on 2018-07-05.
 */
@Service
public class KafkaConsumerService implements MessageListener {


    @Override
    public void onMessage(ConsumerRecord stringStringConsumerRecord) {
        System.out.println("====================" + stringStringConsumerRecord);
        System.out.println(stringStringConsumerRecord.key());
        System.out.println(stringStringConsumerRecord.value());
    }
}

运行结果

你可能感兴趣的:(Kafka学习(三)kafka_2.12-1.1.0 整合SpringMVC)