- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 解决es查询数据出现buffer limit超过大小的问题
1. 查询数据量较大时,出现异常:(截取部分)java.io.IOException: entity content is too long [13625] for the configured buffer limit [1024]解决方案:找到RequestOptions类这里就是es初始化的读取到内存的数据大小了,即buffer limit。我们在项目的src目录下新建org.elasticsearch.client,并把class文件复制到该目录下并自己设..
2021-12-04 23:06:07
4900
5
原创 ES的聚合操作(API版本)
doc_value / field_data区别,课后需要理解下语法 GET irs_mail_standard/_search { "size": 0,[控制不显示hits] "aggs": { "NAME1": { "AGG_TYPE": { "field":"<field_name>", "size": 10, "order": "as......
2021-10-20 21:46:29
671
原创 记使用freemarker的坑
需求描述:需要将数据转存为图片在前端展示。查阅资料后使用ftl模板,后续填充数据后使用freemaker进行html转png,之后将png输出base64到前端进行展示。依赖<!-- freemarker模板引擎--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freema
2021-09-16 18:55:00
706
原创 数据结构学习-二叉查找树(实现并测试)
定义:只有两个子节点的树称为二叉树 满二叉树:如果一个二叉树,每一层的结点树都达到最大值,则为满二叉树 完全二叉树:上一层未满的情况下不允许插入元素 1.结点类的实现:根结点、左子结点、右子结点 public class BinaryNode<Key extends Comparable<Key>,Value> { public BinaryNode left; ...
2021-03-31 11:21:21
579
原创 RabbitMQ的安装,详细步骤
安装包选择:首先最重要的时是选择erlang和rabbitmq的版本erlang官网:https://www.erlang.org/rabbitmq官网:https://www.rabbitmq.com/如果需要以下我示例版本的安装包,可以到我个人中心的下载进行下载。此处以erlang:otp_src_22.0.tar.gz为例,进入rabbitmq官网可以查看对应的erlang版本是否支持otp_src_22.0.tar.gz安装erlang: cd /usr/l
2021-03-19 09:08:57
266
原创 线程池的源码阅读笔记
线程池出现的原因:线程的频繁创建在高并发及大数据量是非常消耗资源的,因此ava提供了线程池 线程池的分类 newCachedThreadPool newFixedThreadPool newScheduledThreadPool newSingleThreadExecutor 不建议使用java提供的4类线程池,因为在效率最高的newCachedThreadPool线程池,队列使用的是无界的,可能会出现OOM现象 线程池原理剖析 corePoolSize:
2021-03-07 17:41:01
153
原创 HashMap源码阅读
JDK1.8本下的HashMapHashMap在JDK1.8中,底层使用的是红黑树配合数组的数据结构,与链表相比,提高了插入的效率;但与完全平衡二叉树相比,查询效率略低。 put方法 JDK1.7和JDK1.8在上述流程中的区别:1.在插入元素时,JDK1.7在链表头部插入元素;1.8是在尾部插入元素2.JDK1.8较1.7相比,计算hash值得到了简化;3.JDK1.8底层是红黑树,1.7是链表;4.resize的扩容机制(待补充)。源码分析:...
2021-03-07 17:16:09
87
原创 单例模式
单例模式饿汉式public class SingleProto1 { // 程序加载即会创建对象 private static SingleProto1 instance = new SingleProto1(); // 防止被别人创建对象 private SingleProto1(){ } // 提供调用方获取对象的方法,保证拿到的是唯一的对象 public static SingleProto1 getInstance(){ return instance;
2021-03-05 13:51:45
120
4
原创 synchronized详解
sychronizedCAS概念需求:创建100个线程,每个线程都对共享变量m增加100,10个线程结束,10个线程运行结束时,m应该等于10000。我们针对以上需求,有许多的实现方法,其中java为我们提供了一个原子类AtomicInteger,代码:待续我们发现代码中并没有使用加锁的明代码,我们深入底层时发现底层调用的compareAndSwap是native方法,即用C++代码实现的,原理是:某个线程拿到共享变量m0,经过计算得到m1,此时再去拿到内存中的m2,比较m0和m2是
2021-03-05 13:32:22
240
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人