java使用assign订阅,使用SASL_SSL协议的SCRAM-SHA-256加密方式消费kafka数据

news/2024/11/29 4:39:31/
如果不是有要求或者kafka生产者没有消费者群组,就不要用assign方式订阅,还是用subscribe订阅主题,我是被生产者坑了,开始给我说没有消费者群组,所有我只能用assign订阅指定分区,后来才给我说有消费者群组。
import com.alibaba.fastjson2.JSON;
import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.PartitionInfo;
import org.apache.kafka.common.TopicPartition;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;import java.util.*;@Component
public class KafkaConsumerAssign implementsCommandLineRunner {@Value("${ss.pubTopic}")private String pubTopic = "topic";@Value("${ss.kafkaAddress}")private String kafkaAddress = "xx.xx.xxx.xx:8093,xx.xxx.xxx.xx:8093,xx.xxx.xxx.xx:8093";public void autoCommit() {ConsumerDict consumerDict = new ConsumerDict();Properties properties = new Properties();// 指定key与value的反序列化器properties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");properties.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");properties.put("enable.auto.commit", false);//手动提交提交properties.put("bootstrap.servers", kafkaAddress);//kafka连接地址//消费者群组,如果没有群组的话可以写通,若果有消费者组不写会,后面提交偏移量的时候会报错properties.put(ConsumerConfig.GROUP_ID_CONFIG, "group_id");//消费者组
//        properties.put("max.poll.records",50);//单次最大记录数
//        properties.put("session.timeout.ms","50000");//消费者连接的超时时间properties.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username='用户名' password='密码';"); properties.put("security.protocol", "SASL_SSL");//安全协议properties.put("sasl.mechanism", "SCRAM-SHA-256");//加密方式//指定truststore文件properties.put("ssl.truststore.location", "D:/xxx/xx/xxx/xxxxxx.jks");//truststore文件密码properties.put("ssl.truststore.password", "aaaaaa");KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(properties);ArrayList<TopicPartition> topicPartitions = new ArrayList<>();//使用partitionsFor获取该topic下所有的分区List<PartitionInfo> partitionInfos = consumer.partitionsFor(pubTopic);for (PartitionInfo partitionInfo : partitionInfos) {topicPartitions.add(new TopicPartition(partitionInfo.topic(), partitionInfo.partition()));}//使用assign方式订阅kafkaconsumer.assign(topicPartitions);operationKafkaMessage(consumer);}//启动程序后自动启动此kafka客户端@Overridepublic void run(String... args) {new KafkaConsumerAssign().autoCommit();}private void operationKafkaMessage(KafkaConsumer<String, String> consumer) {while (true) {ConsumerRecords<String, String> records = consumer.poll(100);//100ms 自动获取一次数据,消费者主动发起请求//循环所有的分区for (TopicPartition partition : records.partitions()) {List<ConsumerRecord<String, String>> partitionRecords = records.records(partition);//获取每个分区中的所有数据for (ConsumerRecord<String, String> record : partitionRecords) {System.out.println(record.offset() + ": " + record.value());                }//当前的消费到的位置long lastOffset = partitionRecords.get(partitionRecords.size() - 1).offset();//处理完每个分区中的消息后,提交偏移量。consumer.commitSync(Collections.singletonMap(partition, new OffsetAndMetadata(lastOffset + 1)));}}}public static void main(String[] args) {//new KafkaConsumerAssign().autoCommit();}
}

http://www.ppmy.cn/news/274358.html

相关文章

jenkins python api与json api不同

查看jenkins的python api与json api&#xff0c;感觉两者相差不多&#xff0c;但还是有所区别&#xff0c;所以用BeyondCompare进行对比分析。 1、jenkins base url的api对比 左侧的为&#xff1a;http://server:port/jenkins/api/python?prettytrue 右侧的为&#xff1a;h…

kaist数据集国内下载百度云下载链接

好多同学在文章里评论&#xff0c;说找不到kaist数据集的国内下载链接。 所以我将我已知的几个kaist数据集下载下来&#xff0c;并上传到了百度云中&#xff0c;将链接分享了出来。 已知的一些kaist数据集的链接我都放在一个共享表格中了&#xff0c;地址为 https://docs.qq.…

设计模式-03.01-创建型-单例

前言 23 种经典的设计模式。它们又可以分为三大类&#xff1a;创建型、结构型、行为型。对于这 23 种设计模式的学习&#xff0c;我们要有侧重点&#xff0c;因为有些模式是比较常用的&#xff0c;有些模式是很少被用到的。对于常用的设计模式&#xff0c;我们要花多点时间理解…

科比历年全部比赛合集【百度网盘高清分享】

科比所有比赛视频【资源目录】&#xff1a; 五个总冠军夺冠比赛 1996-2010所有常规赛 经典三战&#xff08;退役战、81分、60分&#xff09; 退役赛季71场、退役纪录片&#xff1a;《与科比相遇》、《回望科比》 科比扣篮大赛及生涯扣篮集锦 科比所有奥运会比赛 1996-201…

python海龟绘图画科比标志(turtle库)

闲来无事用海龟绘图画了一个科比的图标&#xff0c;画的比较简陋&#xff0c;有问题欢迎斧正。 话不多说&#xff0c;成品如下&#xff08;加了个背景&#xff09;。其中手为科比手是个背景图片&#xff0c;字体和图案为海龟所画。 代码如下&#xff1a; import turtledef to…

科比精彩视频

科比精彩视频 跟我一样喜欢科比的人,为伟大的科比加油吧. http://s.sogou.com/f?s%BF%C6%B1%C8&tTP$Ks65uG9EpPDEBAAAA&page1&w04000000&dr1 posted on 2007-11-13 13:02 文强 阅读( ...) 评论( ...) 编辑 收藏 转载于:https://www.cnblogs.com/Gerry-BJ/arc…

篮球人物之科比

说起篮球&#xff0c;大家第一想起的是篮球之神迈克尔乔丹、大鲨鱼奥尼尔、黑曼巴科比、小皇帝詹姆斯、小飞侠韦德、金鸡独立诺天王、石佛邓肯、法国跑车帕克&#xff0c;这些在nba取得志高荣誉的超级巨星。 时至今日&#xff0c;退役的退役&#xff0c;坚守的坚守。都在不同的…