![](https://img-blog.csdnimg.cn/20210814173517638.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ELK
文章平均质量分 72
主要分享Elastic栈的知识,包括ElasticSearch、Kibana、LogStash、Beats等
IT大狮兄
数据开发,数据治理,数据分析,架构设计
展开
-
ElasticSearch版本控制--java实现
一、前言最近工作中有这样一个ElasticSearch(以下简称ES)写入的场景,Flink处理完数据实时写入ES。现在需要将一批历史数据通过Flink加载到到ES,有两个点需要保证:对于历史数据,ES已有文档,则舍弃旧数据,ES没有则插入历史数据。对于新数据,能对现有的ES数据进行更新。参考ElasticSearch进阶篇(一)–版本控制,可以使用ES的版本实现该需求的开发。二、代码实现及验证代码实现请求写数据时加入version和version_type参数,主要代码如下:Index原创 2021-08-12 08:22:57 · 1475 阅读 · 0 评论 -
ElasticSearch进阶篇(一)--版本控制
一、前言ElasticSearch(以下简称ES)的数据写入支持高并发,高并发就会带来很普遍的数据一致性问题。常见的解决方法就是加锁。同样,ES为了保证高并发写的数据一致性问题,加入了类似于锁的实现方法–版本控制。锁从其中的一个角度可分为乐观锁和悲观锁。对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定会有别的线程过来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。而乐观锁则认为自己在使用数据时不会有别的线程来修改数据,所以不会添加锁,只是在更新或者提交数据的时候去判断之前原创 2021-08-11 15:21:40 · 413 阅读 · 0 评论