ElasticSearch(六)-索引
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
索引收缩
索引的分片数是不可更改的,如要减少分片数可以通过收缩方式收缩为一个新的索引。新索引分片数必须是原分片数的因子值,如原分片数是8,则新索引分片数可以为4、2、1 。
收缩流程
先把所有主分片都转移到一台主机上;
在这台主机上创建一个新索引,分片数较小,其他设置和原索引一致;
把原索引的所有分片,复制(或硬链接)到新索引的目录下;
对新索引进行打开操作恢复分片数据;(可选)重新把新索引的分片均衡到其他节点上。
收缩前准备工作
将原索引设置为只读;将原索引各分片的一个副本重分配到同一个节点上,并且要是健康绿色状态。
1234567PUT /my_source_index/_settings{"settings": { "index.routing.allocation.require._name": "shrink_node_name", "index.blocks.write": tru ...
ElasticSearch(三)-常见配置以及配置文件详解
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
Cluster配置
配置
含义
cluster.name: holelin_elasticsearch
所属的集群名,默认为 elasticsearch ,可自定义(最好给生产环境的ES集群改个名字,改名字的目的其实就是防止某台服务器加入了集群这种意外)
Node配置
配置
含义
node.name: holelin_elasticsearch_node01
节点名,默认为 UUID前7个字符,可自定义
node.master: true
指定该节点是否可以作为master节点,默认是true。ES集群默认是以第一个节点为master,如果该节点出故障就会重新选举master。
node.data: true
该节点是否存索引数据,允许该节点存储数据。默认true。
node.client: false
当该值设置为true时,node.master值自动设置为false,不参加master选举。
node.rack
无默认值,为节点添加自定义属性。
node. ...
Linux-shell编程-变量
参考文献
https://github.com/52fhy/shell-book/blob/master/chapter1.md
定义变量
定义变量时,变量名不加美元符号($)
1variableName="value"
注意,变量名和等号之间不能有空格
变量名的命令遵循如下规则:
首字母必须为字母(A-Z,a-z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字
在变量前面加readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
使用 unset 命令可以删除变量。语法:
1unset variable_name
变量被删除后不能再次使用;unset 命令不能删除只读变量。
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号($)
123name="holelin"echo $nameecho ${name}
变量名外面的花括号时可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
变量类型
局部变量 局部变量 ...
SpringBoot-注解@NestedConfigurationProperty
参考文献
示例
依赖
1implementation 'org.springframework.boot:spring-boot-configuration-processor:2.2.2.RELEASE'
JavaConfig:
12345678910111213141516import com.holelin.config.oss.AliYunConfigimport com.holelin.config.oss.MinioConfigimport org.springframework.boot.context.properties.ConfigurationPropertiesimport org.springframework.boot.context.properties.NestedConfigurationPropertyimport org.springframework.stereotype.Component@Component@ConfigurationProperties(prefix = "oss")open ...
Linux-shell脚本编程(二)
用cat进行拼接
cat: (concatenate)拼接,cat命令不仅可以读取文件和拼接数据,它还能够从标准输入中进行读取。要从标准输入中读取,就要使用管道操作符:
123OUTPUT_FROM_SOME COMMANDS | catehco 'Text through stdin' | cat - file.txt- 被作为来自stdin文本的文件名
cat file1 file2 file3
压缩空白行
cat -s file.txt
cat file.txt | tr -s '\n'
将制表符显示为^|
cat -T file.txt
显示行号:cat -n file.txt
录制和回放终端
script -t 2> timing.log -a output.session 输入exit退出
timing.log文件用于存储时序信息,描述每个命令在何时运行
out.session文件用于存储命令输出。
-t 选项用于将时序数据stderr
2>则用于stderr重定向到timing.log
...
知识点-格式字符
字符格式
d格式字符
用来输出十进制整数
%d,按整型数据的实际长度输出。
%md,m为指定的输出字段的宽度。
%ld,输出长整型数据。
o格式符
以八进制整型式输出整数。
x格式符
以十六进制数形式输出整数。
u格式符
用来输出unsigned型数据,即无符号数,以十进制形式输出。
c格式符
用来输出一个字符。
s格式符
用来输出一个字符串。
f格式符
用来输出实数(包括单双精度),以小数形式输出。
e格式符
以指数形式输出实数。
g格式符
用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。
p格式符
用于变量地址的输出。
Linux-shell脚本编程(一)
参考文献
Linux Shell脚本攻略
脚本开头
1# !/bin/bash
查看环境变量
查看所有环境变量env
查看单个程序的环境变量
pgrep <程序名称>
cat /proc/$PID/environ
示例
12345678910111213[root@holelin ~]# pgrep java2375829629[root@holelin ~]# cat /proc/23758/environ | tr '\0' '\n'SHELL=/bin/bashUSER=jenkinsPATH=/sbin:/usr/sbin:/bin:/usr/binPWD=/LANG=en_US.UTF-8HOME=/var/lib/jenkinsSHLVL=2LOGNAME=jenkins_=/usr/local/jdk1.8/bin/java
获取字符串长度
12[root@holelin ~]# echo ${#USER}4
识别当前的shell版本
1234[root@holeli ...
MySQL(十三)-缓冲池
参考文献
极客时间–SQL必知必会(陈旸)
数据库缓冲池
缓冲池是如何读取数据的?
缓冲池管理器会尽量将经常使用的数据保存起来,在数据库在进行页读操作的时候,首先会判断该页是否在缓冲池中,如果存在就直接读取,如果不存在,就会通过内存或磁盘将页存放到缓冲池中,再进行读取.
缓存在数据库中的结构和作用如下图
执行SQL语句的时候更新了缓冲池的数据,那么这些数据是否会同步到磁盘上?
对数据库中的记录进行修改的时候,首先会修改缓冲池中页里面的记录信息,然后数据库会以一定的频率刷新到磁盘上.注意并不是发生更新操作,都会立即进行磁盘回写.缓冲池会采用与一种叫做checkpoint的机制将数据写到磁盘上,这样做的好处就是提升了数据库的整体性能.
当缓冲池不够用时,相应释放掉一些不常用的页,就可以强行采用checkpoint的方式,将不常用的脏页写会到磁盘上,然后再从缓冲池中将这些页释放掉.
脏页指的是缓冲池中被修改过的页,与磁盘上的数据页不一致.
查看缓冲池的大小
MySQL MyISAM存储引擎,它只缓存索引,不缓存数据,对应的键缓存参数为key_buffer_s ...
Nginx-模块
参考文献
Nginx模块结构图
Nginx-学习笔记(一)
参考文献
深入理解Nginx模块开发与架构解析 陶辉
极客时间 Nginx核心知识150讲 陶辉
Nginx的优点
高并发,高性能
可扩展性好
高可用
热部署
BSD许可证
Nginx的三个应用场景
静态资源服务
通过本地文件系统提供服务
反向代理服务
Nginx的强大性能
缓存
负载均衡
API服务
OpenResty
Nginx的组成
Nginx二进制可执行文件
由各个模块源码编辑出的一个文件
nginx.conf配置文件
控制Nginx的行为
默认放置于/usr/local/nginx/conf, /etc/nginx或 /usr/local/etc/nginx。
access.log访问日志
记录每一条HTTP请求信息
error.log错误日志
定位问题
nginx.pid 进程ID文件
默认放置于/usr/local/nginx/logs或 /var/run
Nginx版本
开源免费的Nginx http://www.nginx.org
商业版的Nginx Plus http://www.nginx.com
...