java消费kafka数据之后,进行堆积之后在插入数据库
java高频的获取kafka数据,导致数据库数据一致在高频读写,为了降低数据库的高频连接搞高频读写,可以将数据堆积一段时间之后,进行插入数据库操作。
主要采用了队列和缓存,将获取到的数据放入java队列中,利用缓存进行延时判断。
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.0.M2</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>26.0-jre</version></dependency>
@KafkaListener(topics = {"jyz_xxxxxxx"})public void jyz_xxxxxxx(ConsumerRecord<?, ?> record) throws InterruptedException {Optional<?> kafkaMessage = Optional.ofNullable(record.value());String SQL=null;if (kafkaMessage.isPresent()) {Object message = kafkaMessage.get();blockingQueue.offer(message.toString());long startTime= System.currentTimeMillis();long endTime = 0;try {endTime = fifoCache.get("endTime");} catch (Exception e) {endTime = System.currentTimeMillis();fifoCache.put("endTime",endTime);}if(startTime-endTime>=2000){List<String> list = new ArrayList<>();// 转移阻塞队列数据到普通的ListblockingQueue.drainTo(list);SQL = String.join("", list);System.out.println("SQL:"+SQL);endTime = System.currentTimeMillis();fifoCache.put("endTime",endTime);}}}
java消费kafka数据之后,进行堆积之后在插入数据库相关推荐
- Storm 消费Kafka数据及相关异常解决
Storm 消费Kafka数据及相关异常解决 问题 KafkaTopoDemo类 bolt类 问题 storm报错:Exception in thread "main" java. ...
- Java网络爬虫--一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库
一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 目录 一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 第一步:创建项目,搭建项目结构 p ...
- java查看kafka数据量_Java kafka监控 topic的数据量count情况,每个topic的offset,
Java使用kafka的API来监控kafka的某些topic的数据量增量,offset,定时查总量之后,然后计算差值,然后就可以算单位间隔的每个topic的增量,kafka监控一般都是监控的吞吐量, ...
- sparkstreaming监听hdfs目录_Spark Streaming消费Kafka数据的两种方案
下午的时候翻微信看到大家在讨论Spark消费Kafka的方式,官网中就有答案,只不过是英文的,当然很多博客也都做了介绍,正好我的收藏夹中有一篇文章供大家参考.文章写的通俗易懂,搭配代码,供大家参考. ...
- kafka 的pom文件_Flink 消费 Kafka 数据
kafka核心概念: Kafka 是一个消息队列,生产者向消息队列中写入数据,消费者从队列中获取数据并进行消费.可以认为一个 Topic 就是一个队列,每个 Topic 又会被分成多个 Partiti ...
- SparkStreaming安全消费Kafka数据
前言 在这之前做SparkStreaming连接Kafka,我会这么写: val sparkConf = new SparkConf().setAppName("Spark2Kafka&qu ...
- kafka partition分配_logstash消费kafka数据,partition分配不均衡
原因已经查明 消费kafka的时候,如果使用topics_pattern的方式,默认partition_assignment_strategy为Range,应该使用 partition_assignm ...
- Flink Connectors之消费Kafka数据相关参数以及API说明
1-参数设置 以下参数都必须/建议设置上 1.订阅的主题 2.反序列化规则 3.消费者属性-集群地址 4.消费者属性-消费者组id(如果不设置,会有默认的,但是默认的不方便管理) 5.消费者属性-of ...
- python kafka消费实时数据,python生产和消费kafka数据
安装kafka-python pip install kafka-python 生产者 from kafka import KafkaProducer # 有时候导入包会报错,使用pip uninst ...
最新文章
- php函数substr_replace中文乱码的替代解决方法
- 开发安全的 API 所需要核对的清单
- Linq入门演练---(1)基本用法-分组,排序,内连接
- C#中使用MD5对用户密码加密与解密
- 必备的Linux基础命令
- 只腐蚀毛刺 腐蚀算法_去毛刺更省时省力的方式方法大全!
- 【和60】软件即服务的三重境界
- which与whereis区别
- 鸿蒙对比ios流畅对比,鸿蒙OS对比iOS,华为再次“超越”,流畅度大幅领先苹果!...
- 总是收到 i/o timeout 报错,这里有 HTTP 的避坑指南!
- uniapp 日期插件_日期时间选择器
- 基于opencv库把图像灰度化,二值化
- redis命令之哈希表类型lpush命令用法详情
- (一)基于Multisim的超外差接收系统:本地振荡器的设计
- HTML和CSS总结(基础版)
- 删除二叉树节点完整c语言程序以及例子,C语言C++实现二叉树构造与查找删除节点.doc...
- RPL(10):RFC6550翻译(10)---分组转发和环路避免/检测
- 2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】
- latex调整毕业论文目录中章节之间的间距
- 空白符号筛选测试真正能用的空白格符号直接复制即可
热门文章
- Kerberos认证代码分析Can't get Kerberos realm
- Elasticsearch技术解析与实战(一)基础概念及环境搭建
- Python 进阶之路 (十) 再立Flag, 社区最全的itertools深度解析(中)
- 网站福音 如何免费获得HTTPS认证服务?
- 免费当天澳洲运营商全天下载量达1841TB
- 2015-03-12---外观模式,建造者模式(附代码),观察者模式(附代码),boost库应用
- TCP建立连接三次握手及其断开过程
- 阿里巴巴公司DBA笔试题
- PHP 入门 - 1.语言基础
- 实时OLAP分析利器Druid介绍