服务器要求
下面的建议不包含 minio 的内存占用,如需使用 minio,请另外考虑
1. 核心数和内存大小有两种方案:
o 2 核 4G(使用 ES 搜索策略)
o 2 核 2G(使用 MySQL 搜素策略)
2. 带宽大小有两种方案:
o 使用 oss 对带宽没有要求(本人亲测:1M 带宽+oss 访问速度很快)
o 使用 minio 需要大一点的带宽(小带宽也可以,但需要使用 cdn 加速)
2.docker 的安装
以下命令基于 CentOS 环境。
1. 下载工具
yum install -y yum-utils
2. 设置镜像的仓库
3. yum-config-manager \
4. --add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#配置阿里云的镜像
5. 更新 yum 软件包索引
yum makecache fast
6. 安装 docker 相关配置
yum install docker-ce docker-ce-cli containerd.io
7. 启动 docker
8. systemctl start docker
9. # 查看当前版本号,是否启动成功
10. docker version
11. # 设置开机自启动
systemctl enable docker
3.安装 mysql
方式 1: 无挂载模式
这种方式直接运行 mysql 之后,所有关于 mysql 的内容都在容器中,后续如果
需要修改 mysql 的内容,需要手动进入容器内进行操作。且在宿主机上无备
份,一旦容器被删除,数据也会被删除。
docker pull mysql //下载 MySQL 镜像
docker run --name mysql --restart=always -p 3306:3306 -e
MYSQL_ROOT_PASSWORD=密码 -d mysql //启动 MySQL
方式 2: 数据卷挂载模式
和无挂载模式相对,通过数据卷挂载的方式运行容器,将容器内的部分重要文
件映射到宿主机上。直接操作宿主机对应的映射文件就能和容器内作同步,方
便操作的同时还能保证容器内的数据在宿主机上有一个备份。
下面的命令分别对 mysql 的日志文件、配置文件、数据文件进行了映射,你也
可以自己修改。
docker run -d -p 3306:3306 --restart=always -v
/auroras/mysql/log:/var/log/mysql -v /auroras/mysql/data:/var/lib/mysql -v
/auroras/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=密码 --name
mysql mysql
4.安装 redis
docker pull redis //下载 Redis 镜像
docker run --name redis --restart=always -p 6379:6379 -d redis --
requirepass "密码" //启动 Redis
5.安装 rabbitmq
docker pull rabbitmq:management //下载 RabbitMQ 镜像
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672 -d
rabbitmq:management //启动 RabbitMQ,默认 guest 用户,密码也是 guest。
6.安装 elasticsearch
docker pull elasticsearch:7.9.2
mkdir -p /home/elasticsearch/data/
mkdir -p /home/elasticsearch/config/
1. 编写配置文件
2. echo 'http.host: 0.0.0.0
3. http.cors.enabled: true
http.cors.allow-origin: "*"
'>>/home/elasticsearch/config/elasticsearch.yml
4. 修改文件夹权限
5. chmod -R 777 /home/elasticsearch/
ls -l # 查看文件权限
6. 启动 elasticseach 镜像
7. docker run --name elasticsearch -p 9200:9200 \
8. -p 9300:9300 \
9. -e "discovery.type=single-node" \
10. -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
11. -v
/home/elasticsearch/config/elasticsearch.yml:/usr/shellare/elasticse
arch/config/elasticsearch.yml \
12. -v /home/elasticsearch/data:/usr/shellare/elasticsearch/data \
13. -v /home/elasticsearch/plugins:/usr/shellare/elasticsearch/plugins
\
-d elasticsearch:7.9.2
接下来我们就是拿浏览器访问啦。
在浏览器上输入:服务器 IP 地址:9200
可能出现的问题:
1. 启动成功,但是访问失败的话,查看一下安全组中映射端口是否已经打
开。如果是本地虚拟机,可能与防火墙相关(我用的云服务器,没有测
试,如果有问题,还是需要大家自行去百度||谷歌一下)。
2. -e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小出现了问题。
3. 最后就还有可能是配置文件中出现了问题。
4. echo 'http.host: 0.0.0.0
5. http.cors.enabled: true
http.cors.allow-origin: "*"
'>>/home/elasticsearch/config/elasticsearch.yml
http.host: 0.0.0.0 在冒号后面有一个空格的,这里的配置文件是 yml 格
式,所以一定要严格按照 yml 格式来书写。
安装 ik 分词器
进入已经启动成功的 elasticsearch 容器。
docker exec -it elasticsearch /bin/bash
./bin/elasticsearch-plugin install -analysis-
ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip
ps: 安装的 ik 分词器的版本一定要与 elasticsearch 的版本保持一致
下载过程中如果遇到选择,直接输入 y 回车就可以了。
下载完成之后,退出去,重新启动 elasticsearch 容器。
docker restart elasticsearch
测试 ik 分词器是否安装成功
安装完成后,我们再来进行测试遍,看看有什么样的变化。
postman post 请求分词测试:http://服务器 IP 地址:9200/_analyze
{
"tokenizer":"ik_smart",
"text":"我爱技术"
}
结果
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "爱",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "技术",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 2
}
]
}
7.安装 MaxWell
docker pull zendesk/maxwell //下载 MaxWell 镜像
docker run --name maxwell --restart=always -d zendesk/maxwell bin/maxwell
--user='数据库用户名' --password='数据库密码' --host='IP 地址' --
producer=rabbitmq --rabbitmq_user='MQ 用户名' --rabbitmq_pass='MQ 密码' --
rabbitmq_host='IP 地址' --rabbitmq_port='5672' --
rabbitmq_exchange='maxwell_exchange' --rabbitmq_exchange_type='fanout' --
rabbitmq_exchange_durable='true' --filter='exclude: *.*, include:
aurora.t_article.article_title = *, include: