- 博客(69)
- 资源 (2)
- 收藏
- 关注
原创 数据库慢SQl查询优化
# Time: 2021-05-08T15:10:37.000511+08:00# User@Host: username[password] @ [ip] Id: 220505940# Query_time: 66.684190 Lock_time: 0.000395 Rows_sent: 14 Rows_examined: 58193SET timestamp=1620457837;SELECT fr.id, fr.stock_code, fr.stock_name, fr....
2021-09-08 14:04:16
275
转载 Chrome浏览器Video无法拖动的探索和解决方案
适用于MP4无法通过URL作为静态内容返回的场景。环境:1:spring boot2:客户端 Chrome 浏览器3:播放环境 Video原生标签4:MP4物理路径无法无法直接请求到数据,需通过程序读取到内存然后返回。(如果这个MP4是静态内容,不需要程序处理,则一般不会有这个问题)问题:无法进行拖放或者拖放以后要重头进行播放。故障原因:与Video标签适配的请求未被响应。如何做:1:Chrome浏览器默认请求会在 Header 添加一个Range如下:服务器
2021-09-08 13:43:32
4670
原创 spring boot 国际化
第一步:创建资源文件并配置资源文件地址spring.messages.basename=i18n/messages第二步:参考org.springframework.web.servlet.i18n.LocaleChangeInterceptor 实现自己的拦截器自己实现的拦截器可以添加自己的处理逻辑,比如我添加了从 request 的 header 参数中读取 Accept-...
2019-10-07 22:10:10
469
原创 从n个不重复的整数中随机找出m个不重复的整数,要求时间和空间复复杂度都是O(m)
/** * 从n个不重复的整数中随机找出m个不重复的整数,要求时间和空间复复杂度都是O(m); * 方法一: 随机产生n个不重复的随机数放在一个数组中,然后以数组的下标为界生成一个随机数,然后根据这个随机数(下标地址)获取数值,然后跟前面取到的数值作比较,如果重复,就重新生产,直到取到n个不重复的数为止; * 方法二: 在方法一的基础上,每次将产生的随机数(下标)对应的值和数组的最后一个...
2019-09-18 16:11:14
984
原创 借助Zookeeper实现共享锁
获取锁原理: 1、客户端通过 create() 接口创建一个已存在的持久节点的临时顺序子节点,然后返回一个带序号节点名称; 2、客户端调用 getChildren() 接口获取这个持久节点的子节点列表; 3、通过子节点列表判断自己在已存在子节点中的顺序,如果是第一个子节点(序号最小),那么这个客户端获取到了锁;否在判断自己获取节点的类型,如果是读节点...
2019-06-21 15:09:05
527
原创 借助Zookeeper实现排他锁
排他锁:又称写锁或者独占锁,是一种基本的锁类型。如果事务T1对数据O加上排他锁之后,那么在整个加锁期间,只允许事务T1对数据O进行读写和更新操作,其他任何事务都不能再对这个数据进行任何的类型的操作,直到T1释放了排他锁。 获取锁原理:在Zookeeper中,多个客户端通过create() 接口创建同一个节点,zookeeper会保证最终只有一个客户端能够创建成功;...
2019-06-21 10:22:46
714
1
原创 借助Zookeeper生成全局唯一ID
通过调用Zookeeper 创建节点的API接口可以创建一个顺序节点,并且在API返回的时候返回这个节点的完成名称,这个名称是一个带序号后缀的,然后利用这个特性可以生成全局唯一的ID。package zookeeper.uniqueId;import java.util.concurrent.CountDownLatch;import org.apache.curator....
2019-06-18 10:55:57
1400
原创 java同时启动多个线程(二)
当我们需要同时启动N个线程时, 可以使用java.util.concurrent.CountDownLatch 类解决。demo:import java.util.concurrent.CountDownLatch;public class TestCountDownLatch { public static void main(String[] args) { Count...
2019-03-11 15:13:58
11372
原创 java同时启动多个线程(一)
当我们需要同时启动N个线程时, 可以使用java.util.concurrent.CyclicBarrier 类解决。demo:import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class TestCyclicBarrier {...
2019-03-11 14:59:51
5633
原创 解决 413 Request Entity Too Large
今天测试环境图片上传出现:Status Code:413 Request Entity Too Large这是由于客服端可服务端之间采用了nginx做反向代理,当请求长度超过客户端(client_max_body_size)最大请求,就会出现413 entity too large的错误。所以我们需要设置nginx的客户端最大请求大小:client_max_body_size 10...
2019-03-08 15:00:53
9304
原创 nginx 配置WebSocket代理服务器
http { server { location /chat/ { proxy_pass http://backend; //服务器地址 proxy_http_version 1.1; //webscoket连接代理服务器必须使用http 1.1版本,默认 proxy_set_header...
2019-03-08 14:14:10
1884
原创 ngx_http_sub_module
ngx_http_sub_module配置参数有:sub_filter sub_filter_last_modified sub_filter_once sub_filter_typesngx_http_sub_module 模块是一个过滤器模块,它通过将一个指定的字符串替换为另一个字符串来响应。ngx_http_sub_module的参数可以使用在 http,server,locat...
2018-12-04 16:24:51
1002
1
原创 本地maven库存复制引发的问题
当我们的开发环境不能连网,开发环境maven库只能通过在能连网的环境中全部下载下来再copy到我们的开发环境(把能连网环境的maven库全部copy到开发环境的maven中),这样添加jar包方便,但是容易引发本地maven库不能使用(本地jar包存在,maven总是去从私服中下载,但是开发环境又不能上网,所以出现了不能使用的原因,而且在jar包中还会出现大量以lastUpdate...
2018-12-03 16:05:26
3772
1
原创 class path resource [xx] cannot be resolved to absolute file path because it does not reside
String fileName = "lenovo_data";方式一:ClassPathResource resource = new ClassPathResource("fileName");File file = resource.getFile();方式二:String path = ResourceUtils.getURL("classpath:").toString(...
2018-11-30 15:19:15
5989
2
原创 BeanWrapper 接口
BeanWrapper 接口位于 spring-beans包的 org.springframework.beans包下,默认实现类是BeanWrapperImpl,BeanWrapper是spring提供的用来操作 JavaBean 属性的工具类,使用它可以方便的修改一个对象的属性。public class User { private String userName;...
2018-11-24 22:56:45
458
原创 Elasticsearch 服务器从A服务器copy数据到B服务器
A服务器 copy 数据到B服务器条件:B服务器的版本高于A服务器 要 copay 数据的索引的分片和副本设置 B和A要相同 copy 数据到B服务器相当于把B服务器的数据(配置数据和存储数据)还原到了A服务器的数据Copy 步骤:备份A服务器的数据; 创建B服务器的备份仓库和快照;(说明:仓库名称和快照名称要和A服务器备份数据时的仓库名称和快照名称相同); 用A服务器备份仓库中...
2018-11-12 14:05:55
1227
原创 Elasticsearch 服务器数据的备份与恢复
要备份你的集群,你可以使用 snapshot API。这个会拿到你集群里当前的状态和数据然后保存到一个共享仓库里。这个备份过程是"智能"的。你的第一个快照会是一个数据的完整拷贝,但是所有后续的快照会保留的是已存快照和新数据之间的差异。随着你不时的对数据进行快照,备份也在增量的添加和删除。这意味着后续备份会相当快速,因为它们只传输很小的数据量。 要使用这个功能,你必须首先...
2018-11-09 15:58:06
1298
原创 LinkedList JDK1.8 源码学习
LinkedList 是一个双向链表,有一个头节点first和尾节点last,继承于AbstractSequentialList,实现了接口 List<E>, Deque<E>, Cloneable, java.io.Serializable。 接口 Deque<E> extends Queue<E>,全名 double...
2018-11-06 20:07:11
174
原创 elasticsearch 拼音插件--elasticsearch-analysis-pinyin
elasticsearch-analysis-pinyin:This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin, integrates NLP tools。1、下载地址:https://github.com/medcl/elasticsearch-analysis-...
2018-11-01 19:46:02
2100
原创 elasticsearch笔记——词项查询
全文搜索在执行查询之前会分析查询字符串,词项查询之前不会对查询字符串分词解析。词项查询通常用于结构化数据,比如数字、日期和枚举类。一、term term query 用于词项搜索,查询之前不会对查询字符串进行分词解析,查询参数也不允许指定分词器。{ "query": { "term": { "title": "程序" } }}二、term...
2018-11-01 19:15:50
529
3
原创 elasticsearch笔记——复合查询
复合查询是把一些简单查询组合在一起实现更复杂的查询需求,除此之外还可以控制另外一个查询的行为。一、constant_score constant_score 查询可以包装一个其他类型的查询,并指定评分。{ "query": { "constant_score": { "filter": { "term": {"title": "java&quo
2018-11-01 19:15:41
1700
原创 elasticsearch笔记——嵌套查询
elasticsearch 为了实现水平规模扩展,提供了以下两种形式的查询:一、nested 文档中可能包含嵌套类型的字段,这些字段用来索引一些数组对象,每个对象都可以作为一条独立的文档被查询出来。{ "mappings": { "<type>": { "properties": { ...
2018-11-01 19:15:32
3787
原创 elasticsearch笔记——特殊查询
一、more_like_this more_like_this 查询和提供文本类似的文档,通常用于近似文本的推荐等场景。{ "query": { "more_like_this": { "fields": ["title", "description"], "like": "java vi
2018-11-01 19:15:17
627
原创 elasticsearch笔记——聚合分析
一、指标聚合(1) Max Aggregation 用于最大值统计;(2) Min Aggregation 用于最小值统计;(3) Avg Aggregation 用于计算平均值;(4) Sum Aggregation 用于计算综合;(5) Cardinality Aggregation 用于基数统计。其作用类似于SQL中去重复之后计算集合的长度;(6) Stats Aggrega...
2018-11-01 19:15:06
534
原创 elasticsearch笔记——全文搜索
一、match match query 查询会对查询语句进行分词(可以指定分词器,若没有指定分词器采用默认的标准分词器),分词后查询语句中的任何一个词项被匹配,文档就会被搜索到。如果想查询匹配所有关键词的文档,可以采用“and”操作符。post localhost:9200/books/it/_search{ "query": { "match": { "titl...
2018-11-01 19:14:57
399
原创 Elasticsearch笔记——映射详解
映射也就是 Mapping,用来定义一个文档以及其所包含的字段如何被存储和索引,可以在映射中事先定义字段和数据类型、分词器等属性。 映射可以分为动态映射和静态映射。一、动态映射:文档写入 elasticsearch中时,会根据字段的类型自动识别,这种机制成为动态映射。Elasticsearch 自动推测字段类型规则null =》 没有字段被添加true ...
2018-11-01 19:14:04
1561
原创 Elasticsearch笔记——文档管理
一、新建文档1、put: http://localhost:9200/<index>/<Type>/<Id>,传的JSON是一条记录Document2、post:http://localhost:9200/<index>/<Type>,传的JSON是一条记录Document二、获取文档get http://localhos...
2018-11-01 19:13:50
356
原创 Elasticsearch笔记——索引管理
一、创建索引put http://localhost:9200/<index> ,<index>是索引名,传的JSON是这个索引的数据格式。1、索引名不能包含任何大写字母;2、如果索引已存在,则抛出索引已存在的异常;3、elasticsearch 默认给一个索引设置5个分片1个分片,分派给定之后不再修改,副本可以随时修改;put http://loca...
2018-11-01 19:13:31
426
原创 elasticsearch 中文分词器 elasticsearch-analysis-ik
一、IK分词器安装1、下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases ,选择和elasticsearch对应的版本elasticsearch-analysis-ik-5.4.0.zip,下载并解压。2、在 elasticsearch-5.4.0/plugins/ 目录下新建名为 ik 的文件夹,拷贝elast...
2018-11-01 18:51:43
1072
原创 elasticsearch 下载安装和概念
一、下载地址https://www.elastic.co/downloads/past-releases二、启动1、解压tar文件,切换到 elasticsearch 目录下,打开终端启动命令:./bin/elasticsearch。2、elasticsearch 默认的 http 端口是9200,tcp 端口是9300。3、bin目录:可执行文件目录 config...
2018-11-01 17:35:24
496
原创 Elasticsearch 更新索引分析
假如更新 索引robot_lenovo的索引分析一、关闭索引POST http://localhost:9200/robot_lenovo/_close二、更新索引分析PUT /robot_lenovo/_settings{ "analysis" : { "analyzer":{ "content":{ "type":"custom",...
2018-10-30 16:11:30
1547
2
原创 ArrayList JDK1.8 源码学习
ArrayList 就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素的方法,继承了AbstractList<E>类,实现了List<E>, RandomAccess, Cloneable, java.io.Serializable 接口。一、静态变量// 默认初始化动态数组的大小private static ...
2018-10-29 14:55:05
255
原创 多线程中this、Thread.currentThread() 和 this.currentThread()的区别
结论:Thread.currentThread():获取当前线程的引用,既代码段正在被哪一个线程调用。 this:指当前对象 this.currentThread():与Thread.currentThread()一致,都是调用实验代码:public class CountOperate extends Thread { public CountOperate() {...
2018-10-24 16:42:52
1539
转载 LinkedHashMap 学习
以下基于JDK 1.7LinkedHashMap 继承 HashMap,所以HashMap 有的特性,LinkedHashMap基本上都有。 LinekdHashMap和HashMap的区别LinkedHashMap是HashMap的子类,实现的原理跟HashMap差不多,唯一的区别就是LinkedHashMap多了一个双向循环链表。 因为有双向循环列表,所以LinkedHashMap能...
2018-10-23 11:35:45
5630
原创 Spring MVC 接口防数据篡改和重复提交
一、自定义一个注解,此注解可以使用在方法上或类上使用在方法上,表示此方法需要数据校验 使用在类上,表示此类下的所有方法需要数据校验 此注解对无参数方法不起作用import org.springframework.stereotype.Component;@Target({ElementType.TYPE, ElementType.METHOD})@Retention(Retent...
2018-10-22 19:45:55
1569
原创 HashMap在jdk1.7中和1.8中的不同
一、在jdk1.7中,HashMap存储空间模型是:数组加链表(元素是Entry(链表结构)的数组),数组用来存放key的hash值,链表用来存放键值对值,每一个数组元素对应一个链表,数组和链表的元素都是Entry对向。 public V put(K key, V value) { if (table == EMPTY_TABLE) { infl...
2018-10-22 10:39:26
325
原创 TreeMap 学习
TreeMap 简介TreeMap 是一个有序的key-value 集合,内部通过红黑树实现;TreeMap 继承了AbstractMap类,所以它是一个key-value集合;TreeMap 实现了NavigableMap接口,而NavigableMap接口继承了SortedMap接口,所以它是一个有序的集合;TreeMap 实现了Cloneable接口,所以它能被克隆;Tr...
2018-10-19 16:10:49
328
原创 Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary up
spring boot 上传文件出现以下错误:{"timestamp":1539235200525,"status":500,"error":"Internal Server Error","exception":"org.springframework.web.multipart.MultipartException","message":"Could
2018-10-12 15:16:49
13051
原创 spring boot 整合 HttpClient
第一步:引入HttpClient 的jar包1、httpClient 5.0 开始支持异步(Async)请求;2、httpclient 版本过低上传文件会出,原因是org.apache.http.entity.ContentType 没有方法withParameters(final NameValuePair... params);<dependency> <...
2018-10-12 14:57:31
2023
原创 基数排序
基数排序属于“分配式排序”,又称“桶子法”;时间复杂度是 O(nlog(r)m),r为所采取的基数,m为桶数;是一种稳定的排序算法;空间效率:需要额外的空间,典型的空间换时间的算法;算法步骤:第一步:循环每一个基;第二步:循环内部以一个基为依据,遍历待排序的数据集,将元素放入对应的桶中;第三步:遍历桶,将元素返回到待排序的数据集中。说明:基 => 被排序的...
2018-10-12 11:37:06
127
HQL Hibernate查询语言
2014-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人