Kafka 1.0.0 d程式碼示例
package kafka.demo; import java.util.HashMap; import java.util.Map; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; /** * * <p>Description: kafka 1.0.0</p> * @author guangshihao * @date 2018年9月19日 * */ public class KafkaProduderDemo { public static void main(String[] args) { Map<String,Object> props = new HashMap<>(); /* * acks,設定傳送資料是否需要服務端的反饋,有三個值0,1,-1 * 0,意味著producer永遠不會等待一個來自broker的ack,這就是0.7版本的行為。 * 這個選項提供了最低的延遲,但是持久化的保證是最弱的,當server掛掉的時候會丟失一些資料。 * 1,意味著在leader replica已經接收到資料後,producer會得到一個ack。 * 這個選項提供了更好的永續性,因為在server確認請求成功處理後,client才會返回。 * 如果剛寫到leader上,還沒來得及複製leader就掛了,那麼訊息才可能會丟失。 * -1,意味著在所有的ISR都接收到資料後,producer才得到一個ack。 * 這個選項提供了最好的永續性,只要還有一個replica存活,那麼資料就不會丟失 */ props.put("acks", "1"); //配置預設的分割槽方式 props.put("partitioner.class", "org.apache.kafka.clients.producer.internals.DefaultPartitioner"); //配置topic的序列化類 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); //配置value的序列化類 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); /* * kafka broker對應的主機,格式為host1:port1,host2:port2 */ props.put("bootstrap.servers", "bigdata01:9092,bigdata02:9092,bigdata03:9092"); //topic String topic = "test7"; KafkaProducer< String, String> producer = new KafkaProducer< String, String>(props); for(int i = 1 ;i <= 100 ; i++) { String line = i+" this is a test "; ProducerRecord<String,String> record = new ProducerRecord<String,String>(topic,line ); producer.send(record); } producer.close(); } } //--------------------------------------------------------------------------------------------------------------------------- package kafka.demo; import java.util.Arrays; import java.util.Properties; import java.util.Random; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.errors.WakeupException; public class KafkaConsumerDemo { public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "bigdata01:9092,bigdata02:9092,bigdata03:9092"); props.put("group.id", "group_test7"); //配置topic的序列化類 props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); //配置value的序列化類 props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); //自動同步offset props.put("enable.auto.commit","true"); //自動同步offset的時間間隔 props.put("auto.commit.intervals.ms", "2000"); //當在zookeeper中發現要消費的topic沒有或者topic的offset不合法時自動設定為最小值,可以設的值為 latest, earliest, none,預設為largest props.put("auto.offset.reset", "earliest "); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList("test7")); //consumer.beginningOffsets(""); try { while(true) { ConsumerRecords<String, String> records = consumer.poll(1000); for(ConsumerRecord<String, String> record: records) { System.out.println("partition:"+record.partition()+" "+record.value()); } //consumer.commitSync(); if((new Random(10)).nextInt()>5) { consumer.wakeup(); } } }catch(WakeupException e) { e.printStackTrace(); }finally { consumer.close(); } } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2214869/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kafka 1.0.0 多消費者示例Kafka
- storm(1.1.3)與kafka(1.0.0)整合ORMKafka
- Kafka程式碼解析Kafka
- 排序程式碼示例排序
- RabbitMQ 程式碼示例MQ
- kafka程式碼解讀Kafka
- Java NIO 程式碼示例Java
- java SPI 程式碼示例Java
- Kafka 1.0.0的安裝使用以及一些命令Kafka
- js程式碼與html程式碼分離示例JSHTML
- 靜態代理程式碼示例
- 視窗程式框架示例程式碼框架
- RSA加密解密示例程式碼加密解密
- pytorch程式碼示例筆記 -- AutogradPyTorch筆記
- FlinkSQL寫入Kafka/ES/MySQL示例-JAVAKafkaMySqlJava
- kafka-log日誌程式碼解析Kafka
- sitemap 檔案填充示例程式碼
- Opencv及常用方法示例程式碼OpenCV
- Kafka簡單示例以及常用命令Kafka
- Kafka java api-生產者程式碼KafkaJavaAPI
- kafka消費者提交方式(程式碼演示)Kafka
- Android HAL 層框架分析以及程式碼示例Android框架
- 支付寶程式碼示例結構說明
- Android Studio 藍芽 示例程式碼(轉)Android藍芽
- Android 相對佈局RelativeLayout 程式碼示例Android
- 影片聊天原始碼,同步、非同步示例程式碼分析原始碼非同步
- python爬蟲之多執行緒、多程式+程式碼示例Python爬蟲執行緒
- spark與kafaka整合workcount示例 spark-stream-kafkaSparkKafka
- 開源無程式碼 / 低程式碼平臺 NocoBase 1.0.0-alpha.15: 新增外掛、改進「配置操作」互動
- 淺談JavaScript程式碼預解析 + 示例詳解JavaScript
- Netty ServerBootstrap 繫結多個埠(程式碼示例)NettyServerboot
- iOS 中常見的幾種鎖-程式碼示例iOS
- 20個Python random模組的程式碼示例Pythonrandom
- Spring 註解學習 詳細程式碼示例Spring
- BQspringboot整合mongodb?changestream的示例程式碼mmuSpring BootMongoDB
- php原聲實現分頁程式碼示例PHP
- 答答租車系統規範程式碼示例
- AngularJS整理(1.0.0)AngularJS