配置文件 #
可以在每个 Easysearch 节点上找到 easysearch.yml
, 通常为 Easysearch 安装目录下 config/easysearch.yml
。
警告 #
切勿将未受保护的节点暴露在公共互联网上!
常用网络设置: #
Easysearch 默认只绑定到 localhost。
对于生产环境的集群,需要配置基本的网络设置。
- network.host: (静态)节点绑定的主机名或 IP 地址。默认为 local,同时设置了 network.bind_host 和 network.publish_host。
- discovery.seed_hosts: (静态)初始集群节点列表。默认为 [“127.0.0.1”, “[::1]"]。
- http.port: HTTP (静态)请求的绑定端口。默认为 9200-9300。
- transport.port: (静态)节点间通信的绑定端口。默认为 9300-9400。
- network.bind_host: (静态)节点监听传入请求的地址。可以配置为外网地址(例如 0.0.0.0 监听所有接口)或其他特定的地址。
- network.publish_host: (静态)用于节点之间的通信,在多网卡或多网络环境中,应显式设置 network.publish_host。
- discovery.seed_hosts: (静态)提供集群中有资格成为主节点的节点地址列表。也可以是一个包含多个以逗号分隔的地址的单个字符串。每个地址的格式为 host:port 或 host。
- discovery.type: (静态)指定 Easysearch 是否应形成一个多节点集群。如果将 discovery.type 设置为 single-node,Easysearch 将形成一个单节点集群。
- cluster.initial_master_nodes: (静态)设置全新集群中的初始主节点候选节点列表。默认情况下,此列表为空,意味着该节点期望加入已经引导好的集群, 在生产环境中首次启动一个全新的 Easysearch 集群时,必须配置 cluster.initial_master_nodes,以明确哪些节点有资格参与主节点的选举。 当集群完成了首次主节点选举,集群已经正常运行时,就不再需要 cluster.initial_master_nodes 设置了。这时应该从每个节点的配置中移除这项设置。
- node.roles: (静态)定义节点的角色。节点默认具有以下角色:
master, data, ingest, remote_cluster_client
如果设置了 node.roles,则节点只会被分配指定的角色。
分布式集群模式 #
以下配置适用于 Easysearch 的分布式集群模式,确保各节点可以发现彼此并组成一个集群,分布式模式建议 3 个独立的 Master 节点,配置如下:
cluster.name: easysearch
node.roles: [ "master" ]
network.host: 0.0.0.0
http.port: 19201
transport.port: 19301
discovery.seed_hosts: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
cluster.initial_master_nodes: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
数据节点配置如下:
cluster.name: easysearch
node.roles: [ "data" ]
network.host: 0.0.0.0
http.port: 19200
transport.port: 19300
discovery.seed_hosts: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
Master 使用 3 个就够了,数据节点可以根据动态增加。
单节点服务模式 #
如果希望单个 Easysearch 节点模拟集群,能监听所有网卡并提供对外服务供其他主机访问,也就是单节点模式,可以使用以下配置:
cluster.name: easysearch
network.host: 0.0.0.0
http.port: 13200
transport.port: 13300
cluster.initial_master_nodes: ["localhost:13300"]
了解更多,请查看 搭建集群