云服务器内容精选

  • 审计 云审计 服务(Cloud Trace Service, CTS ),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录 CSS 服务的操作事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 CS S服务支持云审计的操作列表请参见支持云审计的关键操作。 图1 云审计服务 在您开启了云审计服务后,系统会记录 云搜索服务 的相关操作,且控制台保存最近7天的操作记录。如何在云审计服务管理控制台查看最近7天的CSS服务操作记录请参见查看审计日志。
  • 产品规格 当您在 云搜索 服务创建集群时,系统将为您提供多种规格以满足您按需选择的要求。具体规格说明和适用场景请见表1。 表1 节点规格 CPU架构 节点规格类型 CPU内存比 适合场景 X86计算 计算密集型 1:2 CPU较强,适合高计算、要求低时延的搜索场景,比如电商,APP搜索,配合超高IO的磁盘。成本较高,相对于NVMe的本地盘集群可靠性强。 磁盘增强型 1:8 磁盘较大,本地SAS直通盘。适合存储大量数据的日志、舆情场景等场景。一般冷节点优选这种规格。 通用计算型 1:4 默认规格,使用较频繁,各种场景都能使用,如果没有特别要求,可选择该规格。 内存优化型 1:8 内存较大,优势较明显,在内存使用量较多并且对时延没有太大要求的场景可优先选择该规格,比如多聚合(filedata堆内)、排序、列式存储格式DocValue(系统堆外内存)等场景。 超高IO型 1:8 NVMe接口的本地SSD盘,相比磁盘增强型,数据盘较小。适合对时延要求高,写入压力大的场景,比如电商、APP搜索,性能比SSD云盘更好。存在本地盘有崩溃的风险,需要开启副本。 鲲鹏计算 鲲鹏通用计算型 1:2 和1:4 同上X86计算型场景,相比于X86计算型,ARM性价比较高。 鲲鹏超高IO型 1:4 性价比高,NVMe SSD本地盘,价格比超高IO型便宜,并且没有太大的内存浪费。适合低时延、写入高的场景,存在本地盘有崩溃的风险,需要开启副本。
  • 全场景 日志分析 云搜索服务可用于全场景日志分析,包括ELB日志、服务器日志、容器和应用日志。其中Kafka作为消息缓冲队列,用于削峰填谷,Logstash负责数据ETL,Elasticsearch负责数据检索与分析,最后由Kibana以可视化的方式呈现给用户。 性价比高:采用鲲鹏算力、冷热分离、存算分离,成本同比降低30%+。 易用性好:支持丰富的可视化查询语句与拖拽式报表。 强大的处理能力:支持每天百TB级数量入库,提供PB级以上数据处理能力。 图2 全场景日志分析场景
  • 数据库查询加速 云搜索服务可用于加速数据库查询。在电商、物流企业等有订单查询的业务场景,存在数据量大、查询并发高、吞吐大、查询延迟低的要求,关系型数据库具备较好的事务性与原子性,但其TP与AP处理能力较弱,通过将CSS作为备数据库,可提升整个系统的TP与AP处理能力。 高性能:支持文本、时间、数字、空间等数据类型;亿级数据查询毫秒级响应。 高可扩展性:支持200+数据节点,支持1000+个数据字段。 业务“0”中断:规格变更、配置更新采用滚动重启,双副本场景下业务0中断。 图3 数据库查询加速场景
  • 与其他服务之间的关系 CSS与其他服务的关系如图1所示。 图1 CSS与其他服务的关系 表1 CSS服务于其他服务的关系 相关服务 交互功能 虚拟私有云(Virtual Private Cloud,简称VPC) 云搜索服务CSS的集群创建在虚拟私有云(VPC)的子网内,VPC通过逻辑方式进行网络隔离,为用户的集群提供安全、隔离的网络环境。详细请参考虚拟私有云用户指南。 弹性云服务器(Elastic Cloud Server,简称ECS) 云搜索服务CSS的集群中每个节点为一台弹性云服务器(ECS)。创建集群时将自动创建弹性云服务器作为节点。 云硬盘(Elastic Volume Service,简称EVS) 云搜索服务CSS使用云硬盘(EVS)存储索引数据。创建集群时,将自动创建云硬盘用于集群存储。 对象存储服务 (Object Storage Service,简称OBS) 云搜索服务CSS的集群快照存储在对象存储服务(OBS)的桶中。详细请参考对象存储服务用户指南。 统一身份认证 服务(Identity and Access Management,简称 IAM ) 云搜索服务CSS使用统一身份认证服务(IAM)进行鉴权。详细请参考统一身份认证服务用户指南。 云监控服务 (Cloud Eye) 云搜索服务使用 云监控 服务实时监测集群的指标信息,保障服务正常运行。云搜索服务当前支持的监控指标为磁盘使用率和集群健康状态。用户通过磁盘使用率指标可以及时了解集群的磁盘使用情况。通过集群健康状态指标,用户可以了解集群的健康状态。详细请参考云监控服务用户指南。 云审计服务(Cloud Trace Service,简称CTS) 云审计服务(CTS)可以记录与CSS云搜索服务相关的操作事件,便于日后的查询、审计和回溯。详细请参考云审计服务用户指南。
  • CSS权限 默认情况下,CSS服务管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CSS是项目级服务,部署时通过物理区域划分,需要在各区域(如华北-北京1)对应的项目(cn-north-1)中设置策略,并且该策略仅对此项目生效,如果需要所有区域都生效,则需要在所有项目都设置策略。访问CSS时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:CSS服务管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CSS服务支持的API授权项请参见权限策略和授权项。 如表1所示,包括了CSS的所有系统权限。 对于CSS Administrator,由于各服务之间存在业务交互关系,CSS的角色依赖其他服务的角色实现功能。因此给用户授予CSS的角色时,需要同时授予依赖的角色,CSS的权限才能生效。 对于CSS FullAccess和CSS ReadOnlyAccess,可使用这些策略来控制对云服务资源的访问范围。例如,您的员工中有负责软件开发的人员,您希望这类员工拥有CSS的使用权限,但是不希望这类员工拥有删除CSS等高危操作的权限,那么您可以使用IAM为开发人员创建IAM用户,通过授予仅能使用CSS但不允许删除CSS的权限,控制员工对CSS资源的使用范围。 表1 CSS系统权限 系统角色/策略名称 类别 权限描述 依赖关系 CSS Administrator 系统角色 CSS服务的所有执行权限。 该角色有依赖,需要在同项目中勾选依赖的Tenant Guest、Server Administrator和IAM ReadOnlyAccess角色。 终端节点访问集群操作需要依赖VPCEndpoint Administrator系统角色。 部分操作依赖如下授权项: 查看委托列表 iam:agencies:listAgencies iam:permissions:listRolesForAgency iam:permissions:listRolesForAgencyOnProject 自动创建委托 iam:agencies:listAgencies iam:agencies:createAgency iam:permissions:grantRoleToAgency 控制台显示企业项目和预定义标签 eps:enterpriseProjects:list tms:predefineTags:list 快照、词库、日志管理功能使用 obs:bucket:Get* obs:bucket:List* obs:object:List* obs:object:Get* obs:bucket:HeadBucket obs:object:PutObject obs:object:DeleteObject 包年/包月订单创建及支付 bss:order:update bss:order:pay 更多与订单相关操作所需要的授权项请见费用中心细粒度策略。 CSS FullAccess 系统策略 基于策略授权的CSS服务的所有权限,拥有该权限的用户可以完成基于策略授权的CSS服务的所有执行权限。 该策略部分权限有依赖,如果要使用对应的功能,需要在同项目中勾选依赖的权限。 CSS ReadOnlyAccess 系统策略 CSS服务的只读权限,拥有该权限的用户仅能查看CSS服务数据。 该策略部分权限有依赖,如果要使用对应的功能,需要在全局服务中勾选依赖的权限。 部分操作依赖如下授权项: 查看委托列表 iam:agencies:listAgencies iam:permissions:listRolesForAgency iam:permissions:listRolesForAgencyOnProject 控制台显示企业项目和预定义标签 eps:enterpriseProjects:list tms:predefineTags:list 快照、词库、日志管理功能使用 obs:bucket:Get* obs:bucket:List* obs:object:List* obs:object:Get* obs:bucket:HeadBucket 如表2所示列出了CSS常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 CSS FullAccess CSS ReadOnlyAccess CSS Administrator 备注 创建集群 √ x √ - 查询集群列表 √ √ √ - 查询集群详情 √ √ √ - 删除集群 √ x √ - 重启集群 √ x √ - 扩容集群 √ x √ - 扩容实例的数量和存储容量 √ x √ - 查询指定集群的标签 √ √ √ - 查询所有标签 √ √ √ - 加载自定义词库 √ x √ 依赖OBS和IAM权限 查询自定义词库状态 √ √ √ - 删除自定义词库 √ x √ - 自动设置集群快照的基础配置 √ x √ 依赖OBS和IAM权限 修改集群快照的基础配置 √ x √ 依赖OBS和IAM权限 设置自动创建快照策略 √ x √ - 查询集群的自动创建快照策略 √ √ √ - 手动创建快照 √ x √ - 查询快照列表 √ √ √ - 恢复快照 √ x √ - 删除快照 √ x √ - 停用快照功能 √ x √ - 更改规格 √ x √ - 缩容集群 √ x √ -
  • 产品功能 开源兼容 兼容开源Elasticsearch和OpenSearch软件原生接口,并支持Logstash、Beats、Kibana等周边生态。 接入多种数据源 无缝对接FTP/OBS/Hbase/Kafka等多种数据源,仅需简单配置,无需编程。 一键化操作 一键申请集群、一键扩容、一键重启,从小规模测试到大规模上线,所有主要操作都是一键可达。 灵活词库管理 支持自定义词库与拼音分词,支持词库热更新,无需重启,配置即生效。 自定义快照策略 支持用户触发以及定时触发的快照备份能力,支持恢复到本集群以及其他集群的能力,随时恢复误删数据或者迁移数据到新的搜索集群。
  • 访问方式 公有云提供了Web化的服务管理平台,即管理控制台和基于HTTPS请求的API(Application programming interface)管理方式。 API方式 如果用户需要将公有云平台上的云搜索服务集成到第三方系统,用于二次开发,请使用API方式访问云搜索服务,具体操作请参见《云搜索服务API参考》。 控制台方式 其他相关操作,请使用管理控制台方式访问云搜索服务。如果用户已注册公有云,可直接登录管理控制台,在服务列表搜索“云搜索服务”。如果未注册,请单击右上方“注册”,根据界面提示填写用户基本信息,然后单击“同意协议并注册”完成管理控制台用户注册。
  • 什么是云搜索服务 云搜索服务(Cloud Search Service,简称CSS)是一个基于Elasticsearch、OpenSearch且完全托管的在线分布式搜索服务,为用户提供结构化、非结构化文本、以及基于AI向量的多条件检索、统计、报表。云搜索服务是华为云ELK生态的一系列软件集合,为您全方位提供托管的ELK生态云服务,兼容Elasticsearch、Logstash、Kibana、Cerebro等软件。 Elasticsearch和OpenSearch Elasticsearch、OpenSearch是开源搜索引擎,可以实现单机和集群部署,并提供托管的分布式搜索引擎服务。在ELK整个生态中,Elasticsearch集群支持结构化、非结构化文本的多条件检索、统计、报表。Elasticsearch搜索引擎相关内容的深入介绍可参见《Elasticsearch:权威指南》。OpenSearch搜索引擎相关内容的深入介绍可参见《OpenSearch Documentation》。 云搜索服务支持自动部署,快速创建Elasticsearch集群和OpenSearch集群,免运维,内置搜索调优实践;拥有完善的监控体系,提供一系列系统、集群以及查询性能等关键指标,让用户更专注于业务逻辑的实现。 Logstash Logstash是一个开源数据收集引擎,具有实时管道功能。在ELK整个生态中,Logstash承担着数据接入的重要功能,可以动态地将来自不同数据源的数据统一起来,进行标准化的转换,然后将数据发送到指定的位置。 云搜索服务支持快速创建Logstash集群,华为云Logstash是一款全托管的数据接入处理服务,100%兼容开源Logstash的能力。在生产系统中,数据往往以各种各样的形式,或分散或集中地存在于很多系统中。华为云Logstash的出现,能够很轻松的帮助您处理各种来源的数据并转储到华为云Elasticsearch云服务中,从而更加方便的发现其中的价值。同时您也可以单独使用Logstash云服务处理数据发送到其他的系统中。
  • Elasticsearch集群版本特性差异 表1 Elasticsearch集群版本特性 版本特性 5.x版本 6.x版本 7.x版本 多type支持情况 一个index里面支持包含多个type,每个type名称可以自定义。 一个index里面只支持有一个type,type名称可以自定义。 一个index里面只支持有一个type,type名称是固定的,_doc不能自定义。 客户端接入 支持TransportClient,可以同时使用tcp和http进行连接请求。 支持TransportClient,可以同时使用tcp和http进行连接请求。建议使用Java High Level REST Client。 只支持RestClient,只支持使用http进行连接请求。建议使用Java High Level REST Client。 Elasticsearch 5.x版本使用TransportClient接入Elasticsearch集群的样例: // 初始化客户端,连接9300端口 TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); // 关闭客户端 client.close(); Elasticsearch 6.x版本、7.x版本中使用Java High Level REST Client接入集群的样例: // 初始化客户端,连接9200端口 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http"))); // 关闭客户端 client.close(); 模板配置 Elasticsearch 5.x版本中创建模板使用的是template字段。 Elasticsearch 5.x版本样例: PUT _template/template_1 { "template": "te*", "settings": { "number_of_shards": 1 } } Elasticsearch 6.x及以上版本开始使用index_pattern字段。 Elasticsearch 6.x及以上版本样例: PUT _template/template_1 { "index_patterns": ["te*"], "settings": { "number_of_shards": 1 } } boolean类型解析变化 Elasticsearch 5.x版本中如下值都可以被解析成boolean: true, false, on, off, yes, no, 0, 1。 Elasticsearch 6.x及以上版本只接受true/false,其他值会发生异常错误。 以下语句在Elasticsearch 5.x版本不会报错,在Elasticsearch 6.x/7.x版本会直接报错: GET data1/_search { "profile": "noprofile", "query": { "match_all": {} } } JSON格式校验 Elasticsearch 5.x中允许JSON中存在重复的key,后台会自动去掉。 Elasticsearch 6.x及以上版本不允许JSON存在重复的key,会直接报解析错误。 以下语句在Elasticsearch 5.x版本不会报错,在Elasticsearch 6.x/7.x版本中会报错: POST data1/doc { "isl": 0, "isl": 1 } DELETE文档变化 Elasticsearch 5.x中,执行 DELETE index1/doc/1,如果index1不存在,会将index1创建出来。 Elasticsearch 6.x及以上版本,如果执行删除文档的索引不存在,会报错索引不存在。 _alias API校验 Elasticsearch 5.x中,_alias API允许在index字段中指定为别名,能正常解析。 类似的,Elasticsearch 5.x版本中允许使用别名删除一个索引。 Elasticsearch 6.x版本中,_alias API中的index字段只能指定为索引名,不允许是别名。 Elasticsearch 6.x版本中不再允许,必须使用索引名进行删除。 如以下示例,在Elasticsearch 5.x版本中能正常工作,但是在Elasticsearch 6.x版本/7.x版本中会报错: PUT log-2023.11.11 POST _aliases { "actions": [ { "add": { "index": "log-2023.11.11", "alias": "log" } } ] } POST _aliases { "actions": [ { "remove": { "index": "log", "alias": "log" } } ] } 报错信息: { "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "The provided expression [log] matches an alias, specify the corresponding concrete indices instead." } ], "type" : "illegal_argument_exception", "reason" : "The provided expression [log] matches an alias, specify the corresponding concrete indices instead." }, "status" : 400 } 默认配置变化 新建索引默认分片数为5。 新建索引默认分片数为1。 默认routing变化 Elasticsearch 5.x版本/6.x版本使用以下公式计算文档应该落在哪个shard。 shard_num = hash(_routing) % num_of_primary_shards Elasticsearch 7.x版本使用以下公式计算文档应该落在哪个shard routing_factor = num_routing_shards / num_primary_shards shard_num = (hash(_routing) % num_routing_shards) / routing_factor 其中num_routing_shards 可以由以下配置指定。 index.number_of_routing_shards 如果不显式指定,则Elasticsearch会自动计算该值,以达到对索引进行split的能力。 Refresh时机变化 默认定期每秒钟执行refresh。 Elasticsearch 7.x版本中如果没有显式的指定index.refresh_interval,并且索引长时间没有search请求,这里的长时间是由配置index.search.idle.after指定,默认30秒,Elasticsearch就不会再定期的进行refresh,而是等到有新的search请求进来时再进行refresh,这时候进行的search请求会等待,直到下一轮refresh完成才进行检索并返回,所以第一次search请求一般耗时会相对较长。 父熔断器变化 父熔断器是在多个子熔断器中内存统计之和超限的情况下触发,超限阈值为70%。 父熔断器会在堆内存超限的情况下触发,默认超限阈值为95%。 Field Data熔断器阈值变化 Field Data熔断器超限阈值indices.breaker.fielddata.limit默认为60%。 Field Data熔断器超限阈值indices.breaker.fielddata.limit默认为40%。 _all字段支持情况 支持_all字段。 _all字段被废弃。 已删除_all字段,不再支持。 search API返回中hits.total Elasticsearch 5.x版本/6.x版本中,search API返回中,hits.total为数字,表示命中条数: { "took": 0, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 4, "max_score": 1, } } Elasticsearch 7.x版本中,hits.total不再是数字: { "took" : 76, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 4, "relation" : "eq" }, "max_score" : 1.0 } } 其中: value表示命中的条数。 relation表示value参数中的命中条数是否是准确值。 eq表示是准确值。 gte表示命中条数大于等于value参数。 _cache/clear API _cache/clear API支持POST/GET方式。 _cache/clear API只支持POST方式,不再支持GET方式。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 迁移场景 不同数据来源的集群,迁移方案会有差别,本章主要介以下场景的迁移方案。 源端为Elasticsearch的集群迁移 Elasticsearch集群的数据迁移有多种方式可以选择,例如使用Logstash、 CDM 、OBS备份与恢复、ESM、跨集群复制插件等进行数据迁移。 Logstash:CSS提供Logstash,可以完成不同数据源和ES数据的迁移,还可以进行数据的清洗和加工。具体操作可以参考使用云服务Logstash全量迁移集群数据。 CDM:华为云服务提供的云迁移工具,实现不同云服务间的集群迁移能力。具体操作可以参考Elasticsearch整库迁移到云搜索服务。 备份与恢复:Elasticsearch提供备份恢复能力,可以把一个集群的数据备份到OBS,在另一个集群恢复数据,完成集群间的数据迁移。CSS Elasticsearch集群之间的数据迁移操作可以参考使用备份与恢复迁移集群数据(源端为CSS Elasticsearch);自建Elasticsearch集群或其他第三方Elasticsearch集群数据迁移到CSS Elasticsearch集群的操作可以参考使用备份与恢复迁移集群数据(源端为第三方Elasticsearch)。 源端为数据库的集群迁移
  • 前提条件 目的端集群(Es-2)和源端集群(Es-1)处于可用状态。建议在业务空闲期进行集群迁移。 确认目的端集群(Es-2)和源端集群(Es-1)在同一个Region下。 确认目的端集群(Es-2)的版本大于等于源端集群(Es-1)的版本。 确认目的端集群(Es-2)的节点数大于源端集群(Es-1)的节点数的一半。 确认目的端集群(Es-2)的节点数大于等于源端集群(Es-1)的shard副本数。 确认目的端集群(Es-2)的CPU、MEM和Disk配置大于等于源端集群(Es-1)。
  • 迁移时长 迁移过程的耗时长短依赖于源集群和目的集群的节点个数或索引shard个数。迁移过程分为备份阶段和恢复阶段,备份阶段耗时由源集群决定,恢复阶段耗时由目的集群决定。迁移总时长的评估公式如下: 当索引shard个数大于节点个数时 总时长(S)=(800G÷40MB÷源集群节点个数+800G÷40MB÷目的集群节点个数)x索引个数 当索引shard个数小于节点个数时 总时长(S)=(800G÷40MB÷源集群索引shard个数+800G÷40MB÷目的集群索引shard个数)x索引个数 评估公式是基于理想状态下(即单节点以最快速度40MB/s传输)的迁移时长,实际迁移时长还会受到网络、资源等因素影响。
  • 集群节点数量 当CSS集群的构架与机型确定后,集群的节点数主要由业务对性能的要求决定。 表3 节点数量计算方式 类型 性能基线 节点数量计算方式 示例 写入节点 对于挂载云盘的节点,其单核写入性能基线为1MB/s。 对于超高IO型的节点,其单核写入性能基线为1.5MB/s。 写入节点数=业务峰值时的流量/单节点的核数/单核写入性能基线*副本数 业务峰值写入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节点的集群,在集群稳定性和扩容的便捷性上都有一定的优势。因为高配置的集群如果遇到性能瓶颈需要扩容,则只需要横向扩容,即向集群中加入更多同等配置的节点即可;而低配置的集群在扩容节点配置时,则需要纵向扩容。