华为云用户手册

  • 身份策略权限管理 IoTDA服务支持身份策略授权,如表5所示,包括了IoTDA身份策略中的所有系统身份策略。身份策略授权场景的系统身份策略与角色与策略授权场景的并不互通。 表5 IoTDA系统身份策略 系统身份策略 描述 策略类别 IoTDAFullAccessPolicy 拥有对 设备接入服务 的所有执行权限 系统身份策略 IoTDAReadOnlyPolicy 拥有对设备接入服务的只读权限 系统身份策略 表6 IoTDA常用操作与系统权身份策略的关系列出了IoTDA常用操作与系统身份策略的授权关系,您可以参照该表选择合适的系统身份策略。 表6 IoTDA常用操作与系统权身份策略的关系 操作名称 IoTDAFullAccessPolicy IoTDAReadOnlyPolicy 创建产品 √ x 查询产品列表 √ √ 查询产品 √ √ 修改产品 √ x 删除产品 √ x 创建设备 √ x 查询设备列表 √ √ 查询设备 √ √ 修改设备 √ x 删除设备 √ x 重置设备密钥 √ x 冻结设备 √ x 解冻设备 √ x 重置设备指纹 √ x 灵活搜索设备列表 √ √ 下发设备消息 √ x 查询设备消息 √ √ 查询指定消息id的消息 √ √ 下发广播消息 √ x 下发设备命令 √ x 下发异步设备命令 √ x 查询指定id的命令 √ √ 修改设备属性 √ √ 下发设备消息 √ x 查询指定消息id的消息 √ √ 查询产品列表 √ √ 创建产品 √ x 查询产品 √ √ 修改产品 √ x 删除产品 √ x 查询设备列表 √ √ 注册设备 √ x 查询设备 √ √ 修改设备 √ x 删除设备 √ x 重置设备密钥 √ x 查询设备影子数据 √ √ 配置设备影子预期数据 √ x 下发设备命令 √ x 查询设备属性 √ √ 修改设备属性 √ x 查询设备属性 √ √ 查询设备影子数据 √ √ 配置设备影子预期数据 √ x 创建AMQP队列 √ x 查询AMQP列表 √ √ 查询单个AMQP队列 √ √ 删除AMQP队列 √ x 生成接入凭证 √ x 创建规则触发条件 √ x 查询规则条件列表 √ √ 查询规则条件 √ √ 修改规则触发条件 √ x 删除规则触发条件 √ x 创建规则动作 √ x 查询规则动作列表 √ √ 查询规则动作 √ √ 修改规则动作 √ x 删除规则动作 √ x 创建规则 √ x 查询规则列表 √ √ 修改规则 √ x 查询规则 √ √ 删除规则 √ x 修改规则状态 √ x 添加设备组 √ x 查询设备组列表 √ √ 查询设备组 √ √ 修改设备组 √ x 删除设备组 √ x 管理设备组中的设备 √ √ 查询设备组设备列表 √ √ 绑定标签 √ x 解绑标签 √ x 按标签查询资源 √ √ 查询资源空间列表 √ √ 创建资源空间 √ x 查询资源空间 √ √ 删除资源空间 √ x 创建批量任务 √ x 查询批量任务列表 √ √ 查询批量任务 √ √ 批量任务重试 √ x 批量任务停止 √ x 删除批量任务 √ x 上传批量任务文件 √ x 查询批量任务文件列表 √ √ 删除批量任务文件 √ x 上传设备CA证书 √ x 获取设备CA证书列表 √ √ 删除设备CA证书 √ x 验证设备CA证书 √ x 创建OTA升级包 √ x 查询OTA升级包列表 √ √ 获取OTA升级包详情 √ √ 删除OTA升级包 √ x 查询隧道列表 √ √ 创建设备隧道 √ x 删除设备隧道 √ x 查询隧道详情 √ √ 修改设备隧道 √ x
  • ServiceComb错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 分类 状态码 错误码 错误信息 描述 处理措施 公共错误码 400 400001 Invalid parameter(s) 非法参数 根据错误提示中的规则,修改提示中的参数。 404 404001 ErrRecoudNotExists 该资源不存在 输入正确的查找条件。 409 409001 ErrRecordAlreadyExists 该资源已存在 请勿创建相同的记录。 500 500003 Internal server error 内部错误 内部错误请联系运维支持。 微服务 400 400002 ErrUnhealthy 服务处于不健康状态 请稍后重试或联系技术支持工程师。 400010 Micro-service already exists 服务已存在 修改创建微服务body体中的serviceId或微服务描述信息。 400011 ErrUnavailableBackend 没有可提供的后台实例 请稍后重试或联系技术支持工程师。 400012 Micro-service does not exist 服务不存在 请输入有效的serviceId。 400013 Micro-service has deployed instance(s) 无法删除该微服务,该微服务已部署实例 请先将实例下线,再删除微服务;或强制删除微服务(url中添加query参数“force=true”)。 400014 Undefined schema id schemaId不存在 请输入有效的schemaId。 400015 Not allowed to modify schema schema不允许修改 该schema已注册,不支持修改。 400016 Schema does not exist schema不存在 请先注册schema再查询。 400017 Instance does not exist 实例不存在 请输入有效的instanceId。 400018 ErrTagNotExists 标签不存在 通常出现在查询接口,表明标签不存在,业务根据返回值做恰当后续处理。 400019 ErrRuleAlreadyExists 规则已经存在 重复创建规则,通常可以忽略该错误。 400020 ErrBlackAndWhiteRule 错误的黑白名单 根据错误提示修改参数。 400021 ErrModifyRuleNotAllow 不允许更改规则 必须修改版本号才允许更改微服务信息。 400022 ErrRuleNotExists 规则不存在 通常出现在查询接口,表明规则不存在,业务根据返回值做恰当后续处理。 400023 Cosumer(s) depends on this micro-service 无法删除该微服务,该微服务被其他微服务依赖 可选择强制删除微服务(url中添加query参数“force=true”)。 400024 ErrPermissionDeny 权限不允许 使用合理的账号进行操作。 400025 ErrEndpointAlreadyExists 端口已存在 建议排查端口是否被其它实例占用。 400026 Micro-service version does not exist 微服务版本不存在 请输入正确的版本号或版本号范围。 400100 Not enough quota 配额不足 对应的资源(如微服务、实例、schema)配额不足,请删除部分资源再创建。 401 401204 No authorization header 认证不通过 若微服务引擎开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取ServiceComb引擎专享版用户Token。 401201 Request unauthorized 认证不通过 输入的Authorization不合法. 403 403001 ErrForbidden 操作受限 使用合理的账号进行操作。 500 500011 Registry service is unavailable 后端错误 内部错误请联系运维支持。 500101 ErrUnavailableQuota 没有提供配额 请稍后重试或联系技术支持工程师。 500605 NA 配置中心Etcd连接失败 请稍后重试或联系技术支持工程师。 认证 401 401202 User name or password is wrong 账号名称或密码错误 输入正确的账号名称和密码。 父主题: 错误码
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 本地Oracle数据库 名称 orcl 自定义,易理解可识别。 规格 16vCPUs | 32GB - 数据库版本 11.2.0.1 - 数据库用户 test_info 可以自定义用户,但是迁移时最小权限为:CREATE SESSION,SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY, EXECUTE_CATA LOG _ROLE GaussDB 实例名 gauss-b193-cent 自定义,易理解可识别。 数据库版本 GaussDB 2.7企业版 - 实例类型 主备版 本示例中为主备版实例。 部署形态 独立部署 - 事务一致性 强一致性 - 存储类型 超高IO - 可用区 可用区2 本示例中选择了单可用区,实际建议选择多可用区,以提高实例的高可用性。 性能规格 通用增强Ⅱ型 8 vCPUs | 64GB 本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 存储空间 480G 本示例中为测试实例,选择较小的存储空间,实际选择存储空间大小以业务诉求为准。 加密磁盘 不加密 本示例中选择磁盘不加密,选择加密后会提高数据安全性,但对数据库读写性能有少量影响,实际请按照业务使用策略进行选择。 DAS登录数据库 数据库引擎 GaussDB - 数据库来源 GaussDB 勾选本示例中创建的GaussDB实例 数据库名称 postgres - 登录用户名 root - 密码 - 本示例中创建的GaussDB实例root用户密码 UGO迁移任务 数据库评估任务名 Oracle-Centralized 自定义。 对象迁移任务名 Oracle-GaussDB-Centralized 自定义。 源数据库引擎 Oracle 11g - 目标数据库引擎 GaussDB 2.8主备版 - 网络类型 公网网络 本示例中采用公网网络。 DRS迁移任务 迁移任务名 DRS-test-info 自定义。 目标库名称 test_database_info 自定义,易理解可识别,但是需要确保兼容模式为Oracle模式。 源数据库引擎 Oracle - 目标数据库引擎 GaussDB主备版 - 网络类型 公网网络 本示例中采用公网网络。 父主题: 本地Oracle同步到GaussDB主备版
  • 安全认证概述 开启了安全认证的ServiceComb引擎专享版,通过微服务控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。权限与角色相关联,您可以使用关联了admin角色权限的账号创建新账号,根据实际业务需求把合适的角色同账号关联。使用该账号的用户则具有对该ServiceComb引擎的相应的访问和操作权限。 ServiceComb引擎专享版开启了安全认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明。 开启了安全认证的ServiceComb引擎专享版,在使用安全认证前需要完成以下工作: 创建安全认证账号名和密码 配置微服务安全认证的账号名和密码 框架支持安全认证功能的版本要求:Spring Cloud需要集成Spring Cloud Huawei 1.6.1及以上版本,Java Chassis需要2.3.5及以上版本。 老版本未开启安全认证的ServiceComb引擎专享版,升级到新版本并开启安全认证的场景,请参考管理ServiceComb引擎专享版安全认证。 父主题: 使用安全认证
  • Spring Cloud微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 spring: cloud: servicecomb: credentials: account: name: test #结合用户实际值配置 password: mima #结合用户实际值配置 cipher: default 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现password的加密存储算法。 环境变量注入方式 为微服务添加如表1所示环境变量。 添加环境变量,请参考管理应用环境变量。 表1 环境变量 环境变量 说明 spring_cloud_servicecomb_credentials_account_name 结合用户实际值配置。 spring_cloud_servicecomb_credentials_account_password 结合用户实际值配置。 说明: 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现password的加密存储算法。
  • Java Chassis微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“microservice.yml”文件增加以下配置,若已配置请忽略。 servicecomb: credentials: rbac.enabled: true #结合用户实际值配置 cipher: default account: name: test #结合用户实际配置 password: mima #结合用户实际配置 cipher: default 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考配置安全认证参数。 环境变量注入方式 为微服务添加如表2所示环境变量。 添加环境变量,请参考管理应用环境变量。 表2 环境变量 环境变量 说明 servicecomb_credentials_rbac_enabled true:开启安全认证。 false:不开启安全认证。 servicecomb_credentials_account_name 结合用户实际值配置。 servicecomb_credentials_account_password 结合用户实际值配置。 说明: 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考配置安全认证参数。
  • 删除配置 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 单击“配置管理”。 未开启安全认证的ServiceComb引擎,请执行6。 开启安全认证的ServiceComb引擎,请执行5。 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root账号名及创建ServiceComb引擎时输入的密码。 创建账号请参考新增账号。 选中待操作的配置项,单击“删除”,也可单击待操作配置项“操作”列的“删除”。 在弹出框单击“确定”,删除配置项。
  • 编辑配置 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 单击“配置管理”。 未开启安全认证的ServiceComb引擎,请执行6。 开启安全认证的ServiceComb引擎,请执行5。 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root账号名及创建ServiceComb引擎时输入的密码。 创建账号请参考新增账号。 单击待操作配置项“操作”列的“编辑”,编辑配置项的值。 单击“确定”,配置项修改。
  • 创建配置 配置管理提供微服务间的公共配置,如日志级别、运行参数等。配置添加以后,如果微服务没有自定义相同的配置项,会将该配置作为默认配置使用。 配置项使用明文存储,请勿附带敏感数据。 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 单击“配置管理”。 未开启安全认证的ServiceComb引擎,请执行6。 开启安全认证的ServiceComb引擎,请执行5。 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root账号名及创建ServiceComb引擎时输入的密码。 创建账号请参考新增账号。 单击“创建配置”。 在“创建配置”页面, 选择微服务环境,并输入“配置项”和“值”。 单击“确定”完成配置添加。
  • 导入配置 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 在页面上方“微服务引擎”下拉列表,选择待操作的微服务引擎。 单击“配置管理”。 未开启安全认证的ServiceComb引擎,请执行7。 开启安全认证的ServiceComb引擎,请执行6。 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root账号名及创建ServiceComb引擎时输入的密码。 创建账号请参考新增账号。 单击“导入”。 选择微服务环境,单击“导入文件”,选择待导入配置文件。 每次导入的配置项条目数量最多为150条。 单击“关闭”完成配置文件导入。
  • 导出配置 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 单击“配置管理”。 未开启安全认证的ServiceComb引擎,请执行6。 开启安全认证的ServiceComb引擎,请执行5。 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root账号名及创建ServiceComb引擎时输入的密码。 创建账号请参考新增账号。 单击“全部导出”,配置文件导出成功。
  • 恢复备份数据 备份数据恢复会使用备份的历史数据(包括微服务、契约、配置、账号角色信息)覆盖ServiceComb引擎当前数据,可能导致微服务、服务实例错乱,动态配置丢失等问题,请谨慎操作! 若ServiceComb开启了安全认证,则备份数据中包含其账号信息,建议关闭安全认证后再进行恢复备份数据,否则恢复后可能存在访问ServiceComb引擎认证失败的问题。 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 在“备份与恢复”区域,单击指定备份数据后面“操作”列的“恢复备份”。 勾选“我已经阅读并充分了解该风险”。 单击“确定”,恢复备份数据。可在“备份与恢复”区域单击“恢复记录”,查看恢复状态。
  • 自动备份 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 在“备份与恢复”区域,单击“自动备份设置”,配置备份参数。 表1 自动备份参数说明 参数 说明 自动备份 关闭自动备份后将会删除之前设置的备份策略,需要重新设置。 备份周期 设置备份周期。 开启“自动备份”后生效。 触发时间 设置备份任务开启的时间,仅支持整点。 开启“自动备份”后生效。 单击“确定”,完成备份策略的配置。 设置备份策略后,将在预设时间之后1小时内触发备份任务。
  • 开启公网DNS解析 新创建的Nacos引擎,提供的注册 域名 为{engine-id}.nacos.{region-id}.cse.myhuaweicloud.com,无需执行公网DNS解析。 对于历史创建的Nacos引擎提供的注册域名为{engine_name}.nacos.cse.com,您在使用此域名时必须使用华为云内网DNS,若您有自己提供的公网DNS解析服务器,将无法使用当前提供的域名,因此,需要通过开启公网DNS解析,将内网域名生成一个新的域名,该域名可以通过公网DNS解析到,但只能通过内网vpc访问。 此功能当前仅在华北-北京四、华东-上海一支持。 登录微服务引擎控制台。 在左侧导航栏选择“注册配置中心”。 单击待操作的Nacos实例名称。 在“连接信息”区域,单击“开启公网DNS解析”。 在弹出的确认框中单击“确定”,待实例运行状态由“配置中”变成“可用”时,域名解析成功。 当历史创建的Nacos引擎版本为2.1.0.2版本时,域名解析成功后,其域名为{engine-id}.nacos.{region-id}.cse.myhuaweicloud.com。 当历史创建的Nacos引擎版本为2.1.0.1或2.1.0版本,且域名为{engine-name}.nacos.cse.com时,域名解析成功后,其内网域名为{engine-name}.nacos.cse.com,公网域名为{engine-id}.nacos.{region-id}.cse.myhuaweicloud.com。 当历史创建的Nacos引擎版本为2.1.0,且内网地址为{engine-ip}时,域名解析成功后,其内网域名为{engine-ip},公网域名为{engine-id}.nacos.{region-id}.cse.myhuaweicloud.com。 父主题: 管理注册配置中心
  • 系统管理概述 同一个ServiceComb引擎可能会有多个用户共同使用,而不同的用户根据其责任和权限,需要具备不同的ServiceComb引擎访问和操作权限。 开启了“安全认证”的ServiceComb引擎专享版,通过微服务控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。 开启了“安全认证”的ServiceComb引擎专享版,支持Spring Cloud、Java Chassis微服务框架正常接入。 基于RBAC的系统管理功能与 IAM 权限管理无关,仅是 CS E内部的权限管理机制。 如果您通过微服务引擎控制台操作ServiceComb引擎,必须同时具备IAM和RBAC的操作权限,且IAM权限优先级要高于RBAC权限。 如果您通过API接口或者微服务框架操作ServiceComb引擎,则只需具备RBAC相关权限。 您可以使用关联了admin角色权限的账号创建新账号,根据实际业务需求把合适的角色同账号关联。使用该账号的用户则具有对该ServiceComb引擎的相应的访问和操作权限。 创建开启了“安全认证”的ServiceComb引擎专享版时,系统自动创建1个关联了admin角色权限的root账号。不能编辑、删除root账号。 您可以使用创建该ServiceComb引擎的root账号或者该ServiceComb引擎下关联了admin角色权限的账号创建新账号。创建和管理账号,请参考账号管理。 您可以使用关联了admin角色权限的账号创建自定义角色,根据业务需求把合适的ServiceComb引擎访问和操作权限赋予该角色。 系统默认内置两种角色:管理员(admin)、开发者(developer)。不能编辑、删除内置角色。 您可以使用创建该ServiceComb引擎的root账号或者该ServiceComb引擎下关联了admin角色权限的账号创建自定义角色。创建和管理角色,请参考角色管理。 角色权限说明,请参见表1。 表1 角色权限说明 角色 权限说明 admin 具有该ServiceComb引擎下所有微服务、账号和角色的所有操作权限。 developer 具有该ServiceComb引擎下所有微服务的所有操作权限。 自定义角色 根据实际业务需求创建角色,给角色分配相应微服务的操作权限。 父主题: 系统管理
  • 存在大Key/热Key,有什么影响? 类别 影响 大Key 造成规格变更失败。 Redis集群变更规格过程中会进行数据rebalance(节点间迁移数据),单个Key过大的时候会触发Redis内核对于单Key的迁移限制,造成数据迁移超时失败,Key越大失败的概率越高,大于512MB的Key可能会触发该问题。 造成数据迁移失败。 数据迁移过程中,如果一个大Key的元素过多,则会阻塞后续Key的迁移,后续Key的数据会放到迁移机的内存Buffer中,如果阻塞时间太久,则会导致迁移失败。 容易造成集群分片不均的情况。 各分片内存使用不均。例如某个分片占用内存较高甚至首先使用满,导致该分片Key被逐出,同时也会造成其他分片的资源浪费。 各分片的带宽使用不均。例如某个分片被频繁流控,其他分片则没有这种情况。 客户端执行命令的时延变大。 对大Key进行的慢操作会导致后续的命令被阻塞,从而导致一系列慢查询。 导致实例流控。 对大Key高频率的读会使得实例出方向带宽被打满,导致流控,产生大量命令超时或者慢查询,业务受损。 导致主备倒换。 对大Key执行危险的DEL操作可能会导致主节点长时间阻塞,从而导致主备倒换。 热Key 容易造成集群分片不均的情况。 造成热Key所在的分片有大量业务访问而同时其他的分片压力较低。这样不仅会容易产生单分片性能瓶颈,还会浪费其他分片的计算资源。 使得CPU冲高。 对热Key的大量操作可能会使得CPU冲高,如果表现在集群单分片中就可以明显地看到热Key所在的分片CPU使用率较高。这样会导致其他请求受到影响,产生慢查询,同时影响整体性能。业务量突增场景下甚至会导致主备切换。 易造成缓存击穿。 热Key的请求压力过大,超出Redis的承受能力易造成缓存击穿,即大量请求将被直接指向后端的数据库,导致数据库访问量激增甚至宕机,从而影响其他业务。 父主题: 大Key/热Key分析/过期Key扫描
  • DCS缓存实例的数据被删除后,能否找回? 如果DCS缓存实例执行了备份操作,实例的数据被删除后,可通过备份文件对数据进行恢复,但是恢复会覆盖备份时间到恢复这段时间的写入数据。 主备、集群和读写分离实例通过控制台的“备份与恢复”功能将已备份的数据恢复到DCS缓存实例中,参考实例恢复。 另外,如果DCS缓存实例被删除,实例中原有的数据将被删除,实例的备份数据也会删除,请谨慎操作。在删除实例之前,您可以将实例的备份文件下载,本地永久保存,如需恢复数据,可将本地备份文件迁移到新的实例中。下载备份数据的方式,请参考如何导出Redis实例数据?。 父主题: Redis使用
  • 版本差异 DCS在创建实例时,Redis可选择“版本号”、“实例类型”。 DCS Redis 3.0已下线,暂停售卖,建议使用Redis 4.0/5.0/6.0。 版本号 版本号共有3.0,4.0,5.0,6.0版本可以选择,它们的区别如表1。更多Redis 4.0和Redis 5.0的特性,请参考Redis4.0新特性介绍“”和Redis5.0新特性介绍章节。 表1 不同版本支持的特性、性能差异说明 比较项 Redis 3.0 Redis 4.0 & Redis 5.0 Redis 6.0 兼容开源版本 Redis 3.0兼容开源3.0.7版本 Redis 4.0兼容开源4.0.14版本,Redis 5.0兼容开源5.0.14版本 说明: 2022年2月之前创建的Redis 5.0实例,兼容开源5.0.9版本。 开源版本查询可以参考如何查询Redis实例的原生版本。 如果需要兼容5.0.14版本的Redis,请重新创建实例。目前不支持Redis升级。 Redis 6.0基础版兼容开源6.2.7版本 Redis 6.0企业版兼容开源KeyDB 6.0.16版本 实例部署模式 采用虚机部署 在物理机上容器化部署 在物理机上容器化部署 CPU架构 支持x86 支持x86 支持X86 创建实例耗时 3~15分钟,集群约10~30分钟 约8秒 约8秒 QPS 单节点约10万QPS 单节点约10万QPS 基础版单节点约15万QPS 企业版单节点约40万QPS 公网访问 支持 暂不支持 暂不支持 域名连接 支持VPC内使用域名连接 支持VPC内使用域名连接 支持VPC内使用域名连接 可视化数据管理 不支持 提供Web CLI访问Redis,管理数据 提供Web CLI访问Redis,管理数据 实例类型 支持单机、主备、Proxy集群 支持单机、主备、Proxy集群、Cluster集群 基础版支持单机、主备、Cluster集群 企业版暂只支持主备 实例规格 提供2G、4G、8G直至1024G多种规格 提供2G、4G、8G直至1024G多种规格,同时单机主备还支持128MB、256MB、512MB、1GB四种小规格实例 提供4G、8G、16G、32G、64G多种规格,同时单机主备还支持128MB、256MB、512MB、1GB四种小规格实例 扩容/缩容 支持在线扩容和缩容 支持在线扩容和缩容 支持在线扩容和缩容 备份恢复 主备和Proxy集群实例支持 主备、Proxy集群和Cluster集群实例支持 主备 由于Redis不同版本的底层架构不一样,在创建Redis实例时,确定Redis版本后,将不能修改,如Redis 3.0暂不支持升级到Redis 4.0或者Redis 5.0。如果需要由低版本升级到高版本,建议重新购买高版本实例,然后进行数据迁移。 实例类型 Redis实例类型分为单机、主备、Proxy集群、Cluster集群,它们的架构与应用场景,请参考实例类型章节。 父主题: 实例类型/版本
  • DCS是否使用哨兵模式管理Redis实例? Redis 4.0/5.0/6.0主备、读写分离实例,以及集群实例的每个分片(每个分片也是一个主备实例),都使用了哨兵模式(Sentinel)进行管理,Sentinel会一直监控主备节点是否正常运行,当主节点出现故障时,自动进行主备节点切换,切换完成后恢复正常访问,无需用户进行操作。 Sentinel对用户不可见,仅在服务内部中使用。 Redis 3.0不支持哨兵模式,使用的是keeplived进行监控,当主节点故障时进行主备切换,备节点自动接管服务,无需用户进行操作。 父主题: 安全性
  • Redis实例支持的逐出策略 在达到内存上限(maxmemory)时,Redis支持选择以下8种数据逐出策略: noeviction:在这种策略下,如果缓存达到了配置的上限,实例将不再处理客户端任何增加缓存数据的请求,比如写命令,实例直接返回错误给客户端。缓存达到上限后,实例只处理删除和少数几个例外请求。 allkeys-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,使得新添加的数据有空间存放。 volatile-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,但仅限于具有“expire”字段集的键,使得新添加的数据有空间存放。 allkeys-random:回收随机的键使得新添加的数据有空间存放。 volatile-random:回收随机的键使得新添加的数据有空间存放,但仅限于具有“expire”字段集的键。 volatile-ttl:回收具有“expire”字段集中的键,且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。 allkeys-lfu:从所有键中驱逐最不常用的键。 volatile-lfu:从具有“expire”字段集的所有键中驱逐最不常用的键。 当没有键满足回收前提条件时,数据逐出策略volatile-lru、volatile-random、volatile-ttl与noeviction策略相同,具体见上文noeviction介绍。 2020年7月之前创建的Redis实例,逐出策略默认为noeviction。2020年7月及之后创建的实例,逐出策略默认为volatile-lru。
  • 响应示例 状态码: 200 请求成功。 { "api_version" : "v1", "kind" : "ComponentEvent", "items" : [ { "name" : "ScalingReplicaSet", "message" : "Scaled up replica set test-image-5787bf845c to 1", "status" : "Normal", "count" : 1, "involved_object" : "test-image", "involved_object_kind" : "Component", "created_at" : "2023-02-16T17:35:04+08:00", "updated_at" : "2023-02-16T17:35:04+08:00" }, { "name" : "Scheduled", "message" : "Successfully assigned 79c4xxxf5f3a4xxxda92601xxx64b1e8c-test/test-image-5787bf845c-wzz99 to 172.xx.xx.xxx", "status" : "Normal", "count" : 0, "involved_object" : "test-image-5787bf845c-wzz99", "involved_object_kind" : "ComponentInstance", "created_at" : "2023-02-16T17:35:04+08:00", "updated_at" : "2023-02-16T17:35:04+08:00" }, { "name" : "SuccessfulMountVolume", "message" : "Successfully mounted volumes for pod \"test-image-5787bf845c-wzz99_79c4xxxf5f3a4xxxda92601xxx64b1e8c-test(d59a645b-730d-4a1a-951f-822a71dcdb9d)\"", "status" : "Normal", "count" : 2, "involved_object" : "test-image-5787bf845c-wzz99", "involved_object_kind" : "ComponentInstance", "created_at" : "2023-02-16T17:35:04+08:00", "updated_at" : "2023-02-16T17:35:06+08:00" }, { "name" : "Pulled", "message" : "Container image \"nginx:stable-alpine-perl\" already present on machine", "status" : "Normal", "count" : 1, "involved_object" : "test-image-5787bf845c-wzz99", "involved_object_kind" : "ComponentInstance", "created_at" : "2023-02-16T17:35:05+08:00", "updated_at" : "2023-02-16T17:35:05+08:00" }, { "name" : "SuccessfulCreate", "message" : "Created container test-image", "status" : "Normal", "count" : 1, "involved_object" : "test-image-5787bf845c-wzz99", "involved_object_kind" : "ComponentInstance", "created_at" : "2023-02-16T17:35:05+08:00", "updated_at" : "2023-02-16T17:35:05+08:00" }, { "name" : "Started", "message" : "Started container test-image", "status" : "Normal", "count" : 1, "involved_object" : "test-image-5787bf845c-wzz99", "involved_object_kind" : "ComponentInstance", "created_at" : "2023-02-16T17:35:05+08:00", "updated_at" : "2023-02-16T17:35:05+08:00" } ] }
  • URI GET /v1/{project_id}/cae/applications/{application_id}/components/{component_id}/events 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取项目ID请参见获取项目ID。 application_id 是 String 应用ID。 component_id 是 String 组件ID。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 api_version String API版本,固定值“v1”,该值不可修改。 枚举值: v1 kind String API类型,固定值“ComponentEvent”,该值不可修改。 枚举值: ComponentEvent items Array of EventItem objects 事件项。 表4 EventItem 参数 参数类型 描述 name String 事件名称。 involved_object_kind String 涉及对象类型。 枚举值: Component ComponentInstance ComponentScaling involved_object String 涉及对象。 message String 组件事件信息。 created_at String 创建时间。 updated_at String 更新时间。 status String 组件事件状态。 枚举值: Warning Normal count Integer 事件发生次数。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 获取Token ,请参考《 统一身份认证 服务API参考》的“获取用户Token”章节。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 最大长度:16384 X-Enterprise-Project-ID 否 String 企业项目ID。 创建环境时,环境会绑定企业项目ID。 最大长度36字节,带“-”连字符的UUID格式,或者是字符串“0”。 该字段不传(或传为字符串“0”)时,则查询默认企业项目下的资源。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 X-Environment-ID 是 String 环境ID。 获取环境ID,通过《云应用引擎API参考》的“获取环境列表”章节获取环境信息。 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息,其中id字段即是环境ID。
  • 原因分析 查看mysql.user表中的root账号信息,排查客户端IP范围是否正确、是否使用SSL。 SELECT * FROM mysql.user WHERE User='root'; 如果发现root账号的ssl_type被设置为ANY,表明root账号需要使用SSL连接。 查看SSL开启情况。 show variables like '%ssl%'; 发现该实例未开启SSL: 因此,问题原因是自行修改root账号的ssl_type为ANY后,导致无法登录。
  • 解决方案 对于mariadb-java-client-2.7.5的连接串应该为: 不提供CA证书,不对服务端证书校验: String url = "jdbc:mysql://ip:port/mysql?useSsl=true&trustServerCertificate=true"; 提供CA证书,对服务端证书进行校验: String url = "jdbc:mysql://ip:port/mysql?useSsl=true&serverSslCert=D:\\ca.pem&disableSslHostnameVerification=true"; 注意:RDS for MySQ L实例 不支持hostname校验,因此需要设置disableSslHostnameVerification=true,不同mariadb jar包版本设置方式不同,可查看对应版本的使用说明。
  • 场景描述 在搭建canal环境,使用指定用户从RDS for MySQL获取Binlog时,启动canal经常会报如下错误:'show master status' has an error! Access denied: you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation 报错信息如下: 2021-01-10 23:58:32.964 [destination = evoicedc , address = /dbus-mysql:3306 , EventParser] ERROR xxx.common.alarm.LogAlarmHandler - destination:evoicedc[xxx.parse.exception.CanalParseEx ception: command : 'show master status' has an error! Caused by: java.io.IOException: ErrorPacket [errorNumber=1227, fieldCount=-1, message=Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation, sqlState=42000, sqlStateMarker=#] with command: show master status at xxx.parse.driver.mysql.MysqlQueryExecutor.query(MysqlQueryExecutor.java:61)
  • 原因分析 如果用户旧账号是通过delete删除,再次创建用户会报错。 创建用户时,一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而grant语法创建的用户直接拥有所分配的权限。 使用drop user方法删除用户的时候,会连通db表和权限表一起清除。而使用delete from mysql.user只会删除user表里的记录,如果用show grants for username来查看,会发现这个用户的相关权限依然有残留,这时候再新建一样的用户,就会触发校验导致创建失败。
  • 解决方案 由于8.0版本不支持password函数,因此需要通过以下步骤恢复: 找出rdsAdmin账号的authentication_string字段,使用以下命令更新: update mysql.user set authentication_string='XXX' 其中XXX为新修改的密码。 重置root账号密码。 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX'; flush privileges; 修改后用户就可以正常登录root账号。
  • 原因分析 查询确认,发现消失的账号在mysql.user表中已经被删除,因此在控制台不再显示。 使用账号名和旧密码还能连接登录,说明使用的是delete from mysql.user方式删除用户。使用这种方式删除用户,需要执行flush privileges后,才会清理内存中相关数据,该用户才彻底不能登录。 使用delete from mysql.user方式删除用户,无法重新创建相应账户(报错ERROR 1396),原因是内存中相关数据仍然存在。 正确删除用户的方式为drop user语句,注意以下几点: drop user语句可用于删除一个或多个用户,并撤销其权限。 使用drop user语句必须拥有MySQL数据库的DELETE权限或全局CREATE USER权限。 在drop user语句的使用中,若没有明确地给出账户的主机名,则该主机名默认为“%”。 故障场景恢复示例: 创建用户后用delete删除用户,再创建同名用户时报错ERROR 1396。通过执行flush privileges后,可正常创建同名用户。
共100000条