自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 spring容器启动时,MappingJackson2HttpMessageConverter进行了初始化

public void run() { runSafely(new ConversionServiceInitializer()); runSafely(new ValidationInitializer()); //第3步 HttpMessageConverter进行了初始化 runSafely(new MessageConverterInitializer()); runSafely(new JacksonInitializer()); runSafely(new Cha..

2020-10-31 20:02:39 1233

原创 spring容器启动时,Validator在什么时候进行了初始化

同样在第1步的转换器的工作完成后,第2步就开始校验器的初始化了。@Overridepublic void run() { //1、转换器初始化 runSafely(new ConversionServiceInitializer()); //2、校验器初始化 runSafely(new ValidationInitializer()); runSafely(new MessageConverterInitializer()); runSafely(new Jack.

2020-10-27 13:33:29 583 1

原创 spring容器启动时,convert在什么时候进行了初始化

在spring容器进行初始化的过程中,每到一个阶段,都会发布相应的SpringApplicationEvent通知监听相应event的listener。BackgroundPreinitializer就是一个ApplicationListener。而BackgroundPreinitializer 后台预初始化器在监听到ApplicationStartingEvent事件时,开始做相应的初始化。初始化的内容包括:@Overridepublic void run() { runSa.

2020-10-25 23:14:41 437 2

原创 jackson如何关闭USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING

为什么要关闭?如果不关闭,框架会将数据放到Tomcat的线程里的threadLocal里。由于Tomcat的线程正常情况不会回收,所以这个占用会一直存在如何关闭?如果是自己定义的ObjectMapper,其实关闭还是比较容易的private static ObjectMapper objMapper = new ObjectMapper(); static { //虽然提示过期了,但是还是生效的 objMapper.getFactory().d

2020-10-21 12:27:50 849

原创 fastjson中JSON.toJSONString内存泄露如何解决

内存泄露将数据写入到了Tomcat线程池管理的线程中产生原因public static String toJSONString(Object object, // SerializeConfig config, // SerializeFilter[] filters, //

2020-10-18 19:40:19 20935 10

原创 elastic search 7.9.0 中的写入模型

官方解释1、概述es中的索引是被分成了分片,分片就是shard。文档是放在分片上的。每个分片有多个副本。这些副本也可以被理解为replication group。当文档新增和删除的时候,他们要保持和主shard的同步。这样读取数据的时候才能准确。上面这个过程叫做数据副本模型,即data replication modeles中的数据副本模型具体是基于primary-backup model。这种模型描述的是在replication group中,从一个索引的角度看,有一个分片是承担主分片的.

2020-09-20 17:19:25 139

原创 elastic search中的索引分片重新分配

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/delayed-allocation.html索引分片重新分配是指的什么呢?正常情况下一个索引的分片肯定会最终分配在一个node上,但是当这个node网络中断,无法与集群保持心跳后,es集群为了保证数据不丢失,就要进行索引重新分配的动作。比如node 5 失联,在这个时候对于所有主分片在node 5上的索引,master节点会将索引的副本分片变为主分片master节点分

2020-09-20 11:14:46 2739

原创 elastic search中的retention leases

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/index-modules-history-retention.htmlelastic·search有的时候需要回放一些在索引上的操作。拿个具体的场景举例,从Lucene的角度来说,没有删除操作,只有新增和删除操作。所谓的更新操作,也是es将删除和更新封装成了一个原子操作。当一个文档放入Lucene时会有回放操作,但是删除的时候没有,为了弥补这种情况,es提供了一个叫做软删除的

2020-09-19 23:44:31 814

原创 【最佳实践】canal与binlog的关系

canal版本1.1.4经过验证在实例的instance.properties的canal.instance.master.journal.name=mysql-bin.002851canal.instance.master.position=167158844meta.dat的内容如下{"clientDatas":[{"clientIdentity":{"clientId":1001,"destination":"example","filter":""},"cursor":{"

2020-09-18 15:54:25 394

原创 [源码解析] elastic search 8.0.0 的查询原理(一)

每个查询请求都是先将request封装为一个task,然后再异步执行,如下所示public <Request extends ActionRequest, Response extends ActionResponse> Task registerAndExecute(String type, TransportAction<Request, Response> action, Request request, B

2020-09-14 23:29:06 374

原创 [源码解析] elastic search 的查询原理(二)

查询是分为query阶段、fetch阶段和expand阶段,共3个阶段。重点是前2个阶段。在上篇文章说的是query阶段,接下来说fetch阶段。fetch是要解析query阶段的result的//比如有5个分片,当所有的分片都查询完后,开始进入下一个阶段private void successfulShardExecution(SearchShardIterator shardsIt) { final int remainingOpsOnIterator; if

2020-09-14 23:16:08 346

原创 [源码解析] canal1.1.5 Mac调试环境搭建

canal的源码构建工具使用的是maven.对国内程序员而言相对比较熟悉,因为我发现kafka、spring、elastic search 这些国外开发的框架使用的构建工具都是gradle。一、下载源码git地址https://github.com/alibaba/canal二、使用idea 构建把git地址贴进去,开始下载三、执行构建命令在canal工程的根目录下执行根目录位置mvn clean install -Dmaven.test.skip=t.

2020-09-11 12:19:20 513

原创 [源码解析] elastic search 的查询原理

当用Chrome浏览器插件elastic header连接es服务器的时候,调用的api是GET /_nodeses服务器内部使用的handler是Netty4HttpRequestHandler看一下核心的堆栈信息图对于该API,es内置对应的操作是NodesInfoAction.INSTANCE对于Admin有2个变量。如下所示private final ClusterAdmin clusterAdmin;private final IndicesAdmin..

2020-09-08 10:18:54 146

原创 [源码解析] elastic search 8.0.0 的启动过程(四)

本文继续分析启动流程1、ShardLimitValidator集群中每个node上分片的数量最大默认是10002、MetadataCreateIndexService主要负责处理创建索引3、ActionModule里面有一个入参IndexScopedSettings表示索引层面一些内置的参数值,共计120个,里面有很多参数是经常接触的。我们选几个典型的。比如index.search.slowlog.threshold.fetch.trace -> {Set.

2020-09-06 23:33:45 240

原创 [源码解析] elastic search 8.0.0 的启动过程(三)

本文继续介绍elastic search启动流程中涉及的内容及自己的分析1、创建SearchModule和query、aggregations、suggesters相关的模块。创建该模块的意思就是将es本身内置的一些term、phrase等查询方式和plugin中提供的与查询相关的规则都注册到es中。内置的高亮规则及plugin中提供的高亮规则内置的一些评分规则及plugin中提供的高亮规则内置的对查询体的parse方式plugin中提供的,比如常见的WildcardQuery、T..

2020-09-05 23:25:22 186

原创 [源码解析] elastic search 8.0.0 的启动过程(二)

将截止到目前为止设计到的所有对象的配置文件收集起来,又是以list集合的方式,final List<Setting<?>> additionalSettings = new ArrayList<>();然后作为参数创建了一个NodeClient对象。如果Node是节点的静态表现方式,那NodeClient就是节点的动态表示方式,将会执行各种action。action是什么呢,我们到相应的场景再说,在这里可以简单理解为查询、新增文档等动作Plugin是es中放

2020-09-01 23:55:02 262

原创 [源码解析] elastic search 8.0.0 的启动过程(一)

启动的时候刚开始没有做啥,真正开始的执行的入口org.elasticsearch.cli.Command#execute1、创建Environment会利用到elasticsearch home中conf的配置文件,必填项在创建Environment之前先准备核心的关键是获取命令行传入进去的path.home的值,放到setting里。因为在创建Environment的时候,要依据该参数将里面的config、plugins、data、logs、bin、lib、modules

2020-08-30 20:54:29 1769

原创 [源码解析] elastic search 8.0.0 Mac调试环境搭建

阅读源码的第一步是搭建调试环境,笔者使用的版本信息是elasticsearch 8.0,Java14 ,IDEA工具,gradle 6.6.1.一、下载elasticsearch 8.0源码https://github.com/elastic/elasticsearch因为家里网速比较慢,使用的是zip包的方式...

2020-08-30 14:22:39 559

原创 责任链设计模式如何使用

责任链设计模式如何使用https://mp.weixin.qq.com/s/LPFuTAfYmaY03gwMxDsj_A

2020-08-01 13:39:10 107

原创 如何用kibana解析生产巨峰

具体参见:昨天有一股洪流打到服务器上,是平时的n倍,当时钉钉报警了

2020-07-24 23:23:26 70

原创 【ES 6.6.1】如何优化查询性能--routing

具体在:https://mp.weixin.qq.com/s/msBLxsZbCDArU4BPFvfWxA

2020-07-20 22:55:45 230

原创 【ES 6.6.1】如何优化查询性能--分片

详情参见:https://mp.weixin.qq.com/s/SKF0MeTINbdmnfNJW53Wkw

2020-07-19 15:47:28 112

原创 【ES 6.6.1】Mac10.15 如何搭建ES集群

具体参考https://mp.weixin.qq.com/s/_GX58uymq5WM6iknJjWhfA

2020-07-18 21:27:56 101

原创 kafka进程还在,却连不上broker

具体细节参考:https://mp.weixin.qq.com/s/AkjL4EyzgYWDNWmoHm6Tig

2020-07-09 22:25:39 1371

原创 canal如何设置bin-log

前提条件:这是canal的一个新实例,从未启动过。在/conf/example/instance.properties文件中的position info处设置。

2020-07-06 23:53:17 167 1

原创 Prototype如何使用?

设计模式是阅读源码的先修课。Prototype描述了生成实例的一种场景:通过复制生成实例。具体Demo角色1:client可以通俗的理解为 负责调用public class Manager { private HashMap<String,Product> showCase = new HashMap<>(); public void register(String name,Product product){ showCas.

2020-07-06 23:30:59 340 1

原创 elastic search template 操作demo

PUT /_template/template_test{ "index_patterns": ["*test"], "order": 1, "settings": { "number_of_shards": 1, "number_of_replicas": 1 }, "mappings": { "date_detection": false, ...

2020-04-06 20:58:37 186

原创 analyzer使用

POST _analyze{ "tokenizer":"keyword", "char_filter":["html_strip"], "text":"<b>this is my test</b>"}POST _analyze{ "tokenizer": "standard", "char_filter": [{ "typ...

2020-04-06 09:35:54 347

原创 ES如何使用requestbody进行查询

GET kibana_sample_data_ecommerce/_search{ "_source": ["order_date","day_of_week"], "sort":[{"order_date": "desc"}], "from":"10", "size": 2, "query": { "match_all": {} }}如果有一个字段是数...

2020-04-05 22:48:38 224

原创 分词器

ES自带分词器,并通过下面的GET可以查看效果#standard stop simple whitespace keyword patternGET /_analyze{ "analyzer":"simple", "text": "I am a Grown-Color County girl in the running way! 2 flowers"}中文分词器1.do...

2020-04-05 12:01:59 89

原创 Kibana操作命令

POST users/_doc{ "user":"Mike", "post_date":"2019-04-07 09:09:08", "message":"trying out kibana"}PUT users/_doc/2?op_type=create{ "user":"Jack", "post_date":"2019-05-15 09:09:08", "me...

2020-04-04 23:09:11 276

原创 78. Subsets

Given a set ofdistinctintegers,nums, return all possible subsets (the power set).Note:The solution set must not contain duplicate subsets.Example:Input: nums = [1,2,3]Output:[ [3], [1...

2020-01-05 11:00:27 73

原创 938. Range Sum of BST

Given therootnode of a binary search tree, return the sum of values of all nodes with value betweenLandR(inclusive).The binary search tree is guaranteed to have unique values.Example 1:...

2020-01-03 06:30:05 59

原创 215. Kth Largest Element in an Array

Find thekth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.Example 1:Input: [3,2,1,5,6,4] and k = 2Output: 5E...

2019-12-30 06:31:22 57

原创 Path Sum III

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { i...

2019-12-22 20:44:22 62

原创 Path Sum II

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { p...

2019-12-22 20:40:34 53

原创 Path Sum

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { ...

2019-12-22 20:34:53 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除