标签:ElasticSearch
一、前情提要
项目前期通过AOP切面将日志存储到关系型数据库Mysql中,由于项目需要每种操作都定义日志模板,记录不同的参数,查询时通过维度、用户类型、菜单等来过滤,设计了四张表关联(操作表,日志主体表,操作模板表,参数值表),且日志主体记录的参数和异常采用了CLOB字段并进行了转字符串截取的操作,导致数据量刚上升到两万的时候,日志主体表单表查询已经是龟速(八秒),联表查询更是长达三十多秒,这对于客户是不能忍受的。
考虑到联表查询优化sql的可能性不大(模板表是小表,日志表是大表,查询参数分布在模板表和日志主体表中,且含有大字段,页面没有采用懒加载,需要单行显示全部内容),因此立马投入轻巧简单(快速入门)的ElasticSearch的怀抱。
项目使用的SpringBoot的版本是1.5.7,看了网上的版本需要对应之后,我选择了旧版本中的最新版ElasticSearch2.4.6,并且使用封装好的JPA方法(引入spring-boot-starter-data-elasticsearch 2.2.5 jar包),这样选择虽然调用方便,拿来即用,但是由于项目兼容性,也承担了部分性能、安全、磁盘空间降低的问题。
二、ES安装
1. 准备Java环境
需要Java环境支持,这里再记录一下Java的安装配置过程:
- 下载安装包
- 上传并解压到
/usr/local/java
- 设置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8xxx
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 更新配置
source /etc/profile
- 查看版本验证
java -version
2. 安装ElasticSearch
- 下载elasticsearch-2.4.6.tar.gz
- 解压到某个文件夹
tar -zxvf elasticsearch-2.4.6.tar.gz
- 开放外网访问,修改配置文件elasticsearch.yml
network.host=0.0.0.0
- 启动服务
./elasticsearch -d
- 查看进程
ps -ef |grep elasticseatch
- 验证
curl localhost:9200
- 插件安装
- 直接安装
./bin/plugininstall mobz/elasticsearch-head
- ZIP安装
- 下载elasticsearch-head-master.zip
- 解压到plugins\head
- 访问
localhost:9200/_plugin/head/
- 直接安装