- 博客(13)
- 收藏
- 关注
原创 Netty4 Recycler
Recycler Recycler是Netty经常使用的对象池抽象类,通过重用对象,能够避免频繁创建对象和销毁对象带来的损耗。 1. Recycler 抽象类介绍 1. 使用了FastThreadLocal // 每个线程都有自己的stack private final FastThreadLocal<Stack<T>> threadLocal =...
2019-05-22 09:38:35 395
原创 Netty4 FastThreadLocal
FastThreadLocal FastThreadLocal是Netty对jdk中ThreadLocal进行封装和优化,解决jdk中自带的ThreadLocal在线程池使用环境中,有内存泄漏的风险问题。它和ThreadLocal有着一样的功能,从名称来看Fast是快的意思,那么它为什么快?下面我们来讨论一下 如何使用 @Test public void ...
2019-05-21 11:27:44 281
原创 Disruptor源码分析(二) 多生产者模式
在上篇文章中,已经写出为什么disruptor性能为何如此高效,下面我们将对disruptor的多生产者模式的源码进行分析 先写个多生产者模式的demo pom.xml <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> &l...
2018-12-05 18:15:23 662
原创 Disruptor源码分析(一) 单生产者模式
Disruptor为何底层性能如此高效: 1.它的数据结构面:使用环形结构、数组、内存预加载 2.使用单线程写方式和内存屏障 3.消除伪共享(有很多地方用到) 4.使用序号栅栏和序号配合来消除锁,CAS 下面我们以单生产者模式写demo pom.xml <dependency> <groupId>com.lmax</groupId> <...
2018-12-05 11:36:00 668
原创 Tomcat7 源码分析--生命周期
Tomcat生命周期设计UML图如下: 1. Lifecycle 主要定义以下几个接口 初始化、开始、停止、销毁、获取监听器、获取当前状态方法等 2.LifecycleBase是对lifecycle 一种抽象实现类,运用抽象模板模式将所有容器的生命周期及状态转换衔接起来,此外还提供了生成LifecycleEvent事件的接口; 3.LifecycleSupport主要针对以下方法做...
2018-09-26 22:09:13 148
原创 Tomcat7 源码分析--Degister使用
tomcat加载server.xml过程 tomcat启动类是Bootstrap,当启动时会去调用init()方法,在这个方法过程中,会设置Catalina path,通过反射将Catalina给实例化 public void init() throws Exception { // Set Catalina path set...
2018-09-26 15:42:09 485
原创 Tomcat7 源码分析--类加载器
Tomcat类加载机制有commonLoader、catalinaLoader、sharedLoader、webappclassLoader,关系如下: commonLoader、catalinaLoader、sharedLoader是在tomcat初始化的时候就被定义了,也就是BootStrap.java main函数启动时,就会调用initClassLoaders() pri...
2018-09-22 22:49:33 409
原创 ElasticSearch6(六) restful风格 高亮显示
ES提供了三种高亮类型,Lucene的plain highlighter,以及fast vector highlighter(fvh)以及posting highlighter 1. plain highlighter plain highlighter 是es的默认高亮选择,占用空间小,但是对大字段高亮慢 { "query":{ "match":{ "conten...
2018-08-23 23:46:20 1226
原创 ElasticSearch6(五) restful风格 聚合查询-管道聚合
聚合分为三大类: 度量聚合:在一组文档中对某一个数字字段进行计算得出指标值 分组聚合:创建多个分组,每个分组都关联一个关键字和相关文档标准。当聚合执行的时候,所有的分组会根据自身标准评估每一个符合的文档。(分组聚合可以嵌套一个或者多个字聚合) 管道聚合:这一类聚合的数据源是其他聚合的输出,然后进行相关指标的计算。 管道聚合 管道聚合工作于其他聚合产生输出结果而不是文档集。 bucket_...
2018-08-17 17:16:23 1309
原创 ElasticSearch6(四) restful风格 聚合查询-分组聚合
聚合分为三大类: 度量聚合:在一组文档中对某一个数字字段进行计算得出指标值 分组聚合:创建多个分组,每个分组都关联一个关键字和相关文档标准。当聚合执行的时候,所有的分组会根据自身标准评估每一个符合的文档。(分组聚合可以嵌套一个或者多个字聚合) 管道聚合:这一类聚合的数据源是其他聚合的输出,然后进行相关指标的计算。 分组聚合 分组聚合不像度量聚合那样通过字段进行计算,而是根据文档创建分组 ...
2018-08-17 15:54:14 1881
原创 ElasticSearch6(三) restful风格 聚合查询-度量聚合
聚合分为三大类: 度量聚合:在一组文档中对某一个数字字段进行计算得出指标值 分组聚合:创建多个分组,每个分组都关联一个关键字和相关文档标准。当聚合执行的时候,所有的分组会根据自身标准评估每一个符合的文档。(分组聚合可以嵌套一个或者多个字聚合) 管道聚合:这一类聚合的数据源是其他聚合的输出,然后进行相关指标的计算。 度量聚合 在一组文档中对某一个数字字段进行计算得出指标值 1.平均值聚合 ...
2018-08-17 00:11:32 438
原创 ElasticSearch6(二) restful风格 高级查询
子条件查询 1. query context(主要是匹配有多好) 在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来表示匹配的程度,旨在判断文档与查询条件的匹配的有多好。返回值有一个Score分数来标识。 match 查询 对查询字段进行分词,匹配一个分词,就能命中 { "query":{ "match":{ "title...
2018-08-16 14:34:25 1135
原创 ElasticSearch6(一) restful风格 基本操作CURD
一 索引创建 1.1 通过head插件去创建索引 1.2 通过 es http api 去创建 PUT http://192.168.239.128:9200/testindex/ Content-Type: application/json { "settings": { "number_of_replicas": 0 }, "mappings": { ...
2018-08-14 15:18:10 803
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人