Kafka——使用java api进行pub & sub

来源:互联网 发布:asp.net 微信商城源码 编辑:程序博客网 时间:2024/05/16 14:00


       之前用过老的api,但是最近在写消费的时候,发现之前老的api很多方法都out了,又去官网看了下最新的0.10.x的api.

1,producer


<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.1.0</version></dependency>


  public static void main(String[] args) {        Properties props = new Properties();        props.put("bootstrap.servers", "192.168.1.31: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<String, String> producer = new KafkaProducer<>(props);        for(int i = 0; i < 100; i++)            producer.send(new ProducerRecord<String, String>("defaultTopic", Integer.toString(i), String.valueOf(i)));        producer.close();    }


2,Comsumer


<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.1.0</version></dependency>
 public static void main(String[] args) {        Properties props = new Properties();        props.put("bootstrap.servers", "192.168.1.31:9092");        props.put("group.id", "test");        props.put("enable.auto.commit", "true");        props.put("auto.commit.interval.ms", "1000");        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");        KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);        consumer.subscribe(Arrays.asList("defaultTopic"));        while (true) {            ConsumerRecords<String, String> records = consumer.poll(10);            for (ConsumerRecord<String, String> record : records)                System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());        }    }



写完java api,可以try一下spring-intergeted,方便,一些池操作可以屏蔽掉,专注业务。






原创粉丝点击