0%

Docker for Mac桌面无法打开

一周没用Docker了,有一天需要建个镜像想要用Docker的时候,发现Docker的应用程序怎么也点不开,但是docker -v确实是正常的,docker-compose却无法使用

查看docker镜像的时候又提示

1
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

去对应/var/run目录下确实没找到docker.sock

阅读全文 »

Integer拆装箱问题

来看一个小题目

1
2
3
4
5
6
7
Integer a = 2;
Integer b = 2;
Integer c = 200;
Integer d = 200;

System.out.println(a == b); // true
System.out.println(c == d); // false

这是为啥呢,同样是比较两个相等的数,怎么一个是true一个是false呢

阅读全文 »

健康状态red问题查找

有一天查数据的时候突然报错了,然后看了一下索引,发现该索引的health为red,先看一下索引层级的健康状况

1
GET _cluster/health?level=indices
索引层级健康状态

可以看到所有的分片都未分配

阅读全文 »

elasticsearch基本操作

基于6.8.x版本

统计操作

计算集群中的文档数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
GET _count?pretty
{
"query":{
"match_all": {}
}
}


{
"count": 5091327,
"_shards": {
"total": 10,
"successful": 10,
"skipped": 0,
"failed": 0
}
}
阅读全文 »

elasticsearch6.x写入优化

translog 调整

冲刷操作是将分段从内存移到磁盘,并清除事务日志

默认的配置是

1
2
3
4
5
6
7
8
9
10
11
12
13
"index":{
"translog": {
"generation_threshold_size": "64mb",
"flush_threshold_size": "512mb",
"sync_interval": "5s", // 每隔5s将translog写到磁盘
"retention": {
"size": "512mb",
"age": "12h"
},
"durability": "REQUEST"
}
}

也就是说每个请求都会进行flush,这样保证了数据不会丢失,但是写入性能会很差,可以设置为异步,持久化策略为周期性和一定大小的时候flush

1
2
3
4
5
6
"index": {
"translog": {
"sync_interval": "60s",
"durability": "async"
}
}

这样就调整为60s(sync_interval)刷新一次或者当超过512m(flush_threshold_size)进行刷新

使用批量写入

使用bulk进行批量操作

增加segments的刷新时间

segment作为最小的检索单元,需要将多个segment检索到的数据进行排序合并,调整refresh_interval参数,该时间为文档被索引到数据搜索可见时间间隔,如果对于实时性不那么高的话,可以适当调高,增加该值可以使得更大的部分flush并减少未来的合并压力

刷新之后搜索才能命中新索引的数据

1
index.refresh_interval: 30s