少加点香菜
码龄6年
关注
提问 私信
  • 博客:218,136
    218,136
    总访问量
  • 33
    原创
  • 1,704,498
    排名
  • 68
    粉丝
  • 0
    铁粉

个人简介:座中泣下谁最多 江州司马青衫湿

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:香港
  • 加入CSDN时间: 2018-10-23
博客简介:

wudingmei1023

博客描述:
闻道有先后,术业有专攻,如是而已
查看详细资料
个人成就
  • 获得118次点赞
  • 内容获得16次评论
  • 获得196次收藏
  • 代码片获得142次分享
创作历程
  • 1篇
    2021年
  • 31篇
    2020年
  • 1篇
    2019年
成就勋章
TA的专栏
  • Elasticsearch
    18篇
  • presto
  • Java小知识
    10篇
  • 源码
    10篇
  • Netty
    1篇
  • Java集合
    2篇
  • 随想
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【Java全栈知识体系】

Java全栈知识体系必看
原创
发布博客 2021.03.04 ·
2640 阅读 ·
2 点赞 ·
2 评论 ·
12 收藏

【Elasticsearch源码】节点的启动和关闭流程分析

1 Node的启动流程节点的启动整体流程如下所示:2 启动过程分析启动入口: 通过启动脚本bin/elasticsearch启动ES,在distribution模块中的/src/bin目录下面,脚本先载入了jvm配置文件jvm.options。最后启动org.elasticsearch.bootstrap.Elasticsearch这个主类中的main方法。 exec \ #执...
原创
发布博客 2020.01.22 ·
9139 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

【Elasticsearch源码】CCR源码分析(二)

接上一篇:【Elasticsearch源码】CCR源码分析(一)。sendShardChangesRequest方法最终进入到ShardChangesAction.TransportAction#shardOperation,跟据上面的read request,从Translog中获取该shard的seq_no范围内的所有Operation,返回最新的shard需要的Operation。 ...
原创
发布博客 2020.01.21 ·
8726 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

【Elasticsearch源码】CCR源码分析(一)

1 CCR的基本概念什么是CCR?CCR( cross-cluster replication):跨集群复制是ES 6.5发布的一个新的特性:可以将两个集群中的数据进行远程复制。集群复制类似于数据订阅的方式,一个集群的数据可以被多个集群订阅,也就是可以被复制到多个集群上面去。CCR 有两个角色,一个是 Leader,表示数据的源头,另外一个Follower,表示数据的订阅方,得到的是数...
原创
发布博客 2020.01.21 ·
12346 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

【Netty简单入门】-为什么Netty人见人爱?

前言最近在看ES源码,Netty贯穿在整个ES之中,想要看懂和更好的理解ES源码,必须首先对Netty有一定的认识和了解,所以简单总结了Netty的一些基本架构和认知, 后续再总结更加深入的Netty知识。什么是Netty,为什么使用NettyNetty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持。作为一个异步NIO框架,Netty的所有IO操作都是异步...
原创
发布博客 2020.01.16 ·
8443 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

【Elasticsearch源码】-7.x源码编译

要学习源码之前,肯定要进行Elasticsearch源码的编译:前期准备首先要下载源码:https://github.com/elastic/elasticsearch/releases,以最新的7.1版本为例,下载源码包:安装JDK和Gradle:JDK需要jdk12以上,Gradle5.2.1,我安装了JDK12和Gradle 5.2.1:JDK和Gradle安装方法自行百度...
原创
发布博客 2020.01.15 ·
6541 阅读 ·
5 点赞 ·
6 评论 ·
3 收藏

【Elasticsearch源码】查询源码分析(二)

接上一篇:【Elasticsearch源码】查询源码分析(一)。上篇讲到请求通过遍历每个shard发送请求,执行executePhaseOnShard方法,转发请求的同时定义了一个Listener,用于监听处理结果。 private void performPhaseOnShard(final int shardIndex, final SearchShardIterator sha...
原创
发布博客 2020.01.15 ·
9808 阅读 ·
8 点赞 ·
0 评论 ·
1 收藏

【Elasticsearch源码】查询源码分析(一)

1 前言前言分析过ES的写入流程源码,详情见【Elasticsearch源码】写入源码分析。Elasticsearch(ES)的查询接口具有分布式的数据检索、聚合分析能力,数据检索能力用于支持全文检索、日志分析等场景,如Github平台上的代码搜索、基于ES的各类日志分析服务等;聚合分析能力用于支持指标分析、APM等场景,如监控场景、应用的日活/留存分析等。本文基于6.7.1版本,主要分...
原创
发布博客 2020.01.14 ·
11730 阅读 ·
6 点赞 ·
0 评论 ·
14 收藏

【Elasticsearch源码】写入源码分析(四)

接上一篇:【Elasticsearch源码】写入源码分析(三)。前面讲到了一个checkpoint(检查点的概念),在每次写入数据过程都需要更新LocalCheckpoint(本地检查点)和GlobalCheckpoint(全局检查点)。3.3 更新checkpoint了解checkpoint之前,先来看下Primary Terms和Sequence Numbers:Primary...
原创
发布博客 2020.01.13 ·
15511 阅读 ·
6 点赞 ·
1 评论 ·
5 收藏

【Java集合】LinkedList源码解析

LinkedList简介LinkedList是基于双向循环链表实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。当然同时也具备了链表的特性:插入和删除元素效率高。LinkedList同样也是非线程安全的,只在单线程下适合使用。同时实现了Serializable接口,因此支持序列化,能够通过序列化传输;实现了Cloneable接口,能被克隆。源码分析核心实现就是通过...
原创
发布博客 2020.01.13 ·
2839 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

【Java集合】ArrayList源码解析

ArrayList简介ArrayList实现了AbstractList类和List接口,是基于数组实现的,是一个动态数组,其大小可以自动增长。所以它具备了数组的优势,可以通过元素索引快速查询,且是有序存储。ArrayList不是线程安全的,多线程下可以考虑使用concurrent包下面的CopyOnWriteArrayList类。同时实现了Serializable接口,因此支持序列化,能够通...
原创
发布博客 2020.01.12 ·
2818 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

【Elasticsearch源码】写入源码分析(三)

接上一篇:【Elasticsearch源码】写入源码分析(二)。3.2.5 写主分片节点流程代码入口:TransportReplicationAction.PrimaryOperationTransportHandler#messageReceived,然后进入AsyncPrimaryAction#doRun方法。检查请求: 1.当前是否为主分片;2.allocationId是否是预期值;...
原创
发布博客 2020.01.11 ·
9640 阅读 ·
4 点赞 ·
2 评论 ·
3 收藏

【Elasticsearch源码】写入源码分析(二)

接上一篇:【Elasticsearch源码】写入源码分析(一)如果需要自动创建索引,则需要遍历bulk的所有index,然后检查index是否需要自动创建,对于不存在的index,则会加入到自动创建的集合中,然后会调用createIndex方法创建index。index的创建由master来把控,master会根据分片分配和均衡的算法来决定在哪些data node上创建index对应的shard...
原创
发布博客 2020.01.11 ·
11776 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

【Elasticsearch源码】写入源码分析(一)

1 前言Elasticsearch(ES)是一个基于Lucene的分布式存储和搜索分析系统,本文希望从源码的角度分析ES在保证数据的可靠性、实时性和一致性前提下,其写入的具体流程。写入也是整个ES系统里面,最主要的流程之一,便于更好的理解ES的内部原理和逻辑,关于ES数据存储结构请参考:【Elasticsearch】原理-Elasticsearch数据存储结构与写入流程。2 写入基本流程...
原创
发布博客 2020.01.11 ·
12572 阅读 ·
11 点赞 ·
1 评论 ·
27 收藏

【Java集合源码分析】关于Java集合你需要知道的是什么

前言Java集合估计是我们开发过程中,用的最多的API了,它位于java.util包下,同时支持多线程的集合类位于java.util.concurrent包下。我们都知道各种数据结构最底层的组成都是数组或者链表,其实各种集合类也是基于最基本的数据结构进行封装,便于各种场景直接使用。我们可以把集合想象成一个容器,它可以存储各种对象,扩展和封装了数组和链表。有了这些认识,是不是集合也变了...
原创
发布博客 2020.01.10 ·
10670 阅读 ·
6 点赞 ·
0 评论 ·
5 收藏

【Java小知识】switch支持String类型的背后原理?

前言大家都知道,从JDK 1.7开始,switch表达式开始支持String字符串,那么它是怎么实现的呢?今天来一探究竟分析首先写一个小demo,如下所示,一个简单的switc语句:public class test { public static void main(String[] args) { test("a"); } publi...
原创
发布博客 2020.01.10 ·
1856 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

【Elasticsearch】优秀实践-ES+Hbase的实现

前言因为之前在项目上,需要用到ES+Hbase方案,最后经过各种测试和验证,最终项目完成上线。因为在实际的过程遇到不少的问题,和理论还是有一定的差距。纸上得来终觉浅,绝知此事要躬行。----古人诚不欺我基本原理很简单,将Elasticsearch的DOC ID和Hbase的rowkey相关联:将源数据根据业务特点划分为索引数据和原始数据:索引数据:指需要被检索的字段,存储在El...
原创
发布博客 2020.01.09 ·
11161 阅读 ·
3 点赞 ·
0 评论 ·
25 收藏

【Elasticsearch】源码-Elasticsearch源码基础模块

ES源码的主要基础模块:ClusterCluster模块主要是主节点执行集群管理的封装实现,管理集群状态,维护集群层面的配置信息等。主要有:管理集群状态,将新生成的集群状态发布到集群的所有节点调用allocation模块执行分片分配,决策那些分片应该分配到哪个节点在集群各节点中直接迁移分片,保持数据平衡Allocation封装了分片分配相关的功能和策略,包括主分片的分配和副本...
原创
发布博客 2020.01.08 ·
1811 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

【Elasticsearch】原理-Elasticsearch数据存储结构与写入流程

1 前言由于Elasticsearch使用Lucene来处理shard级别的索引和查询,因此数据目录中的文件由Elasticsearch和Lucene编写。Lucene负责编写和维护Lucene索引文件,而Elasticsearch在Lucene之上编写与功能相关的元数据,例如字段映射,索引设置和其他集群元数据,用户和支持功能由Elasticsearch提供。2 ES数据2.1 Nod...
原创
发布博客 2020.01.08 ·
11352 阅读 ·
4 点赞 ·
0 评论 ·
29 收藏

【Elasticsearch】优秀实践-Elasticsearch查询调优

前言一个系统查询慢往往是由多种因素造成的,在处理集群查询慢的问题上,先将问题分解。1) 需要观察是系统哪种资源受限,例如内存、CPU或磁盘IO等,是否存在硬件瓶颈;2) 要确定查询语句是否符合业务场景,是否存在查询语句优化空间;3) 最后判断数据结构是否合理,不合理的数据设计对查询的响应影响很大。使用更快的硬件查询性能大部分场景下更多的在于IO能力,很多时候查询速度受限于磁...
原创
发布博客 2020.01.08 ·
8782 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏
加载更多