ggboy

elasticsearch集群

2018-08-24

单机集群配置

  • 修改master服务config/elasticsearch.yml

# ---------------------------------- Cluster -----------------------------------
# 换个集群的名字,免得跟别人的集群混在一起
cluster.name: es-5.5.0-yg

node.name: master
#主机
node.master: true

network.host: 192.168.3.138
#
# Set a custom port for HTTP:
# head访问端口
http.port: 9200
#数据传输端口
transport.tcp.port: 9300

# --------------------------------- Discovery ----------------------------------

discovery.zen.ping.unicast.hosts: ["192.168.3.138:9300", "192.168.3.138:9301", "192.168.3.138:9302"]

# ---------------------------------- Gateway -----------------------------------

# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

  • 修改slave1服务 config/elasticsearch.yml

# ---------------------------------- Cluster -----------------------------------
# 换个集群的名字,免得跟别人的集群混在一起
cluster.name: es-5.5.0-yg

node.name: slave1

network.host: 192.168.3.138
#
# Set a custom port for HTTP:
# head访问端口
http.port: 9201
#数据传输端口
transport.tcp.port: 9301

# --------------------------------- Discovery ----------------------------------

discovery.zen.ping.unicast.hosts: ["192.168.3.138:9300", "192.168.3.138:9301", "192.168.3.138:9302"]

# ---------------------------------- Gateway -----------------------------------

# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

  • 修改slave2服务 config/elasticsearch.yml

# ---------------------------------- Cluster -----------------------------------
# 换个集群的名字,免得跟别人的集群混在一起
cluster.name: es-5.5.0-yg

node.name: slave2

network.host: 192.168.3.138
#
# Set a custom port for HTTP:
# head访问端口
http.port: 9202
数据传输端口
transport.tcp.port: 9302

# --------------------------------- Discovery ----------------------------------

discovery.zen.ping.unicast.hosts: ["192.168.3.138:9300", "192.168.3.138:9301", "192.168.3.138:9302"]

# ---------------------------------- Gateway -----------------------------------

# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

多多节依次类推,更改http.port(提供head访问,不可冲突) 和 transport.tcp.port(数据传输使用,不可冲突)

  • 配置完毕elasticsearch.yml就可以启动服务,谁先启动谁就会被选为master
  • 访问地址 http://localhost:9100

    这是先启动master服务所以他被选为主服务☆表示主服务,如果主服务宕机了会自动选主如图

    这样如果有一个节点宕机也不会影响es服务

  • Spring配置多节点

    <!-- 本地连接 -->
    <elasticsearch:
        transport-client id="localClient" 
        cluster-nodes="192.168.3.138:9300,192.168.3.138:9301,192.168.3.138:9302"  
        cluster-name="es-5.5.0-yg"  
        client-transport-sniff="false" 
    />

    <bean name="localEsClient" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
        <constructor-arg ref="localClient"/>
    </bean>

这里注意一点多节点 cluster-name 必须同一个集群下,代码里操作ElasticsearchTemplate

 @Resource(name="localEsClient")
 private ElasticsearchTemplate elasticsearchTemplate;
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章