使用spring-kafka操作kafka




org.springframework.kafka
spring-kafka
1.1.1.RELEASE



消息生产者
消息生产者spring配置
spring-producer.xml


    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://www.springframework.org/schema/context 
         http://www.springframework.org/schema/context/spring-context.xsd">
  
   
  
   
   
       
           
               
               
               
               
               
               
                                    value="org.apache.kafka.common.serialization.IntegerSerializer" />
                                    value="org.apache.kafka.common.serialization.StringSerializer" />
           

       

   

  
   
            class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
       
           
       

   

  
   
   
       
       
       
   






消息生产者测试类
KafkaProducerTest.java

package com._656463.demo.kafka.springkafka;
  
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:spring/spring-producer.xml")
public class KafkaProducerTest {
  
    @Autowired
    private KafkaTemplate kafkaTemplate;
  
    @Test
    public void testTemplateSend() {
        kafkaTemplate.send("test1", "www.656463.com");
    }
}




消息消费者
消息消费者spring配置
spring-consumer.xml


    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://www.springframework.org/schema/context 
         http://www.springframework.org/schema/context/spring-context.xsd">
  
   
  
   
   
       
           
               
               
               
               
               
                                    value="org.apache.kafka.common.serialization.IntegerDeserializer" />
                                    value="org.apache.kafka.common.serialization.StringDeserializer" />
           

       

   

  
   
            class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
       
           
       

   

  
   
   
  
   
            class="org.springframework.kafka.listener.config.ContainerProperties">
       
       
   

  
   
            class="org.springframework.kafka.listener.KafkaMessageListenerContainer"
        init-method="doStart">
       
       
   






Kafka消费者监听器
KafkaConsumerListener.java

package com._656463.demo.kafka.springkafka;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.MessageListener;
  
public class KafkaConsumerListener implements MessageListener {
    @Override
    public void onMessage(ConsumerRecord record) {
        System.out.println(record);
    }
}


启动spring容器测试消息消费
KafkaConsumerTest.java


package com._656463.demo.kafka.springkafka;
  
import org.springframework.beans.BeansException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
public class KafkaConsumerTest {
    public static void main(String[] args) {
        try {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    "classpath:spring/spring-consumer.xml");
            context.start();
        } catch (BeansException e) {
            e.printStackTrace();
        }
  
        synchronized (KafkaConsumerTest.class) {
            while (true) {
                try {
                    KafkaConsumerTest.class.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

相关内容推荐