elasticsearch + kafka + zookeeper + frp 案例

众所周知 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
2
3
4
5
[elasticsearch_mac]
type = tcp
auth_token = xxx
bind_addr = 0.0.0.0
listen_port = 9300

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