Elasticsearch 笔记

By | 2021年12月31日

1 开发模式与生产模式

1.1 开发模式

开发阶段可通过下面命令快速启动ES服务:

# 使用“单节点发现”可以在单节点开发集群中绕过“ bootstrap checks”
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "cluster.name=dev-es" elasticsearch:6.8.0

在另一个台机器上测试是否启动成功:curl ‘http://localhost:9200/?pretty’ 。
其实也可以在另一个台机器浏览器里输入:http://192.168.1.220:9200/?pretty

重要提醒,请设置 cluster.name!spring-data-elasticsearch 的 application.yml 中必须设置 “spring.data.elasticsearch.cluster-name=dev-es”,否则一直报错:”failed to load elasticsearch nodes : org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available”。

1.2 生产模式

//TODO

2 配置

2.1 vm.max_map_count 设置

vm.max_map_count 至少需要设置为 262144 才能用于生产环境。
切换到root用户,修改 /etc/sysctl.conf ,添加:
vm.max_map_count=655360
然后执行命令:sudo sysctl -p
注意:如果是 docker-compose部署,j改的是docker所在的宿主主机。

其他

经测试,spring-data-elasticsearch 的 elasticsearch:jar:6.4.3 可以访问服务器上6.8.0版本elasticsearch。如果显示指定 <elasticsearch.version>6.8.0</elasticsearch.version> 反而会报错。
kabana使用es,添加一条数据,然后查询,完成后写日志!!!

spring里有两个比较好用的操作ES的工具,一个是spring data elasticsearch,一个是Jest。前者连接的是ES的9300端口(TCP连接,把自己伪装成ES的一个节点);后者连接的是ES的9200端口(Http Restful)。因此使用spring data elasticsearch时,配置application.yml文件,端口一定要9300,9300表示TCP端口。9200是给Restful请求提供的接口。

发表评论

您的电子邮箱地址不会被公开。