鱼找水需要时间
千里之行,积于跬步;万里之船,成于罗盘
展开
-
如何对第三方相同请求进行筛选过滤
对时间窗口内的用户行为进行合并处理,过滤重复请求、相同操作被执行多次原创 2023-05-10 23:55:26 · 1069 阅读 · 24 评论 -
Spring-Batch读取数据 文本数据 数据库数据 XML数据 JSON数据
Spring-Batch读取数据 文本数据 数据库数据 XML数据 JSON数据原创 2022-11-14 23:00:01 · 2907 阅读 · 16 评论 -
Elasticsearch和MySQL数据同步(logstash-input-jdbc)全量增量方式同步近千万数据
同步方案:同步读写:最为简单的方式在将数据写到mysql时,同时将数据写到ES,实现数据的双写。异步双写(MQ方式):MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高。定时器程序:相关表中增加一个字段为timestamp的字段,任何crud操作都会导致该字段的时间发生变化,原来程序中的CURD操作不做任何变化;增加一个定时器程序,让该程序按一定的时间周期扫描指定的表,把该时间段内发生变化的数据提取出来;逐条写入到ES中。binlog日志:读取mysql的binlog日志,获取指原创 2022-04-10 00:00:10 · 7063 阅读 · 2 评论 -
Java中的自旋锁,手动实现一个自旋锁
CAS是实现自旋锁的基础,CAS利用CPU指令保证了操作的原子性,已达到锁的效果。自旋是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁, 当线程发现锁被占用时,会不断循环判断锁的状态,直到获取。这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU。原创 2022-12-24 15:45:01 · 2552 阅读 · 24 评论 -
Java 多线程分批同步数据
最近接到一个任务,将mysql中的数据同步到中,要求异步执行,接口不必返回结果,接到请求后后台默默执行就行了。这种情况下其实单线程一页一页去读取写入就可以了,因为不必立刻返回请求结果后台执行5分钟还是十分钟只要能把数据加入到es中就可以了。但是,身为一个优秀的程序员 怎么只能考虑功能的实现不考虑效率问题呢😎😎😎(时间允许的情况下考虑效率对已完成功能的代码做优化),这里就用到了多线程分批导入。注意这里一定要分批,不要所有线程一块去执行 要按批次。.........原创 2022-08-12 22:09:35 · 3322 阅读 · 7 评论 -
Java CyclicBarrier循环屏障 多线程处理数据 性能优化
`CyclicBarrier` 字面意思是循环栅栏,是一个同步的工具,能够允许一组线程去互相等待直到都到达了屏障,`CyclicBarrier`对于涉及到固定大小的线程是非常有用的,线程们必须相互等待。该屏障称之为**循环屏障**,是因为当等待屏障的线程被释放之后,该屏障能循环使用。原创 2022-12-14 23:26:42 · 3409 阅读 · 24 评论