前言
单机ES做数据存储,必然面临两个问题:海量数据的存储,单点故障。
如何解决这两个问题?
- 海量数据的存储问题: 将索引库从逻辑上拆分为N个分片(shard),存储到多个节点。
- 单点故障问题: 将分片数据在不同节点备份(replica)
缺点是什么? 造成资源的消耗的N倍的。
一、搭建ES集群
使用docker容器模拟ES的节点
1、一键启动文件 docker-compose.yml
version: '2.2'
services:
es01:
image: elasticsearch:7.12.1
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200