(基于高并发、高可用性需求设计)
一、环境准备与基础配置
系统与硬件要求
操作系统:推荐Linux(Ubuntu 22.04+/CentOS 7+)
Java环境:
Elasticsearch 8.x以上版本内置JDK,若需手动配置需使用OpenJDK 11+。
禁用系统自带JDK以避免版本冲突(电商场景需确保环境纯净)。
硬件配置:
内存:单节点至少8GB(建议16GB+),电商高并发需预留更高内存。
文件描述符:调整至65536以上(避免日志高吞吐时报错)。
用户与权限管理
创建专用用户(如elastic)运行Elasticsearch,禁止以root启动。
分配目录权限:确保/data/elasticsearch等路径归属该用户。
二、Elasticsearch集群与分片配置
集群部署(电商分片策略)
节点角色分离:
主节点(Master-eligible):至少3台,负责集群管理。
数据节点(Data):根据数据规模横向扩展,电商场景建议每节点配置独立磁盘。
分片与副本设置:
分片数(Shards):按日均日志量预估(如单索引每日100GB,建议分片数=数据节点数×1.5)。
副本数(Replicas):至少1,确保高可用(电商订单类数据可设为2)。
配置文件示例(elasticsearch.yml):
yaml
cluster.name: ecommerce-prod
node.name: data-node-1
node.roles: [data]
network.host: 0.0.0.0
discovery.seed_hosts: [“master-node1:9300”, “master-node2:9300”]
cluster.initial_master_nodes: [“master-node1”, “master-node2”]
xpack.security.enabled: