众所周知 elasticsearch 想要发挥最大功效所占内存也不小,即使是单节点,对于小网站或个人网站而言 1核2G的阿里云也是十分昂贵的支出应该用在刀刃上。
在本地通过 docker 启动 ES:6.4.2 + Kibana:6.4.2 + Logstash:6.4.2(发现它们都有6.4.2这个版本~), 本地是一台2011年的老mac(我是个念旧的人),以前自己动手升过配置: 8G内存 + 256G固态 + 320G机械, mac 的质量杠杠的,用docker的好处就是隔离,通过docker-compose方便快捷,以后如果架设集群也更加容易,一键就能将环境架设好。
现在把 ES 架好后,通过云上架设的frp(打开一条tcp通道)将数据传到本地存储或搜索。
1 | [elasticsearch_mac] |
kafka + zookeeper 为了防止请求数据丢失,本地环境不稳定性或frp阻塞都有可能造成请求失败。
首先我通过 java 服务(spring boot) 将数据写入消息队列(kafka),通过消费kafka的消息并把数据保存到ES上。
1 | 2018-11-14 13:42:54.952 DEBUG 5460 --- [ntainer#0-0-C-1] c.y.e.a.s.f.impl.FeedSearchServiceImpl : {"query":{"term":{"id":{"value":"5bebb5dea2ed430a4a6dfebc","boost":1.0}}}} |
以上只是提供一个可行的思路,学习es顺便给自己网站多添加一个搜索功能,目前主要还是用的solr