网络配置
在elasticsearch中,客户端通过http与es进行通信;es集群节点间主要通过transport进行通信。
在不同的网络环境下,需要进行相应的网络配置调整。
简单网络环境
单网卡
假设只有一个网络接口A,IP地址为176.33.2.101、http通信端口9200、transport通信端口9300。
# 监听的IP
network.host: 176.33.2.101
# 监听的tcp端口
http.port: 9200
# 监听的tcp端口
transport.port:9300
NAT或者代理
在上述单网卡示例的基础上,存在NAT或者代理时,需要针对NAT进行端口配置。
如Docker启动ES实例使用桥接网络时,便存在NAT。假设现在容器配置为,通过外部9002端口映射到容器内部的http端口9200;通过外部9003端口映射到容器内部的transport端口9300。
网络配置
# 监听所有网络接口
network.host: 0.0.0.0
# 监听的tcp端口
http.port: 9200
# 发布的http通信端口,告诉客户端与其他节点,使用9002与自己通信
http.publish_port: 9002
# 发布的http通信地址,告诉客户端与其他节点,使用该地址与自己通信
http.publish_host: 176.33.2.101
# 监听的tcp端口
transport.port:9300
# 发布的transport通信端口,告诉其他节点,使用9003与自己通信
transport.publish_port: 9003
# 发布的transport通信地址,告诉其他节点,使用该地址与自己通信
transport.publish_host: 176.33.2.101
复杂网络环境
多网卡
假设存在两个网络接口A、B,对应的IP地址为176.33.2.101和176.33.2.102。其中,客户端通过网络接口A与节点进行通信,通信端口为9200;节点间通过网络接口B进行通信,通信端口为9300。
网络配置
# 监听A、B两个网络接口
network.host: 0.0.0.0
# 监听的tcp端口
http.port: 9200
# 发布的http通信地址,告诉客户端与其他节点,使用该地址与自己通信
http.publish_host: 176.33.2.101
# 监听的tcp端
transport.port: 9300
# 发布的transport通信地址,告诉其他节点,使用该地址与自己通信
transport.publish_host: 176.33.2.102
NAT或者代理
在上述多网卡的基础上,又存在NAT(网络地址转换)或者代理时。这意味着,不管是与客户端通信还是与节点间通信,都需要先经过NAT或代理,不能直接访问节点。
如Docker启动ES实例使用桥接网络时,便存在NAT。假设容器配置为,通过外部9002端口映射到容器内部的http端口9200;通过外部9003端口映射到容器内部的transport端口9300。
网络配置
# 监听所有网络接口
network.host: 0.0.0.0
# 监听的tcp端口
http.port: 9200
# 发布的http通信端口,告诉客户端与其他节点,使用9002与自己通信
http.publish_port: 9002
# 发布的http通信地址,告诉客户端与其他节点,使用该地址与自己通信
http.publish_host: 176.33.2.101
# 监听的tcp端口
transport.port: 9300
# 发布的transport通信端口,告诉其他节点,使用9003与自己通信
transport.publish_port: 9003
# 发布的transport通信地址,告诉其他节点,使用该地址与自己通信
transport.publish_host: 176.33.2.102
标签:http,端口,通信,节点,实例,集群,Elasticsearch,port,transport
From: https://www.cnblogs.com/cd-along/p/18058296