Kafka相关配置解释
//1. 指定kafka消费者的配置信息
Properties properties = new Properties();
//生产者的配置信息
//生产者的服务器配置
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"Spark:9092")
//配置ByteArray序列化器
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,classOf[ByteArraySerializer])
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,classOf[ByteArraySerializer])
// 事务ID, 唯一不可重复
properties.put(ProducerConfig.TRANSACTIONAL_ID_CONFIG,UUID.randomUUID().toString());
//设置缓冲区的大小
properties.put(ProducerConfig.BATCH_SIZE_CONFIG,16384);
//设置缓冲区中数据的驻留时长
properties.put(ProducerConfig.LINGER_MS_CONFIG,2000);
// 开启幂等操作支持
properties.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG,true);
// ack时机 -1或者all 所有 1 leader 0 立即应答
properties.put(ProducerConfig.ACKS_CONFIG,"all");
// 设置在超时策略结束后仍未收到响应结果时,重复发送的次数
properties.put(ProducerConfig.RETRIES_CONFIG,5);
// 设置请求超时时间
properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 3000);
//消费者相关配置
//消费者的连接服务器参数
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "HadoopNode01:9092,HadoopNode02:9092,HadoopNode03:9092");
//反序列化器 byte[] ---> Object
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
//指定消费组(必须指定)
properties.put(ConsumerConfig.GROUP_ID_CONFIG, "g1");
// 注意:此配置项 修改偏移量消费策略的默认行为
properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
//设置(关闭/开启)消费位置offset的自动提交功能 true or false
properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
//设置经过5s提交一次消费位置的offset
properties.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,5000);
// 修改消费者默认的事务隔离级别
properties.put(ConsumerConfig.ISOLATION_LEVEL_CONFIG,"read_committed");