[英]Elasticsearch how to take advantage of cluster?
將單節點改為多節點集群后,是否需要采取任何措施來發揮集群的優勢?
例如,我們的應用服務器使用單個ip/port
(我們的單節點的 ip/port)來搜索文檔。
另外logstash、kibana、spark,都指向單個ip/port。
我應該放置load balancer
來利用多節點嗎? 或者我可以免費得到一些東西嗎?
我遵循了以下 docker 文件(只是將網絡模式更改為托管並部署在多個主機上)
es-log-00:
build:
context: .
dockerfile: ./compose/elasticsearch/Dockerfile
args:
- VERSION=${VERSION}
- ELASTICSEARCH_NETWORK_HOST=${ELASTICSEARCH_NETWORK_HOST}
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
- MEM=${MEM}
- ENV=${ENV}
container_name: es-log-00
network_mode: host
environment:
- node.name=node-master
- discovery.seed_hosts=node1,node2
- cluster.initial_master_nodes=node-master,node1,node2
- bootstrap.memory_lock=true
- cluster.name=littlehome-log
- network.publish_host=192.168.1.105
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/lib/elasticsearch:/usr/share/elasticsearch/data
- /var/lib/elasticsearch-backup:/var/lib/elasticsearch-backup
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
es-log-01:
restart: always
build:
context: .
dockerfile: ./compose/elasticsearch/Dockerfile
args:
- VERSION=${VERSION}
- ELASTICSEARCH_NETWORK_HOST=${ELASTICSEARCH_NETWORK_HOST}
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT_SEARCH}
- MEM=${MEM1}
- ENV=${ENV}
container_name: es-log-01
network_mode: host
environment:
- node.name=node1
- discovery.seed_hosts=node-master,node2
- cluster.initial_master_nodes=node-master,node1,node2
- bootstrap.memory_lock=true
- cluster.name=littlehome-log
- network.publish_host=192.168.1.123
volumes:
- /etc/localtime:/etc/localtime:ro
- data-log1:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
您無需執行任何特殊操作即可利用 Elasticsearch 中的並行化。 當集群中有一個包含多個分片的索引時,Elasticsearch 將嘗試平衡集群中每個索引的主分片,當您進行查詢時,它會將查詢發送到保存每個分片的主副本的節點。 然后每個節點將對該分片執行查詢並將結果返回到協調節點,協調節點執行任何排序或聚合並將結果集返回給客戶端。
使用負載均衡器是一個好主意,以防單個節點出現故障,但一般來說,除了每個索引有多個分片外,您無需執行任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.