spring整合kafka实例

1.依赖jar


	4.0.0
	com.zrj.points
	kafka-consumer
	war
	0.0.1-SNAPSHOT
	kafka-consumer
	http://maven.apache.org
	
		UTF-8
		4.3.3.RELEASE
	


	
		
			junit
			junit
			4.12
			test
		
		
			org.springframework
			spring-beans
			${spring.version}
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
			org.springframework
			spring-context-support
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		
		
			org.springframework
			spring-jms
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework.kafka
			spring-kafka
			1.1.0.RELEASE
		
		
			org.apache.logging.log4j
			log4j-1.2-api
			2.2
		
		
			org.apache.logging.log4j
			log4j-api
			2.2
		
		
			org.apache.logging.log4j
			log4j-core
			2.2
		
		
			org.apache.logging.log4j
			log4j-jcl
			2.2
		
		
			org.apache.logging.log4j
			log4j-slf4j-impl
			2.2
		
	

	
		kafka-consmer
		
			
				maven-compiler-plugin
				
					1.7
					1.7
					UTF-8
				
			
			
			
				org.eclipse.jetty
				jetty-maven-plugin
				9.2.11.v20150529
				
					-Xms456m -Xmx456m -XX:MaxNewSize=456m
						-XX:MaxPermSize=1024m
					10
					
						/
					
					
						9090
					
				
			
		
	


2.生产者

package com.zrj.points;

import java.util.Properties;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class PointsKafkaProducerSimulator {
	
	public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "172.28.40.26:9092");
        props.put("acks", "all");
        props.put("retries", 0);
        props.put("batch.size", 16384);
        props.put("linger.ms", 1);
        props.put("buffer.memory", 33554432);
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        Producer producer = new KafkaProducer<>(props);
        for(int i = 0; i < 100; i++){
            System.out.println("-----" + i);
            producer.send(new ProducerRecord("test", Integer.toString(i), "Msg:"+Integer.toString(i)));
        }
        producer.close();
    }
}

3.消费者

package com.zrj.points;

import java.util.Arrays;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.logging.log4j.LogManager;
import org.springframework.kafka.listener.MessageListener;


/**
 * 业务日志消费者监听器
 * @author qianll
 *
 */
public class PointsKafkaConsumerListener implements MessageListener{
    public void init(){
    	Log log = LogHelper.getLog(LogTypeEnum.PAY);
    	LogManager.getLogger("points").info("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
        System.out.println("SSSSSSSSSSSSSSSSSinit--------------");
    }
    
	@Override
	public void onMessage(ConsumerRecord record) {
		System.out.println("XXXXXXXXXXXX"+record.key()+" : "+record.value());
	}
	
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "172.28.40.26:9092");
        props.put("group.id", "test");
        props.put("enable.auto.commit", "true");
        props.put("auto.commit.interval.ms", "1000");
        props.put("session.timeout.ms", "30000");
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        KafkaConsumer consumer = new KafkaConsumer<>(props);
        consumer.subscribe(Arrays.asList("test"));
        while (true) {
            System.out.println("-----");
            ConsumerRecords records = consumer.poll(9);
            for (ConsumerRecord record : records)
                System.out.printf("XXXXXXXXXXXX"+"offset = %d, key = %s, value = %s", record.offset(), record.key(), record.value());
        }
    }
}

4.spring bean配置




	
    
        
            
                
                
                
                
                
                
                
            
        
    
    
    
        
    
    
    
    
    
    
    
        
        
    
    
    
        
        
        
    


你可能感兴趣的:(kafka)