华为云用户手册

  • 添加Task节点 在MRS自定义类型集群的集群详情页面,选择“节点管理”页签,单击“新增节点组”,进入“新增节点组”页面。 根据需求配置参数。 表1 新增节点组参数说明 参数名称 描述 节点规格 选择节点组内主机的规格类型。 节点数量 设置新增节点组内的节点数量。 系统盘 设置新增节点的系统盘的规格与容量。 数据盘/数据盘数量 设置新增节点的数据盘的规格与容量及数量。 部署角色 添加“NodeManager”角色。 单击“确定”。
  • 添加租户 在集群详情页,单击“租户管理”。 单击“添加租户”,打开添加租户的配置页面,参见以下表格内容为租户配置属性(以MRS 3.x版本集群为例)。 表2 租户参数一览表 参数名 描述 名称 例如:tenant_spark 租户类型 选择“叶子租户”。当选中“叶子租户”时表示当前租户为叶子租户,无法再添加子租户。当选中“非叶子租户”时表示当前租户可以再添加子租户。 计算资源 选择“Yarn”,系统将自动在Yarn中以租户名称创建任务队列。计算资源不选择“Yarn”时,系统不会自动创建任务队列。 配置模式 计算资源选择“Yarn”时,“配置模式”可选“基础”或“高级”。 基础:需配置“默认资源池容量 (%)”,配置当前租户在“default”资源池中使用的计算资源百分比。 高级:需配置如下参数。 权重:资源分配权重,取值范围从0到100。租户资源占比=租户权重/同级别租户总权重之和。 最小资源:保证租户能获得的资源(有抢占支持)。取值可以是父租户资源的百分比或绝对值。当租户作业量比较少时,资源会自动借给其他租户,当租户能使用的资源不满足最小资源时,可以通过抢占来要回之前借出的资源。 最大资源:租户最多能使用的资源,租户不能得到比最大资源设定更多的资源。取值可以是父租户资源的百分比或绝对值。 预留资源:租户最多能使用的资源,租户不能得到比最大资源设定更多的资源。取值可以是父租户资源的百分比或绝对值。 默认资源池容量 (%) 配置当前租户在“default”资源池中使用的计算资源百分比,例如“20%”。 储存资源 选择“HDFS”,第一次创建租户时,系统自动在HDFS根目录创建“/tenant”目录。存储资源不选择“HDFS”时,系统不会在HDFS中创建存储目录。 文件/目录数上限 例如:100000000000 存储空间配额 配置当前租户使用的HDFS存储空间配额。最小值为“1”,最大值为父租户的全部存储配额。单位为MB或GB。例如:50000,单位为MB。此参数值表示租户可使用的HDFS存储空间上限,不代表一定使用了这么多空间。如果参数值大于HDFS物理磁盘大小,实际最多使用全部的HDFS物理磁盘空间。 说明: 为了保证数据的可靠性,HDFS中每保存一个文件则自动生成1个备份文件,即默认共2个副本。HDFS存储空间表示所有副本文件在HDFS中占用的磁盘空间大小总和。例如“存储空间配额”设置为“500MB”,则实际只能保存约500/2=250MB大小的文件。 存储路径 例如:“tenant/spark_test”,系统默认将自动在“/tenant”目录中以租户名称创建文件夹。例如租户“spark_test”,默认HDFS存储目录为“tenant/spark_test”。第一次创建租户时,系统自动在HDFS根目录创建“/tenant”目录。支持自定义存储路径。 服务 配置当前租户关联使用的其他服务资源,支持HBase。单击“关联服务”,在“服务”选择“HBase”。在“关联类型”选择“独占”表示独占服务资源,选择“共享”表示共享服务资源。 描述 配置当前租户的描述信息。 单击“确定”保存,完成租户添加。 保存配置需要等待一段时间,界面右上角弹出提示“租户创建成功。”,租户成功添加。 创建租户时将自动创建租户对应的角色、计算资源和存储资源。 新角色包含计算资源和存储资源的权限。此角色及其权限由系统自动控制,不支持通过“角色管理”进行手动管理。 使用此租户时,请创建一个系统用户,并分配Manager_tenant角色以及租户对应的角色。
  • 停止共享 资源所有者如果不再需要某个共享时,可以随时将其删除,删除共享不会删除共享的资源。共享删除后,共享资源指定的使用者将无法继续使用该共享中的资源,详细请参见删除共享。 资源使用者如果不再需要访问共享给您的资源,可以随时退出共享。退出共享后,将失去对共享资源的访问权限。 只有当共享资源的指定使用者是华为云帐号而不是组织内共享时,才可以退出此共享。如果共享资源的指定使用者是组织,而资源使用者的帐号由组织管理,则无法退出此共享,详细请参见退出共享。
  • 查看共享详情 进入内网域名列表页面。 进入“共享给我”页面,查看由其他帐号共享的内网域名。 如果您是共享内网域名的所有者,您可以通过共享名称,在RAM管理控制台,找到对应的共享,查看共享内的资源情况、资源的权限以及资源的使用者,具体操作请参见查看共享。 如果您是共享内网域名的使用者,您可以通过共享名称,在RAM管理控制台,找到对应的共享,查看共享内的资源情况、资源的权限以及资源的所有者,具体操作请参见查看共享给您的资源。
  • 共享内网域名简介 基于资源访问管理(Resource Access Manager,简称RAM)服务,云解析服务可以实现跨帐号共享内网域名,资源所有者将内网域名同时共享给多个其他帐号使用,资源使用者接受共享邀请后就可以访问和使用共享的内网域名。资源所有者可以依据最小权限原则和不同的使用诉求,选择不同的共享权限,资源使用者只能对资源进行权限内的访问,保证共享资源在满足资源使用者业务诉求的同时,提升资源管理的安全性。关于RAM服务的更多信息请参见什么是资源访问管理。 当您的帐号由华为云组织管理时,您还可以利用此优势更轻松地共享资源。如果您的帐号在组织中,则您可以与单个帐号共享,也可以与组织或OU中的所有帐号共享,而不必枚举每个帐号,具体请参见启用与组织共享资源。
  • 使用场景 以微服务平台(NUWA Runtime)为例,在目前的业务部署中,容易出现以下两种业务场景: 场景一 业务通过部署服务部署Nuwa Runtime时,IaC代码配置不对或周边依赖还未配置完全,部署后Runtime集群状态异常。此时部署服务调用Nuwa Runtime Read接口,ready返回false。业务在Nuwa Runtime控制台手动回滚该Runtime集群,回滚后,Runtime集群状态正常。此时部署服务调用NuwaRuntime Read接口,资源ready状态返回true。业务若使用之前的IaC代码对该NuwaRuntime集群重新部署,IaC代码未修改,Runtime集群状态正常,不触发Runtime集群的变更。 场景二 业务通过部署服务部署NuwaRuntime,变更完成后集群状态正常。业务发现IaC代码中有个配置项错误,手动在控制台上对该配置进行了修改,修改后未及时同步到IaC代码中。业务下次使用IaC代码部署时,该配置项未修改,手动修改的配置项被覆盖。
  • dcs 功能说明 按照指定参数执行redis_port脚本,发现端口,并通过端口找到指定的cache文件,将其中的信息转成json格式并上报到HCW。 参数配置 配置样例: discovery_script:/tmp/redis_port.py # redis_port脚本的具体路径 result_path:/tmp/redis_{#REDIS_PORT}.cache # 保存redis信息的cache文件的路径 脚本支持指标返回非数字型字符串,对于需要采集的指标例如rgb_last_bgsave_status, 如果脚本返回结果为ok,插件会将指标变更为rgb_last_bgsave_status_var, 且上报值更改为1。 消息样例及含义说明 { "plugin_id":"dcs", #单位: | 类型:string | 说明:插件名 "metric":[{ "node":"", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp":"1532595900000", #单位: | 类型:string | 说明:字符类型时间戳 "uptime_in_days":"158", #单位: | 类型:string | 说明:指标值 "port_id":"6379" #单位: | 类型:string | 说明:端口 "loading":"1" #单位: | 类型:string | 说明:是否正在载入持久化文件,0为否,1为是 "used_memory":"36864" #单位: | 类型:string | 说明:Redis分配器分配的内存总量 "nstantaneous_ops_per_sec":"7" #单位: | 类型:string | 说明:服务器每秒中执行的命令数量 "latest_fork_usec":"0" #单位: | 类型:string | 说明:最近一次fork()操作耗费的时间 "rdb_last_bgsave_status_var":"1" #单位: | 类型:string | 说明:最后一次创建RDB文件的结果,0为失败, 1为成功 "client_biggest_input_buf":"0" #单位: | 类型:string | 说明:当前连接的客户端中,最大的输入缓存 "client_longest_output_list":"0" #单位: | 类型:string | 说明:当前的客户端连接中,最长的输出列表 "rdb_last_bgsave_time_sec":"0" #单位: | 类型:string | 说明:最后一次创建RDB文件耗费的秒数 "expired_keys":"79118" #单位: | 类型:string | 说明:过期而被自动删除的数据库键数量 }] }
  • mysql 功能说明 按照指定参数执行mysql脚本,并将采集结果上报到HCW。 参数配置 配置样例: mysql_role # mysql监控脚本入参 script:/tmp/mysql_monitor_1m.sh # mysql脚本路径 upload_interval:60 # mysql脚本采集周期 消息样例及含义说明 { "plugin_id":"mysql", #单位: | 类型:string | 说明:插件名 "metric":[{ "node":"fs-mysql-uniaccount-151-15-105", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp":"1532595900000", #单位: | 类型:string | 说明:字符类型时间戳 "vip_ping":"0", #单位: | 类型:string | 说明:浮动IP是否能ping的通 "heartbeat_status":"0" #单位: | 类型:string | 说明:心跳状态 }] }
  • sds_jmx 功能说明 执行Java程序,采集Java进程相关指标数据。 参数配置 配置样例: _filter_sds_ip:127.0.0.1 # 需要采集的进程所运行的主机,可远程采集 sds_authentication # jmx验证信息文件保存的路径 whitelist:ColumnFamily_app20170410_duplicate_bill_check_WriteLatency_Count #jmx指标白名单 blacklist":"" # 黑名单,jmx指标的objectname,采集到的指标中需要剔除的指标,逗号分隔 match_metrics_keyword # 指标匹配关键字,过滤出匹配的指标 消息样例及含义说明 { "plugin_id":"sds_jmx", #单位: | 类型:string | 说明:插件名 "metric":[{ "node":"bj-sds-ad-cs21-11-72-43", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp":"1532595900000", #单位: | 类型:string | 说明:字符类型时间戳 "cluster_name":"bj-sds-ad-cs21", #单位: | 类型:string | 说明:集群名称 "sds_ip_id":"xxx.0.0.1", #单位: | 类型:string | 说明:采集进程的主机IP "sds_port_id":"7199" #单位: | 类型:string | 说明:采集进程的主机端口 "ColumnFamily_app20170410_duplicate_bill_check_WriteLatency_Count":"337727861", #单位: | 类型:string | 说明:jmx指标及指标值 }] }
  • Token校验 客户端在使用Token校验的流程如下。 已获取大屏分享链接和Token。 例如,分享链接https://console.ulanqab.huawei.com/sve/preview.html?region=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc。其中“region”的值为“cn-north-7”,“pageId”的值为“18cd21df7bc-WPgj_GqRc”。 使用代码开发工具将大屏分享链接中的pageId和region拼接成如下格式的字符串。 pageId|region; 使用HmacSHA256算法对拼接的字符串进行签名,并将签名后的字符串使用Base64进行转换。签名时需要使用对应的Token。 HmacSHA256签名和Base64转换的示例如下: import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import java.net.URLEncoder; public class ShareWithTokenTest { public static void main(String[] args) throws Exception { System.out.println(getShareUrlWithToken("********722467a9477b5b*******", "cn-7", "*******r1tyy1C7Jenni3p*********")); } public static String getShareUrlWithToken(String pageId, String region, String token){ String data = pageId + "|" + region; String signature = HMACSHA256(data.getBytes(), token.getBytes()); String url = "https://console.huaweicloud.com/sve/share/page.html?id=" + pageId + "®ion=" + region + "&sve_signature=" + signature; return url; } //采用HmacSHA256进行签名并进行Base64转换 public static String HMACSHA256(byte[] data, byte[] key) { try { SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return URLEncoder.encode(Base64.encodeBase64String(mac.doFinal(data))); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } return null; } } 将转换后的字符串赋值给sveSignature,sveSignature参数拼接到大屏分享链接中获取新的访问链接。 例如,新的访问链接https://console.ulanqab.huawei.com/sve/preview.html?sveSignature=1OP99N6yxCDmEiH4aNMU1GAwtKspSg4fJ/zh0679k=®ion=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc
  • Token校验 客户端在使用Token校验的流程如下。 已获取大屏分享链接和Token。 例如,分享链接https://console.ulanqab.huawei.com/sve/preview.html?region=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc。其中“region”的值为“cn-north-7”,“pageId”的值为“18cd21df7bc-WPgj_GqRc”。 使用代码开发工具将大屏分享链接中的pageId和region拼接成如下格式的字符串。 pageId|region; 使用HmacSHA256算法对拼接的字符串进行签名,并将签名后的字符串使用Base64进行转换。签名时需要使用对应的Token。 HmacSHA256签名和Base64转换的示例如下: import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import java.net.URLEncoder; public class ShareWithTokenTest { public static void main(String[] args) throws Exception { System.out.println(getShareUrlWithToken("********722467a9477b5b*******", "cn-7", "*******r1tyy1C7Jenni3p*********")); } public static String getShareUrlWithToken(String pageId, String region, String token){ String data = pageId + "|" + region; String signature = HMACSHA256(data.getBytes(), token.getBytes()); String url = "https://console.huaweicloud.com/sve/share/page.html?id=" + pageId + "®ion=" + region + "&sve_signature=" + signature; return url; } //采用HmacSHA256进行签名并进行Base64转换 public static String HMACSHA256(byte[] data, byte[] key) { try { SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return URLEncoder.encode(Base64.encodeBase64String(mac.doFinal(data))); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } return null; } } 将转换后的字符串赋值给sveSignature,sveSignature参数拼接到大屏分享链接中获取新的访问链接。 例如,新的访问链接https://console.ulanqab.huawei.com/sve/preview.html?sveSignature=1OP99N6yxCDmEiH4aNMU1GAwtKspSg4fJ/zh0679k=®ion=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc
  • ServiceComb引擎实例规格 您可根据需要托管的微服务实例数量,参考表2来选择ServiceComb引擎实例规格。 如表2所示,不同微服务实例数配额的ServiceComb引擎实例会赠送相应数量的配置条目数配额和最大支持微服务版本总数。 表2 ServiceComb引擎实例规格 微服务实例数配额 配置条目数配额 100实例 600 200实例 600 500实例 3,000 2,000实例 12,000
  • Nacos引擎实例规格 您可根据实际需要选择合适的Nacos引擎实例规格。 表1 Nacos引擎实例规格 微服务实例数 容量单元 客户端连接数 500实例 10个 1,000个 1,000实例 20个 2,000个 2,000实例 40个 4,000个 3,000实例 60个 6,000个 5,000实例 100个 10,000个 当前仅在华东-上海一、华南-广州和华北-北京四支持创建微服务实例数为2,000、3,000和5,000的Nacos引擎。当您需要Nacos引擎微服务实例数大于2,000时需要提交工单申请。 1个容量单元=50个微服务实例。
  • 访问控制 如果您需要给企业中的员工对CSE的资源设置不同的访问权限,以达到不同员工之间的权限隔离,CSE支持使用统一身份认证服务(Identity and Access Management,简称IAM)和自定义策略进行精细的权限管理。 访问控制方式 简要说明 详细介绍 IAM权限控制 IAM权限是作用于云资源的,IAM权限定义了允许和拒绝的访问操作,以此实现云资源权限访问控制。管理员创建IAM用户后,需要将用户加入到一个用户组中,IAM可以对这个组授予CSE所需的权限,组内用户自动继承用户组的所有权限。 IAM权限介绍 自定义策略权限控制 同一个微服务引擎可能会有多个用户共同使用,而不同的用户根据其责任和权限,需要具备不同的微服务引擎访问和操作权限。开启了“安全认证”的微服务引擎专享版,通过微服务控制台提供了基于RBAC的系统管理功能,根据实际的业务需求对角色进行权限自定义策略控制。 自定义策略权限控制介绍
  • Spring-cloud-huawei、Servicecomb及Sermant功能对比 一级特性 二级特性 serviccomb-java-chassis spring-cloud-huawei sermant agent 备注 微服务网关 服务端限流 √ √ √ - 服务端隔离仓 √ √ √ - 客户端熔断 × √ × - 客户端容错 × √ × - 客户端降级 × × × - 客户端故障注入 × × × - 负载均衡策略 √ √ × - 灰度发布 × √ √ - 优雅停机 √ √ × - 微服务治理 优雅上下线 √ √ √ - 无损升级 √ √ √ - 服务端限流 √ √ √ - 客户端容错 √ √ √ - 客户熔断 √ √ √ - 客户端降级 √ √ √ - 服务端隔离仓 √ √ √ - 客户端隔离仓 √ √ √ - 负载均衡策略 √ √ √ - 灰度发布 √ √ √ - 全链路日志追踪 √ √ × - 服务治理状态上传 √ √ × - 快速失败 √ √ × - 故障注入 √ × √ - 黑白名单 √ √ × - 注册发现 本地注册发现 √ √ × - 单注册-CSE √ √ √ - 单注册-ServiceCenter √ √ √ - 双注册 × × √ 双注册指同时注册到两个注册中心,当前sermant支持同时注册到cse和宿主原生注册中心。 配置中心支持 servicecomb引擎 √ √ √ 可基于配置中心下发配置, 例如服务治理规则、业务配置。 Nacos引擎 √ √ √ servicecomb-kie √ √ √ zookeeper × × √ 轻量化配置中心(zero-config) √ × × apollo × × × 安全特性 安全认证 √ √ × 服务实例与注册中心以及消费端与生产端之间的认证。 开发 多协议支持 √ × × JavaChassis针对消费与生产端支持多种通信协议,如下: 生产端:JAX-RS、SpringMVC、透明RPC。 消费端:透明RPC、RestTemplate、InvokerUtils。 拓展 支持用户自定义处理链处理流量。 支持用户扩展流量治理。 支持Spring Cloud原生扩展。 支持用户扩展流量治理。 基于插件开发模式新增能力。 -
  • 配额说明 配额是指您引擎实例中可创建的资源数量限制。如需使用更大配额,请提交工单申请扩大配额。 Nacos引擎实例中可创建的资源数量限制如表1所示。 表1 Nacos引擎资源配额限制 资源 最大配额 是否支持修改配额 注意事项 Nacos单实例命名空间数量 50个 否 - Nacos单个配置文件大小上限 100KB 否 - Nacos单个命名空间配置总计大小 10MB 否 - 带宽(网络流出+流入之和) 2Mbit/s 否 - ServiceComb引擎实例中可创建的资源数量限制如表2所示。 表2 ServiceComb引擎资源配额限制 功能 资源 最大配额 是否支持修改配额 注意事项 微服务管理 微服务版本数量(个) 10,000 暂不支持 - 单个实例数据量(KB) 200 支持 扩大配额后,将增加微服务发现的时延。 单个微服务契约数量(个) 500 暂不支持 - 配置管理 单个配置数据量(KB) 128 暂不支持 - 单个应用级配置数量(个) 2,000 暂不支持 - 微服务治理 应用级的治理策略 1,000 暂不支持 所有的应用的治理策略总和不能超过1000条。 单个治理策略包含:治理规则和业务场景。治理规则和业务场景实际会等量占用配置中心的配额。 微服务版本数:微服务场景中版本用来标记微服务的迭代记录,方便对微服务的不同迭代进行管理。 微服务实例数:实例是一个微服务的最小运行和部署单元,通常对应一个应用进程。同一个微服务通过部署在多个容器或虚机,可以实现多个实例同时运行。 配置条目数:微服务场景中的配置是指对程序代码中某些变量的取值控制。比如,动态配置就是通过在微服务运行过程中对某些变量的取值进行动态变更。
  • Nacos引擎版本兼容性说明 CSE Nacos引擎版本 兼容Nacos社区版本 兼容性 2.1.0.x 2.1.0 100% CSE Nacos引擎很好地兼容社区Nacos 2.1.0及其以下版本,且向下兼容。例如:微服务使用开源Nacos 1.x.x版本,也可以使用CSE Nacos引擎。 配置中心兼容Nacos 1.0起所有的客户端版本,服务发现兼容Nacos 1.2起的所有客户端版本, 因此建议使用Nacos 1.2.0之后客户端版本。 Nacos 2.x.x版本新增了长连接功能,需要使用长连接能力请升级至2.x.x版本。 Nacos 2.1.0版本后,默认关闭了双写能力,因此无法支持从Nacos 1.x版本平滑升级到2.1.0+的能力,如需要使用平滑升级能力,从Nacos 1.x直接升级到Nacos 2.1.0+版本,需要在application.properties文件中配置参数nacos.core.support.upgrade.from.1x=true。
  • ServiceComb引擎微服务开发框架版本要求 微服务开发框架推荐版本如下表所示。 如果已经使用低版本的微服务开发框架构建应用,建议升级到推荐版本,以获取最稳定和丰富的功能体验。 如果已使用Spring Cloud微服务开发框架开发了应用,推荐使用Spring Cloud Huawei接入应用。 如果基于开源开放和业界生态组件新开发微服务应用,可选择Spring Cloud框架。 如果希望使用ServiceComb引擎提供的开箱即用的治理能力和高性能的RPC框架,可选择Java Chassis框架。 框架 推荐版本 说明 Spring Cloud Huawei 1.10.9-2021.0.x及以上 采用Spring Cloud Huawei项目提供接入支持: 适配的Spring Cloud版本为2021.0.5 适配的Spring Boot版本为2.6.13 Spring Cloud微服务开发框架的版本说明请参见:https://github.com/huaweicloud/spring-cloud-huawei/releases。 Java Chassis 2.7.10及以上 可以直接使用开源项目提供的软件包接入,不需要引用其他第三方软件包。 Java Chassis微服务开发框架的版本说明请参见:https://github.com/apache/servicecomb-java-chassis/releases。 系统升级、改造过程中,三方软件冲突是最常见的问题。随着软件迭代速度越来越快,传统的软件兼容性管理策略已经不适应软件的发展,您可以参考三方软件版本管理策略来解决版本冲突。
  • Nacos引擎与微服务框架版本关系 CSE Nacos引擎版本 Spring Cloud Alibaba版本 Spring Cloud版本 Spring Boot版本 2.1.0.x 2022.0.0.0-RC* Spring Cloud 2022.0.0 3.0.0 2021.0.4.0* Spring Cloud 2021.0.4 2.6.11 2021.0.1.0 Spring Cloud 2021.0.1 2.6.3 2021.1 Spring Cloud 2020.0.1 2.4.2 2.2.10-RC1* Spring Cloud Hoxton.SR12 2.3.12.RELEASE 2.2.9.RELEASE Spring Cloud Hoxton.SR12 2.3.12.RELEASE 2.2.8.RELEASE Spring Cloud Hoxton.SR12 2.3.12.RELEASE 2.2.7.RELEASE Spring Cloud Hoxton.SR12 2.3.12.RELEASE 2.2.6.RELEASE Spring Cloud Hoxton.SR9 2.3.2.RELEASE 2.2.1.RELEASE Spring Cloud Hoxton.SR3 2.2.5.RELEASE 2.2.0.RELEASE Spring Cloud Hoxton.RELEASE 2.2.X.RELEASE 2.1.4.RELEASE Spring Cloud Greenwich.SR6 2.1.13.RELEASE 2.1.2.RELEASE Spring Cloud Greenwich 2.1.X.RELEASE 2.0.4.RELEASE(停止维护,建议升级) Spring Cloud Finchley 2.0.X.RELEASE 1.5.1.RELEASE(停止维护,建议升级) Spring Cloud Edgware 1.5.X.RELEASE
  • 操作步骤 在GRPC获取路径下载生产者端geeter_server和消费端greeter_client的代码。 在本地go环境构建出二进制软件包grpc-provider和 grpc-consumer,执行命令如下。 GOOS=linux go build -o grpc-provider main.go GOOS=linux go build -o grpc-consumer main.go 登录Linux弹性云服务器。 请参考Linux弹性云服务器登录方式概述选择相应方式登录弹性云服务器。 将构建好的软件包上传到ECS上合适的路径下,如根目录“/”。 执行如下命令对grpc-provider和grpc-consumer赋予可执行权限。 chmod +x grpc-provider chmod +x grpc-consumer 执行命令启动生产者。 ./grpc-provider 此时gRpc的生产者端已经被启动了,监听端口是50051。 参考创建服务创建来源类型为“固定IP”的服务。其中“服务地址”为ECS的IP地址,端口为grpc-provider的监听端口,即50051。 参考创建路由在应用网关中创建路由,域名为“*”的路由,在路由规则中,添加路由规则。 具体路由规则为:“服务地址”的匹配类型选择“前缀匹配”,服务地址输入“/”,“请求方法”选择“POST”、“GET”、“DELETE”和“PUT”,“目标服务”为7中创建的服务,“分组”选择“不限制”,“权重”为100。 执行命令使用consumer端进行访问。 ./grpc-consumer {网关IP}:50051 其中网关IP是网关的私网IP,访问成功则有以下结果。
  • 计费模式概述 云备份服务提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于可预估资源使用周期的场景。 按需计费:一种后付费模式,即先使用再付费,按照实际使用时长计费。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照订单实际使用时长计费。 计费周期 按订单的购买周期计费。 按小时计费。 适用计费项 云硬盘备份存储库、云服务器备份存储库、SFS Turbo备份存储库、混合云备份存储库、云桌面备份存储库、复制存储库。 云硬盘备份存储库、云服务器备份存储库、SFS Turbo备份存储库、混合云备份存储库、云桌面备份存储库、复制存储库、跨区域复制流量。 变更计费模式 包周期到期之前不支持变更为按需计费模式。到期后可以变更为按需计费模式。 支持变更为包年/包月计费模式。 变更容量规格 支持对存储库扩容。 支持对存储库扩容。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 适用于计算资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • Redis应用场景 很多大型电商网站、视频直播和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询。这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。Redis对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。 以下举几个典型样例: (电商网站)秒杀抢购 电商网站的商品类目、推荐系统以及秒杀抢购活动,适宜使用Redis缓存数据库。 例如秒杀抢购活动,并发高,对于传统关系型数据库来说访问压力大,需要较高的硬件配置(如磁盘IO)支撑。Redis数据库,单节点QPS支撑能达到10万,轻松应对秒杀并发。实现秒杀和数据加锁的命令简单,使用SET、GET、DEL、RPUSH等命令即可。 加锁部分,可参考最佳实践:使用DCS实现分布式锁 (视频直播)消息弹幕 直播间的在线用户列表,礼物排行榜,弹幕消息等信息,都适合使用Redis中的SortedSet结构进行存储。 例如弹幕消息,可使用ZREVRANGEBYSCORE排序返回,在Redis 5.0中,新增了zpopmax,zpopmin命令,更加方便消息处理。 (游戏应用)游戏排行榜 在线游戏一般涉及排行榜实时展现,比如列出当前得分最高的10个用户。使用Redis的有序集合存储用户排行榜非常合适,有序集合使用非常简单,提供多达20个操作集合的命令。 可参考最佳实践:使用DCS实现排行榜功能 (社交APP)返回最新评论/回复 在web类应用中,常有“最新评论”之类的查询,如果使用关系型数据库,往往涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。 使用Redis的List(链表),例如存储最新1000条评论,当请求的评论数在这个范围,就不需要访问磁盘数据库,直接从缓存中返回,减少数据库压力的同时,提升APP的响应速度。
  • Memcached(已停售)典型应用场景 Memcached主要存储字符串类的简单key-value数据。 静态页面缓存。 Web页面的内容片段,包括HTML,CSS和图片等静态数据,内容修改操作少,读取频繁,可以缓存到DCS Memcached实例,提高网站的访问性能。 数据库前端缓存。 在动态系统中存在对大量数据读多写少的场景,如社交、博客网站大量查询用户信息、好友信息、文章信息等。为了减少磁盘数据库负载,提升性能,这些经常需要从数据库读取的数据,可以缓存在Memcached中。 适宜缓存的数据主要有: 经常被读取,实时性要求不高,且可以自动过期的数据。 例如网站首页最新文章列表、某某排行等数据,虽然新数据不断产生,但对用户体验影响比较小。这类数据可使用典型的缓存策略,设置合理的过期时间,当数据过期以后再从数据库中读取。为了让编辑或者其它人员能马上看到效果,可以再定一个缓存清除/刷新策略。 经常被读取并且实时性要求强的数据。 比如用户的好友列表,用户文章列表,用户阅读记录等。这类数据首先被载入到Memcached中,当发生更改(添加、修改、删除)时就刷新缓存数据。 秒杀功能。 商品下单操作,牵涉数据库读取,写入订单,更改库存,及事务一致性要求, 对于使用传统型数据库的平台来说,秒杀活动阶段要避免订单创建后库存缺货,同时提供流畅的用户体验,压力巨大。 可以利用Memcached的incr/decr功能, 在内存中存储商品的库存量, 秒杀的抢单过程主要在内存中完成,速度非常快,抢单成功即得一个订单号,这时再去支付页面完成订单的后续操作。 不适用Memcached的应用场景: 单个缓存对象大于1M Memcached单个缓存对象的value值不能超过1M。超过1M的场景,建议使用Redis。 Key的长度大于250字符 如确需使用Memcached,可将key先进行md5,得到散列值,然后存储key对应的散列值。 业务需要保证数据高可靠 开源Memcached不支持持久化数据,无法存副本、备份以及数据迁移。 注意:DCS的Memcached主备版本实现了数据持久化,具体可联系技术支持。 对数据结构和处理有高级要求 Memcached只支持key-value简单结构,不支持链表、集合等高级数据结构以及排序等一系列复杂操作。
  • Redis与Memcached差异 Redis和Memcached都是非常受欢迎的开源内存数据库,相对关系型数据库,Redis和Memcached使用都简单,且具备高性能。 同为Key-Value数据库,该如何选择? Memcached适用于数据结构模型简单的场景。Redis适用于数据结构复杂、需要持久化存储数据、存储大key的场景。 具体细节比较,请参考下表。 表1 Redis与Memcached的对比概览 对比项 Redis Memcached(已停售) 延时 内存数据库,亚毫秒级延时。 内存数据库,亚毫秒级延时。 易用性 语法简单,易用性强。 语法简单,易用性强。 分布式存储 支持集群方式水平扩展。 支持分布式存储。 多语言客户端 支持Java、C、Python等三十几种语言的客户端连接。 支持Java、C、Python等十几种语言的客户端连接。 线程/进程 单核单线程。 单线程通信,避免不必要的上下文切换与竞争。 采用非阻塞IO(IO多路复用),减少多客户端连接时的资源消耗。 支持多线程,可扩展。 可通过增加CPU数量,提升Memcached性能。 持久化存储 支持。 可将每一次写入操作(数据的增加、删除、修改)记录到磁盘文件(AOF文件)中。 支持。 说明: 开源Memcached不支持持久化存储,华为云Memcached支持持久化存储。 数据结构 支持哈希、列表、集合、有序集合等复杂的数据结构。有更多的应用场景。 支持简单的字符串。 Lua脚本支持 支持。 不支持。 快照备份 支持。 快照定期产生,因此不能保证数据100%不丢失。 Redis会fork一个子进程用于生成快照,当数据较多时,可能产生Redis服务短暂中断。 不支持。 数据迁移 支持。 可通过RDB快照恢复,或者AOF文件回放的方式,将数据备份并迁移到新的Redis实例上。 不支持。 Key的Value限制 Key的值最大可以有1G。 1M。 多数据库 Redis单机和主备支持多个数据库,默认256个DB。 Proxy集群和Cluster集群只支持一个数据库,为DB0。 不支持。 由以上对比可知,Redis与Memcached都具有简单易用,性能优越的特点。但在数据结构存储、持久化、备份与迁移、脚本支持等方面有所差异,建议您结合实际应用场景,选择最合适的缓存引擎。 Memcached比较合适小型静态数据的缓存场景,只需要直接读取,不做进一步运算和处理,如html代码片段。 Redis有丰富的数据结构,应用场景更为广泛。 父主题: 产品规格差异
  • 为什么无法卸载云硬盘 云硬盘可分为系统盘和数据盘,两种云硬盘卸载操作有所不同。 卸载系统盘:系统盘当前仅支持离线卸载,因此运行状态的弹性云服务器需关机后卸载系统盘。 Linux系统盘挂载点通常为“/dev/vda”,Windows系统的系统盘通常为C盘。 云耀云服务器L实例不支持卸载系统盘。 卸载数据盘:数据盘支持离线卸载和在线卸载。 Linux数据盘挂载点通常为“/dev/vda”以外的挂载点,Windows系统的数据盘通常为C盘以外的盘符。 离线卸载:弹性云服务器需处于“关机”状态,处于运行状态需关机后进行数据盘卸载。 在线卸载:部分操作系统支持在线卸载,即在弹性云服务器处于“运行中”状态进行卸载。关于在线卸载的更多详细信息,请参见在线卸载磁盘。 父主题: 云硬盘卸载问题
  • 如何监控云硬盘使用情况 云硬盘的部分监控指标需要安装Agent才能查看。 云服务器安装Agent的具体操作,请参见《云监控用户指南》的“安装配置Agent”章节。 表1 磁盘相关监控指标说明 指标 指标名称 指标含义 取值范围 测量对象(维度) 监控周期(原始指标) disk_free (Agent) 磁盘剩余存储量 该指标用于统计测量对象磁盘的剩余存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Avail列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_total (Agent) 磁盘存储总量 该指标用于统计测量对象磁盘存储总量。 单位:GB 采集方式(Linux):执行df -h命令,查看Size列数据。 挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_used (Agent) 磁盘已用存量 该指标用于统计测量对象磁盘的已用存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Used列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_usedPercent (Agent) 磁盘使用率 该指标用于统计测量对象磁盘使用率,以百分比为单位。计算方式为: 磁盘已用存储量/磁盘存储总量。 单位:百分比 采集方式(Linux):通过计算Used/Size得出。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 0-100% 云服务器 - 挂载点 1分钟 父主题: 云硬盘容量问题
  • 安装Agent监控云硬盘使用情况 云硬盘的部分监控指标需要安装Agent才能查看。 云服务器安装Agent的具体操作,请参见《云监控用户指南》的“安装配置Agent”章节。 表1 磁盘相关监控指标说明 指标 指标名称 指标含义 取值范围 测量对象(维度) 监控周期(原始指标) disk_free (Agent) 磁盘剩余存储量 该指标用于统计测量对象磁盘的剩余存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Avail列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_total (Agent) 磁盘存储总量 该指标用于统计测量对象磁盘存储总量。 单位:GB 采集方式(Linux):执行df -h命令,查看Size列数据。 挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_used (Agent) 磁盘已用存量 该指标用于统计测量对象磁盘的已用存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Used列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_usedPercent (Agent) 磁盘使用率 该指标用于统计测量对象磁盘使用率,以百分比为单位。计算方式为: 磁盘已用存储量/磁盘存储总量。 单位:百分比 采集方式(Linux):通过计算Used/Size得出。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 0-100% 云服务器 - 挂载点 1分钟
  • Linux手动查看云硬盘使用情况 以弹性云服务器的操作系统为“CentOS 7.4 64bit”为例,根据是否查看可用容量,分为以下两种情况: 只查看磁盘总容量:执行 lsblk 命令。 回显类似如下信息: [root@ecs-test-0001 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 40G 0 disk └─vdb1 253:17 0 40G 0 part 表示当前的弹性云服务器有两块磁盘,“/dev/vda”是系统盘,磁盘总容量为40GiB,“/dev/vdb”是数据盘,磁盘总容量为40GiB。 查看磁盘总容量和可用容量:磁盘必须已挂载并且初始化,执行 df -TH 命令可以查看。 回显类似如下信息: [root@ecs-0001 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 43G 2.0G 39G 5% / devtmpfs devtmpfs 509M 0 509M 0% /dev tmpfs tmpfs 520M 0 520M 0% /dev/shm tmpfs tmpfs 520M 7.2M 513M 2% /run tmpfs tmpfs 520M 0 520M 0% /sys/fs/cgroup tmpfs tmpfs 104M 0 104M 0% /run/user/0 /dev/vdb1 ext4 43G 51M 40G 1% /mnt/sdc 表示当前的弹性云服务器有两个磁盘分区,系统盘“/dev/vda1”分区总容量为43GiB,已用2GiB,可用容量为39GiB;“/dev/vdb1”分区总容量为43GiB,已用51MB,可用容量为40GiB。
  • 检查分区的初始磁柱编号是否4KiB对齐 登录云服务器并切换为root用户。 进行性能测试之前,请执行以下步骤,确认磁盘分区的初始磁柱编号是否已经4KiB对齐。 fdisk -lu 回显类似如下信息: [root@ecs-centos sdc]# fdisk -lu Disk /dev/xvda: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x7db77aa5 Device Boot Start End Blocks Id System /dev/xvda1 * 2048 20968919 10483436 83 Linux Disk /dev/xvdb: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/xvdc: 53.7 GiB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x3cf3265c Device Boot Start End Blocks Id System /dev/xvdc1 2048 41943039 20970496 83 Linux 如果start对应的初始磁柱编号能被8整除,则表示4KiB对齐。 如果start对应的初始磁柱编号不能被8整除,则表示未4KiB对齐,如需继续测试请删除原有分区,重新按照4KiB对齐选择初始磁柱编号。 删除分区并重新按照4KiB对齐选取初始磁柱编号会导致磁盘原有数据的丢失,请谨慎操作。
  • 排查思路 测试云硬盘性能时,云硬盘本身以及压测条件都起着重要的作用。 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 部分操作会导致磁盘原有数据丢失,建议使用裸盘进行性能测试。 图1 排查思路 表1 排查思路 可能原因 处理措施 分区的初始磁柱编号非4KiB对齐 检查分区的初始磁柱编号是否4KiB对齐。 非4KiB对齐请删除原有分区,重新按照4KiB对齐选择初始磁柱编号。 测试盘不是裸盘 请重新购买裸盘挂载至弹性云服务器进行测试。 压测条件设置不合理 为了发挥出多核并发的系统性能,压测出目标性能指标,建议设置为多核,并且合理安排队列。 数据块大小设置不合理 重新设置数据块大小。 测试IOPS时,建议将数据块设置为一个较小的值,如4k。 测试吞吐量时,建议将数据块设置为一个较大的值,如1024k。
共100000条