身安不如心安,屋宽不如心宽 。

对ES集群的读写操作,读应该连接哪些节点,写应该连接哪些节点?

Elasticsearch | 作者 dreamtwoo | 发布于2021年06月08日 | 阅读数:2399

请问,对ES集群的读写操作,读操作应该连接哪些节点,写操作应该连接哪些节点?
连接节点不同是否对读写有性能影响?
比如 3个master 20个data
集群是如何进行负载均衡的,如何保证性能。
 
另外额外问题:集群进行shard均衡是对读写影响范围如何?
 
已邀请:

yuechen323 - 晨儿哥

赞同来自: Memento dreamtwoo

client --write--> nginx1 -> coor_node1,coor_node2
 
client --read--> nginx2 -> coor_node3,coor_node4

FFFrp

赞同来自:

一般都有一个client节点,不是node节点也不是master节点,这个节点做请求的转发和负载均衡,这样即使这个节点被请求打挂了也不影响集群;一般写数据都是根据ID hash 到一个shardId 这样保证数据分配均匀,读写也会均衡

Memento - Memento

赞同来自:

正好我也有此疑问, 就公司使用ES的这段时间来看, 有几个问题还是疑惑中:
1. master 节点是否需要独立? 正式服现在是master和data混用, 集群整体还是很稳定的;
2. 如何做到读写分离, 主要有两个方面:
    springboot 的 java 项目里主要是读, 应该如何配置;
    logstash 同步 mysql 数据到 ES, 主要是写, 应该如何配置;
之前尝试过 master: false, data: false 设置协调节点, 但是从 kibana 上的监控来看, 这个节点就完全不干活了;
 

要回复问题请先登录注册