关于生产环境集群部署方式
生产环境中,通常一个节点,只承担一种角色。
因为不同的角色对 系统资源的消耗不同,把角色分开,可以更充分的利用硬件资源,同时也避免了单个节点损坏导致多个角色不可用。
- Master Eligible 负责集群状态信息
- 可使用低配CPU RAM 硬盘 的机器
- Data Node 负责数据存储及客户端请求处理
- 可使用高配的CPU RAM 硬盘或则 SSD
- Ingest 负责数据处理
- 可使用高配CPU 中配RAM 低配硬盘
设置单一角色
关于 Coordinating Node
生产环境中,一些大集群建议配置 Coordinating Only Node,节点只担任 Coordinating Node 角色,主要重做 Load Balance ,以降低 Master 和 Data Node 的负载(高配cpn RAM,低配磁盘)
关于 Master Node
生产中从高可用 & 避免裂脑出发,一般设置 3 台主节点,也就是 配置 3个 Master Eligible Node,这三个中只有 活跃的主节点。负责分片管理,索引创建,集群管理等
如果Coordinating Node 和 Data Node 混合部署
- Data Node 有比较大的内存占用
- Coordinating Node 有时可能会有 开销 很高的查询,导致OOM
- 这些都可能影响Master 节点,导致集群的不稳定性。
ElasticSearch 集群扩展方案
水平扩展 --- 增加数据节点
- 当磁盘容量不足时,可以增加数据节点
- 磁盘读写压力大时,可以增加数据节点
水平扩展 --- 增加Coordinating Only Node
- 集群中有大量的复制及聚合时候,增加Coordinating 节点,增加查询性能
读写分离
Ingest Node 负责集群的写入,使用loadbalance 进行负载均衡。后续写入压力大,可以增加 Ingest Node
集群中Kibana 的部署
实现kibana 的高可用,可以将其部署在Coordinating Node 上,前面使用LoadBalance 进行代理
异地多活部署
一些关键业务,可采用异地多机房部署的方式,一个数据中心故障,还有其他两个数据中心正常使用。
关于异地部署的数据一致性问题,可采用数据多写方式保证,或则使用ES 提供的 CCR(Cross Cluster Replication) 跨级群复制
GTM: Global Traffic Manager
https://www.hugbg.com/archives/2196.html
2020-04-18 12:31 下午 1F
死对任何人都是残酷的,年轻年老、好人坏人都一样。死是平等的,没哪种死亡是特别残酷的,所以死才可怕。品行、年龄、个性、金钱、美貌,这些东西只在生前才有意义。就因能将一切化为乌有,所以怎样的死都是残酷的。 —尸鬼
2020-04-18 8:13 下午 2F
恋ではなく、爱でもなく、もっとずっと 深く重い。 —sweet pool
2020-04-20 1:29 下午 3F
在走廊上跌倒会流鼻血,在人生中跌倒会流眼泪。 —龙虎斗