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