规划集群与索引
云搜索服务(Cloud Search Service,简称CSS),支持灵活选择集群版本、集群架构、存储机型、集群节点数量、存储容量和索引分片数。您可以根据业务的读写请求、数据存算和搜索与分析等需求进行自由组合。
CSS集群选型主要包括以下内容:
集群版本
CSS中Elasticsearch搜索引擎的版本选择建议如下:
- 当首次使用CSS Elasticsearch集群,建议选择7.10.2或7.6.2版本。
- 如果是已有Elasticsearch集群迁移至CSS使用,当需要对迁移集群进行代码改造时,建议选择创建7.10.2或7.6.2版本的Elasticsearch集群;当希望基于之前版本完成集群迁移时,建议创建和原集群大版本一致的Elasticsearch集群。
集群架构
CSS支持读写分离、冷热分离、存算分离、角色分离、跨AZ部署等多种架构。
架构 |
适用场景 |
用户价值 |
---|---|---|
读写分离 |
生产业务,读多写少,数据写入后实时可见性要求低(10s+)。 |
高并发、低时延 |
冷热分离 |
日志业务,冷数据查询性能要求低。 |
低成本 |
存算分离 |
日志业务,冷数据不需要更新,并且冷数据查询性能要求低(10s+);可以和冷热分离结合使用,构建“热-温-冷”3级存储。 |
低成本 |
角色分离 |
集群的规模较大、集群中的索引数量较多或集群可扩展性要求高。 |
高可用 |
跨AZ部署 |
对可用性要求非常高的生产业务,或采用本地盘时。 |
高可用 |
存储机型
CSS支持云盘和本地盘两种机型。
- 云盘机型包括:计算密集型(CPU:内存=1:2)、通用计算型(CPU:内存=1:4)、内存优化型(CPU:内存=1:8)。
- 本地盘机型包括:磁盘增强型(挂载HDD盘)、超高IO型(挂载SSD盘)。
机型 |
分类 |
适用场景 |
---|---|---|
计算密集型 |
云盘 |
推荐场景:数据量较少(单节点<100GB)的搜索场景。 |
通用计算型 |
云盘 |
通用场景:用于单节点数据量在100-1000GB间的搜索与分析场景,例如中等规模的电商搜索、社交搜索、日志搜索等场景。 |
内存优化型 |
云盘 |
通用场景:用于单节点数据量在100-2000GB间的搜索与分析场景 向量检索场景:大内存有利于提升集群的性能与稳定性。 |
磁盘增强型 |
本地盘 |
日志场景:用于存储冷数据,冷数据的数据查询性能要求低,并且数据需要更新的场景。 |
超高IO型-鲲鹏 |
本地盘 |
大型日志场景:用于存储热数据。 |
超高IO型-X86 |
本地盘 |
大型搜索与分析场景:场景对计算或磁盘IO均有较高要求,例如舆情分析、专利检索、以及部分数据库加速场景。 |
集群节点数量
当CSS集群的构架与机型确定后,集群的节点数主要由业务对性能的要求决定。
类型 |
性能基线 |
节点数量计算方式 |
示例 |
---|---|---|---|
写入节点 |
|
写入节点数=业务峰值时的流量/单节点的核数/单核写入性能基线*副本数 |
业务峰值写入100MB/s,使用16u64g的节点,预计需要100/16/1*2 = 12个节点。 |
查询节点 |
相同节点,不同业务场景下的性能差异非常大,单节点的性能基线难以评估。这里以业务平均查询响应时间作为查询的性能基线进行测算。 |
查询节点数=QPS/{单节点的核数*3/2/平均查询响应时间(s)}*分片数量 |
查询QPS要求1000,平均查询响应时间100ms,索引规划3个分片,使用16u64g的节点,预计需要1000/{16*3/2/0.1}*3 = 12个节点。 |
节点数量 |
/ |
节点数量= 写入节点数 + 查询节点数 |
节点数= 写入节点数 + 查询节点数 = 24个节点数。 |
在同等集群性能的情况下,建议优先选择高配置少节点的集群。例如32C64G*3 节点的集群相比于8C16G*12节点的集群,在集群稳定性和扩容的便捷性上都有一定的优势。因为高配置的集群如果遇到性能瓶颈需要扩容,则只需要横向扩容,即向集群中加入更多同等配置的节点即可;而低配置的集群在扩容节点配置时,则需要纵向扩容。