java程序猿使用ES必踩的深坑

不废话上报错代码:

 org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{CHeAlX6qQ3amsvz1MOXKWg}{172.16.0.118}{172.16.0.118:9200}]
spring:
  	data:
    elasticsearch:
      cluster-name: class_name
      cluster-nodes: 172.16.0.118:9200
      local: true
      repositories:
        enabled: true

如果你的代码中出现了以上报错,恭喜你已经踏入了误区,肯定在配置文件是以上形式配置的,能看出什么问题来吗?
那就要从我们安装es的时候,配置es的yaml文件来说了,以下四个步骤:

cluster.name: class_name // es集群的名称,根据自己业务场景定义
cluster.node: node-1 // 当配置集群的时候,当前节点的node名称,一定与其他节点不重复
network.host: 127.0.0.1 // 配置本机内网ip(不是127.0.0.1,需要根据你服务器的内网IP来定)
http.port: 9200 // 暴露本地监听绑定的ip地址,自定义即可(重点、重点、重点)

看完上面的配置,前三条基本不会出差错,第四点一定要注意:
实际上es启动时会监听两个端口,9300和9200,有什么区别吗?必须有,
9300端口是使用tcp客户端连接使用的端口,属于内网访问;
9200端口是通过http协议连接es使用的端口,暴露外网访问。

换句话说,ES的http访问端口是9200,所以下意识地以为java编程中也是9200,然而java客户端走的不是http,而是TCP协议,而ES的TCP协议的端口是9300,因此把端口改为9300就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值