华为云用户手册

  • AppStage业务控制台主页(企业成员视角) 以企业成员账号登录AppStage业务控制台,默认进入业务控制台主页。 AppStage业务控制台主页分为顶部导航栏、快捷入口、我的待办/我的申请、应用基础信息、公告、帮助文档六大功能区域,如图1所示,各功能区域说明请参见表1。 图1 AppStage业务控制台主页(企业成员视角) 表1 AppStage业务控制台主页各功能区域说明 编号 功能区域 说明 1 顶部导航栏 业务控制台的功能导航栏,包括: 产品与服务(产品管理、服务管理、微服务管理) 权限(权限申请) (帮助文档、新手指引) 账号信息(登录账号的相关信息管理) 2 使用引导 在使用AppStage前需要已按照此使用引导完成初始化配置。 3 基础信息 查看企业拥有的产品、服务、微服务的相关信息,详细介绍请参见查看产品与服务信息。 4 平台服务 进入AppStage的AI原生应用引擎、开发中心、运维中心、运营中心的快捷入口。企业成员需要申请不同中心的角色,从而具备对应角色的操作权限,可申请的角色以及对应的权限范围请参见权限管理。 5 公告 查看项目活动的相关公告、通知。 说明: 业务控制台主页当前生效的公告,且最多显示3条公告,单击此区域右上角“更多”可查看更多生效的公告。 6 我的待办/我的申请 选择“我的待办”或“我的申请”页签,可查看我名下的待办或申请的相关事项。 说明: 当“我的待办”或“我的申请”超过4条后,将在“我的待办”或“我的申请”区域右上角显示“更多”按钮,单击“更多”可进入“我的待办”/“我的申请”界面查看全部信息。 7 帮助文档 快速跳转至高频使用的功能详细指导文档。 父主题: 企业成员操作指南
  • 更多操作 创建微服务信息完成后,您还可以执行如下表1的操作。 表1 更多操作 操作 步骤 查看微服务信息 单击微服务列表中的服务中文名称,可查看微服务详情。 编辑微服务信息 说明: 仅可编辑“状态”为“草稿”的微服务的信息。 单击微服务列表“操作”列的“编辑”。 在“编辑微服务”页面编辑微服务中文名(不可编辑微服务所属服务和微服务英文名)。 单击“确认”。 删除微服务信息 说明: 仅可删除“状态”为“草稿”的微服务的信息。 单击微服务列表中“状态”为“草稿”的微服务“操作”列的“删除”。 单击“确定”。 发布微服务信息 说明: 仅可发布“状态”为“草稿”或“已下线”的微服务信息。 单击微服务列表“操作”列的“发布”(发布后服务无法删除,请谨慎操作)。 单击“确定”,该微服务信息将发布到已购买的AppStage相关中心。 同步微服务信息 说明: 发布服务信息后,如果在AppStage相关中心未同步到该微服务信息,可使用此“同步”功能重新同步微服务信息。 仅可同步非“草稿”状态的微服务信息。 单击微服务列表“操作”列的“同步”。 单击“确定”,该微服务信息将同步到已购买的AppStage相关中心。 下线微服务信息 说明: 下线微服务后AppStage的开发中心、运维中心等中心无法使用该微服务,请谨慎操作;下线后可以在“操作”列再次单击“发布”重新上线该微服务信息。 单击微服务所在行“操作列”列“下线”。 在“下线微服务”对话框输入“确定下线”,并单击“确定”。
  • 更多操作 创建服务信息完成后,您还可以执行如下表1的操作。 表1 更多操作 操作 步骤 查看服务详情 单击服务列表中服务中文名,可查看服务详情。 编辑服务信息 说明: 仅可编辑“状态”为“草稿”的服务信息。 单击服务列表“操作”列的“编辑”。 在“编辑服务”页面编辑服务中文名(不可编辑服务所属产品和服务英文名),然后单击“确定”。 删除服务信息 说明: 仅可删除“状态”为“草稿”的服务信息。 单击服务列表中“状态”为“草稿”的服务“操作”列的“删除”。 单击“确定”。 发布服务信息 说明: 仅可发布“状态”为“草稿”或“已下线”的服务信息。 单击服务列表“操作”列的“发布”(发布后服务无法删除,请谨慎操作)。 单击“确定”,该服务信息将发布到已购买的AppStage相关中心。 同步服务信息 说明: 发布服务信息后,如果在AppStage相关中心未同步到该服务信息,可使用此“同步”功能重新同步服务信息。 仅可同步非“草稿”状态的服务信息。 单击服务列表“操作”列的“同步”。 单击“确定”,该服务信息将同步到已购买的AppStage相关中心。 下线服务信息 说明: 下线服务需确保该服务下的微服务已下线,下线后AppStage的开发中心、运维中心等中心无法使用该服务,请谨慎操作;下线后可以在“操作”列再次单击“发布”重新上线该服务信息。 单击服务列表“操作”列的“下线”。 在“下线服务”对话框输入“确定下线”,并单击“确定”。
  • 更多操作 创建产品信息完成后,您还可以执行如表1所示的操作。 表1 更多操作 操作 步骤 查看产品信息 单击产品列表中产品中文名,可查看产品详情。 编辑产品信息 说明: 仅可编辑“状态”为“草稿”的产品信息。 单击产品列表“操作”列的“编辑”。 在“编辑产品”页面编辑产品中文名(不可以编辑产品归属部门和产品英文名)。 删除产品信息 说明: 仅可删除“状态”为“草稿”的产品信息。 单击产品列表中“状态”为“草稿”的产品“操作”列的“删除”。 单击“确定”。 发布产品信息 说明: 仅可发布“状态”为“草稿”或“已下线”的产品信息。 单击产品列表“操作”列的“发布”(发布后产品无法删除,请谨慎操作)。 单击“确定”,该产品信息将发布到已购买的AppStage相关中心。 同步产品信息 说明: 发布产品信息后,如果在AppStage相关中心未同步到该产品信息,可使用此“同步”功能重新同步产品信息。 仅可同步非“草稿”状态的产品信息。 单击产品列表“操作”列的“同步”。 单击“确定”,该产品信息将同步到已购买的AppStage相关中心。 下线产品信息 说明: 下线产品需确保该产品下的服务及微服务已下线,下线后AppStage的开发中心、运维中心等中心无法使用该产品,请谨慎操作;下线后可以在“操作”列再次单击“发布”重新上线该产品信息。 单击产品列表“操作”列的“下线”。 在“下线产品”对话框输入“确定下线”,并单击“确定”。
  • 更多操作 在组织信息页面还可执行如表2所示的操作。 表2 更多操作 操作 说明 更新组织信息(基本信息和联系信息) 在组织信息页面右侧单击“更新”。 参考表1编辑参数信息(其中组织ID、创建时间和规模不可编辑)。 单击“保存”。 解散组织 说明: 如果选择解散当前组织,解散组织后所有部门、应用、成员以及相关信息都将会被永久删除,且该选择无法撤销,请谨慎操作。 在组织信息页面下方的“解散组织”区域单击“解散”。 在“解散组织”对话框单击“确认”即可。
  • 更多操作 部门添加成功后,您还可以进行如下表1所示的操作。 表1 更多操作 操作名称 操作步骤 编辑部门 单击待修改部门所在行“操作”列下的“编辑部门”。 修改部门信息,单击“更新”。 说明: 组织创建成功后,会默认生成一个一级部门,该一级部门不支持编辑。 删除部门 单击待删除部门所在行“操作”列下的“删除”。 单击“确认”。 说明: 删除部门前,需要先删除该部门下所有子部门,否则无法删除部门。 删除部门后,数据无法恢复,请谨慎操作。
  • 概述 组织管理是AppStage集成组织成员账号 OrgID服务的能力,面向企业提供组织管理、企业成员账号管理以及SaaS应用授权管理能力的云服务。OrgID将Huawei ID账号体系延伸到企业用户,提供统一华为云面向生态SaaS服务的组织、账号,面向生态伙伴推出SaaS服务账号集成规范。 本文档主要介绍AppStage使用组织成员账号 OrgID服务的操作:部门管理、成员管理、查看组织信息。 父主题: 组织管理
  • AppStage业务控制台主页(管理员视角) 具备组织管理员权限的账号登录AppStage业务控制台,默认进入业务控制台主页。 AppStage业务控制台主页分为顶部导航栏、快捷入口、我的待办/我的申请、应用基础信息、公告、帮助文档六大功能区域,如图1所示,各功能区域说明请参见表1。 图1 AppStage业务控制台主页(管理员视角) 表1 AppStage业务控制台主页各功能区域说明 编号 功能区域 说明 1 顶部导航栏 业务控制台的功能导航栏,包括: 产品与服务(产品管理、服务管理、微服务管理) 公告(公告管理) 组织(部门管理、成员管理) 权限(权限申请) (帮助文档、新手指引) 账号信息(登录账号的相关信息管理) 2 使用引导 在使用AppStage前可按照此使用引导完成初始化配置: 部门与成员管理(添加部门、添加成员) 应用基础信息管理(创建产品、创建服务) 角色权限配置(为组织成员配置各中心不同岗位的角色权限) 3 基础信息 对企业拥有的产品、服务、微服务的相关信息进行规范管理和维护。主要包括: 产品管理:创建、查看、编辑、删除、发布、同步或下线产品相关信息,详细介绍请参见产品管理。 服务管理:创建、查看、编辑、删除、发布、同步或下线服务相关信息,详细介绍请参见服务管理。 微服务管理:创建、查看、编辑、删除、发布、同步或下线微服务相关信息,详细介绍请参见微服务管理。 4 平台服务 进入AppStage的AI原生应用引擎、开发中心、运维中心、运营中心的快捷入口。用户需要申请不同中心的角色,从而具备对应角色的操作权限,可申请的角色以及对应的权限范围请参见权限管理。 5 我的待办/我的申请 选择“我的待办”或“我的申请”页签,可查看我名下的待办或申请的相关事项。 说明: 当“我的待办”或“我的申请”超过4条后,将在“我的待办”或“我的申请”区域右上角显示“更多”按钮,单击“更多”可进入“我的待办”/“我的申请”界面查看全部信息。 6 公告 查看、修改、删除、置顶/取消置顶项目活动的相关公告、通知。详细介绍请参见公告管理。 7 帮助文档 快速跳转到高频问题的详细指导文档。 父主题: 管理员操作指南
  • 相关概念 组织管理员:AppStage系统级管理员为组织管理员,组织管理员可以进行的操作请参见管理员操作指南。组织管理员分为两类,具体如下: 组织管理员(租户开通者):购买AppStage的华为账号默认为组织管理员,作为当前应用平台云服务的开通者,除具有应用平台内套餐的订购权限外,具备当前租户下AppStage业务控制台全部的操作权限,如系统级功能的维护,如公告的新增/修改/删除、应用基础信息(产品、服务、微服务)的新增/修改/删除等。 组织管理员(非租户开通者):由组织管理员添加的企业成员,且该企业成员已申请组织管理员权限。具备AppStage业务控制台全部的操作权限,如系统级功能的维护,如公告、应用基础信息(产品、服务、微服务)等。 企业成员:由组织管理员在AppStage业务控制台添加的成员,企业成员在AppStage业务控制台的操作请参见企业成员操作指南。企业成员还可以申请各类不同的角色,从而具备对应角色的操作权限。企业成员可申请的角色以及对应的权限范围请参见权限管理。
  • 计费说明 连接器是承载在 交换数据空间 实例的基本组成元素,只有在同一空间实例下的连接器才可以交换数据。根据用户开通连接器时的连接器实例和确认的数据存储容量收费。具体内容如表1所示。 表1 连接器计费项 计费项 计费项说明 适用的计费模式 计费公式 连接器 连接器实例提供存储和交换数据的能力。 计费因子:规格。 包年/包月 连接器规格单价 * 购买时长 结构化数据增量包 连接器中存储结构化数据。 计费因子:容量。 包年/包月 数据存储容量 * 存储量单价*购买时长 非结构化数据增量包 连接器中存储非结构化数据。 计费因子:容量。 包年/包月 数据存储容量 * 存储量单价*购买时长
  • 计费示例 以下案例中出现的费用价格仅供参考。 假设您于2023年7月1日购买了一个包年/包月的连接器,计费项包括连接器规格、数据存储容量(结构化和非结构化),购买时长为一个月,并在到期前手动续费一个月。则分为两个计费周期 第一个计费周期为:2023/07/01 15:50:04 ~ 2023/08/01 23:59:59 第二个计费周期为:2023/08/01 23:59:59 ~ 2023/09/01 23:59:59 第一个计费周期,连接器单独费用:11390元/月 * 1月 = 11390元。开通连接器时包括10GB的结构化数据和20GB的非结构化数据,结构化数据存储容量费用:6元/GB/月 *1月 * 10GB = 60元,非机构化数据存储容量费用:0.65元/GB/月 * 1月 * 20GB = 13元。 7月的连接器费用为:11390元 + 60元 + 13元 =11463元。 第二个计费周期与第一个计费周期花费一致,总费用为11463元。
  • 在费用中心续费 登录管理控制台。 单击“控制台”页面上方“费用与成本”,在下拉菜单中选择“续费管理”,进入“续费管理”页面。 自定义查询条件。 可在“手动续费项”、“自动续费项”、“到期转按需项”、“到期不续费项”页签查询全部待续费资源,对资源进行手动续费的操作。 图2 续费管理 所有需手动续费的资源都可归置到“手动续费项”页签,具体操作请参见如何恢复为手动续费。 手动续费资源。 单个续费:在资源页面找到需要续费的资源,单击操作列的“续费”。 图3 单个续费 批量续费:在资源页面勾选需要续费的资源,单击列表左上角的“批量续费”。 图4 批量续费 仅支持包月或包年的产品批量续费,不能一起续费。 选择空间实例(以交换数据空间实例说明)的续费时长,判断是否勾选“统一到期日”,将空间实例到期时间统一到各个月的某一天(详细介绍请参见统一包年/包月资源的到期日)。确认配置费用后单击“去支付”。 图5 续费确认 进入支付页面,选择支付方式,确认付款,支付订单后即可完成续费。
  • 变更配置后对计费的影响 当前DDoS实例资源的规格不满足您的业务需要时,您可以在DDoS防护控制台发起升级规格操作,变更时系统将按照如下规则为您计算变更费用: 资源升配:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 资源降配:DDoS实例暂不支持降配。 如果您需要从BGP 10G包月版本(假设:8700元/月)升级至BGP Pro 10G包月版本(假设:9800元/月),您当前版本剩余天数还20天。 计算公式如下: 升配费用=(新配置包月价格/30-旧配置包月价格/30)*剩余周期 那么你需要补充的费用是:(9800/30-8700/30)x20=733.34元。 更多信息请参见变更资源规格费用说明。
  • 到期后影响 图2描述了包年/包月DDoS实例各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图2 DDoS实例生命周期 到期预警 包年/包月DDoS实例在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月DDoS实例到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以使用DDoS防护服务,但以下操作将受到限制: 升级规格 如果您在宽限期内仍未续费DDoS实例,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的DDoS实例执行任何操作。 保留期到期后,如果DDoS实例仍未续费,那么DDoS实例将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个DDoS原生防护-全力防基础版实例,计费资源包括防护IP数、业务带宽。购买时长为3个月,并在到期前手动续费3个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/06/08 23:59:59 第二个计费周期为:2023/06/08 23:59:59 ~ 2023/09/08 23:59:59 图1给出了上述示例配置的费用计算过程。 图中价格仅为示例,实际价格请以控制台为准。 图1 费用计算示例
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 适用计费项 DDoS防护服务不同版本,支持包年/包月的计费项如表1所示。 表1 计费项 版本 计费项 说明 DDoS原生防护-标准版 实例 按购买的实例数量计费。 DDoS原生防护-全力防基础版 实例 按购买的实例数量计费。 防护IP数 每个实例防护的IP个数。 业务带宽 业务使用的带宽资源。 DDoS原生防护-全力防高级版 实例 按购买的实例数量计费。 防护IP数 每个实例防护的IP个数。 业务带宽 业务使用的带宽资源。 DDoS原生防护-原生防护2.0 原生防护2.0基础费用 按购买的实例数量计费。 防护IP数 每个实例防护的IP个数。 业务带宽 业务使用的带宽资源。 DDoS高防 实例数 按购买的实例数量计费。 保底防护带宽 预付费,按月/年付费。 弹性防护带宽 后付费,按天付费。 业务带宽 免费赠送100Mbps,超出部分按月/年付费。 防护 域名 数 每个实例防护的域名个数,域名接入类型才有该计费项。 DDoS高防国际版 实例数量 按购买的实例数量计费。 保底防护带宽 预付费,按月/年付费。 业务带宽 预付费,按月/年付费。 防护域名数 每个实例防护的域名个数。 转发规则数 每个实例可添加的TCP/UDP转发规则。
  • 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 账号名称或密码错误 输入正确的账号名称和密码。
  • 解决方法 可在开发环境下使用mvn dependency:tree命令查看依赖树,排查微服务开发框架同netty版本是否匹配。 例如,ServiceComb 2.0.1开发框架所匹配的netty依赖版本为4.1.45.Final。 使用maven管理复杂依赖关系,请参考:https://servicecomb.apache.org/cn/docs/maven_dependency_management/。
  • 为什么一定要定义服务契约? 企业级系统规模普遍较大,微服务组件众多,所以对服务间接口进行统一管理是企业的关键需求。微服务引擎通过契约管理满足这一需求。 管理角度:通过契约管理,企业中的接口管理者可以统一定义微服务的契约文件(符合接口描述标准的接口定义文件),从而做到规范并协调多个开发团队的接口开发,降低沟通成本且避免后期的混乱。 开发角度:在微服务开发的时候,不同团队甚至不同ISV间,可以基于统一的契约文件开发同一应用或系统,从而方便整体系统一致性的维护。具体表现在,单体应用中模块间是代码级调用,在编译期就可以解决API不兼容问题,修复成本也极低。微服务解耦后,服务间变为了远程调用,接口不一致通常发现时间较晚,会造成更大的修复成本。有了契约可以使架构师根据契约文件严格审查变更,并反向生成代码,保证兼容性。 另外,对于规模较小、统一管理要求不高的系统,产品支持从接口代码自动生成契约文件。 父主题: ServiceComb引擎
  • mesher性能损耗是多少? 服务网格技术实际利用了网络流量劫持的方式来管理服务间流量,除了mesher本身内部的逻辑处理会耗时之外,还会引起额外的用户态和内核态间转换(CPU会有额外消耗),而前者相对于后者性能影响极小,因此性能损耗基本取决于网络中传输的payload大小。以http协议举例,影响传输速度的就是header、body等内容的大小。mesher一次端到端调用中的延迟为1ms,一个典型的用户测试过自己真实的业务调用,加上mesher后,延迟高了4ms,在用户可接受范围内。 以下测试结果为加入mesher前后的性能测试对比,使用的payload很小,就是字符串helloworld,但是加入了一定的代码以增加服务端的计算时间来模仿业务代码执行耗时。 表1 测试结果 指标 使用前 使用后 TPS 1749 1496 Latency 2.8ms 3.34ms CPU 50% 100% Concurrency 5 5 从以上结果可以看出mesher本身性能损耗很低,性能的主要瓶颈是在业务代码,如果增大payload内容,性能将会进一步降低。 建议在初期选型与POC时,使用该技术进行业务间的调用以测试真实性能损耗。 父主题: ServiceComb引擎
  • 解决方案 在连接池中配置idleTimeout,确保网关的idleTimeout数值略低于服务侧的空闲连接保持时间。比如:服务的idletimeout是20s,网关设置15s即可。具体操作请参考连接池配置。 以服务侧的网络代理为Tomcat为例: Tomcat的两个参数keepAliveTimeout和connectionTimeout配置的值都不能小于应用网关中配置的idleTimeout值,配置说明请参考Apache Tomcat 9 Configuration Reference。 配置Tomcat两个参数值,有两种场景: 当为独立的springboot.jar包时,在“application.properties”文件中配置。 当为springboot.war包时,在“server.xml”文件中配置。 在路由中配置重试策略,具体操作请参考配置重试策略。 重试只对幂等请求生效。比如:POST请求无法触发重试策略。
  • 迁移背景 微服务引擎专业版为逻辑多租引擎,所有用户共用一个引擎,一旦引擎故障,会造成所有注册业务的中断。为防止此类故障发生和保证业务的连续性,请将业务从微服务引擎专业版切换至商用微服务引擎专享版。 用户业务从微服务引擎专业版迁移至专享版后,将会有以下优势: 物理隔离。微服务引擎专享版采用物理隔离的方式部署,租户独占微服务引擎。一个引擎故障不会影响其他引擎。 多AZ。微服务引擎专享版支持多AZ部署,提升可靠性。 容量大。单个微服务引擎专享版可支持2000实例,且可创建多个引擎,大大超过微服务引擎专业版(单租户500实例)。 用户从微服务引擎专业版(Cloud Service Engine)引擎切换至专享版(微服务引擎名称可自定义)后,引擎功能保持一致,对使用无影响,用户的配置、服务数据也将在切换过程中迁移到新引擎。
  • 注意事项 迁移注意事项如下: 首先需要确认是否有使用微服务引擎专业版,如果实例注册在名称为Cloud Service Engine的引擎上,说明使用了专业版。 若用户业务要迁移至微服务引擎专享版引擎,则必须先创建微服务引擎专享版引擎。高可用引擎当前规格为100,500,2000,可以根据客户自身业务实例规模进行选择。 新建微服务引擎所在VPC必须与待升级组件部署环境的VPC一致。 迁移本质上是注册中心、配置中心地址的切换,切换前,所有服务注册到旧的微服务引擎;切换后,所有服务注册到新的微服务引擎;切换过程中,部分微服务注册到新引擎,部分微服务注册到旧引擎,这两部分的微服务无法进行服务发现和调用,可能导致业务不可用。 确认部署方式,如果使用ServiceStage应用托管进行部署,可以联系运维人员获取快速迁移方案;如果未使用应用托管需要用户自己去修改配置中心以及注册中心的地址为新的专享版引擎的配置地址以及注册发现地址。若未使用ServiceStage应用托管,因为部署方式的多样性,建议迁移之前拉运维人员进行风险评估,并确认可靠的迁移方案。 迁移不仅仅是实例的迁移,也包括配置的迁移,所以需要提前备份配置中心数据,可以联系运维人员进行协助。配置迁移包括动态配置迁移以及全局配置迁移。全局配置:在专业版控制台,逐个切环境,查看是否有全局配置,若存在,需要导出进行备份。动态配置:若一个微服务没有动态配置,则可忽略该服务。若一个微服务下的某个作用域没有动态配置,则可忽略该作用域。若存在配置则可以导出动态配置并保存。 进行迁移前建议对各个微服务进行原地升级,确保无平台外因素导致升级失败。 排查是否涉及JAVA_ARGS参数,若存在需要检查是否存在以下内容: spring.cloud.servicecomb.discovery.address spring.cloud.servicecomb.credentials.enabled spring.cloud.servicecomb.credentials.accessKey spring.cloud.servicecomb.credentials.secretKey spring.cloud.servicecomb.credentials.akskCustomCipher spring.cloud.servicecomb.credentials.project 若存在,迁移后将不再需要,可以删除。 如果专享版引擎版本为2.x以上版本,使用导入配置文件功能,发现原配置中心格式的文件无法导入,提示文件为空或者格式错误,请参考ServiceComb专享版引擎版本从1.x升级到2.x时有哪些注意事项?中相应操作进行处理。
  • ServiceComb专享版引擎版本从1.x升级到2.x时有哪些注意事项? ServiceComb引擎专享版从1.x升级到2.x的过程中及升级完以后可能会出现的现象及解决方法如下: 现象1:在ServiceComb引擎专享版从1.x版本升级至2.x版本的过程中,使用接口获取配置或更新配置失败,报connection refused或Connection was closed,出现错误信息示例如下: [ERROR] Config update from xxx.xxx.xxx.xx failed. Error message is [Connection refused: xxx.xxx.xxx.xx]. org.apache.servicecomb.config.client.ConfigCenterClient$ConfigRefresh.lambda$null$13(ConfigCenterClient.java:428) 或 [ERROR]Config update from xxx.xxx.xxx.xx failed. Error message is [Connection was closed]. org.apache.servicecomb.config.client.ConfigCenterClient$ConfigRefresh.lambda$null$13(ConfigCenterClient.java:428) 解决方法:ServiceComb引擎专享版1.x版本升级至2.x版本时配置中心会有短暂的重启,重启期间获取配置或更新配置会报错断连。因此引擎升级过程中避免更新配置,升级完成后该问题即可解决。 现象2:使用引擎版本为1.x配置中心接入的用户,无法使用“业务场景治理”功能。 解决办法:由于引擎版本为2.x的配置中心换成了kie,需要将配置中心接入方式切换为kie,具体切换方式详见Spring Cloud使用配置中心中相关内容。 现象3:在使用版本为2.x的ServiceComb引擎时,使用导入配置文件功能,存在原配置中心格式的文件无法导入,提示文件为空或者格式错误。 解决办法:将配置文件的配置项格式修改为2.x引擎要求的配置文件格式,新的配置文件为json文件,内容格式如下: { "data":[ { "key":"xxx", "labels":{ "environment":"xxx", "service": "xxx", "app": "xxx", "version": "xxx" }, "value":"xxx", "value_type":"text", "status":"enabled" }, { "key":"xxx", "labels":{ "environment":"xxx" }, "value":"xxx", "value_type":"text", "status":"enabled" }, { "key":"xxx", "labels":{ "environment":"xxx", "service": "xxx" }, "value":"xxx", "value_type":"text", "status":"enabled" }, { "key":"xxx", "labels":{ "environment":"xxx", "service": "xxx", "app": "xxx" }, "value":"xxx", "value_type":"text", "status":"enabled" } ] } 其中: key和value是配置项对应的键和值,其为必填。 labels是配置范围,其为必填,通过填写environment,service,app,version等字段来确定配置范围。 value_type是配置项类型,其为必填,可以选择ini、json、text、yaml、properties、xml,默认为text。 status是配置是否启用,其为选填,可以选择enabled(开启),disabled(关闭),默认关闭。 现象4:若在ServiceComb引擎1.x版本的配置中心设置了全局配置,当升级到2.x之后,全局配置根据配置中心升级后的范围会相应的自动调整作用范围environment=${environmentName},environmentName取值可以为空、development、testing、acceptance或production。此时如果SDK调整以kie作为配置中心时,需要在项目配置文件中增加自定义标签以获取该部分配置,以下以environment=production为例展示: spring-cloud-huawei框架: spring: cloud: servicecomb: config: serverType: kie kie: customLabel: environment customLabelValue: production servicecomb-java-chassis框架: servicecomb: kie: customLabel: environment customLabelValue: production 父主题: ServiceComb引擎
  • 升级零中断 要实现升级零中断,通常需要解决如下问题: 停止服务的时候,可能引起业务中断。在停止服务的过程中,可能服务正在处理请求,新的请求可能持续的发送到该服务。 在微服务架构下,一般都会通过注册中心进行服务发现,客户端会缓存实例地址。停止服务的时候,使用者可能无法及时感知实例下线,并继续使用错误的实例进行访问,导致失败。 实现升级零中断,需要进行滚动升级,在新版本功能就绪后,才能够停止老版本。 实现升级零中断需要很多的措施进行配合,比如滚动升级,实现零中断,建议保证最小有2个可用的实例。在本章节里面,主要描述从微服务的角度进行设置,更好的配合升级零中断。Java Chassis实现零中断的核心机制包括如下几个: 优雅停机。服务停止的时候,需要等待请求完成,并拒绝新请求。 Java Chassis优雅停机默认提供,在进程退出前,会进行一定的清理动作,包括等待正在处理的请求完成、拒绝未进入处理队列的新请求、调用注册中心接口进行注销等动作。Java Chassis进程退出前,先将实例状态修改为DOWN,然后等待一段时间再进行后续的退出过程: servicecomb: boot: turnDown: # 实例状态修改为DOWN以后等待时间,默认值为0,即不等待。 waitInSeconds: 30 重试:客户端对于网络连接错误,以及被拒绝等请求,需要选择新服务器进行重试。 开启重试策略: servicecomb: loadbalance: retryEnabled: true # 是否开启重试策略 retryOnNext: 1 # 重新寻找一个实例重试的次数(不同于失败实例,依赖于负载均衡策略) retryOnSame: 0 # 在失败的实例上重试的次数 隔离:对于失败超过一定次数的服务实例,进行隔离。 开启实例隔离策略: servicecomb: loadbalance: isolation: enabled: true enableRequestThreshold: 5 # 统计周期内实例至少处理的请求数,包括成功和失败。 singleTestTime: 60000 # 实例隔离后,经过这个时间,会尝试访问。如果访问成功,则取消隔离,否则继续隔离。 continuousFailureThreshold: 2 # 实例隔离的条件,连续两次失败。 父主题: 合理规划服务治理
  • 自研超级调度器Superior Scheduler原理 Superior Scheduler是一个专门为Hadoop YARN分布式资源管理系统设计的调度引擎,是针对企业客户融合资源池,多租户的业务诉求而设计的高性能企业级调度器。 Superior Scheduler可实现开源调度器、Fair Scheduler以及Capacity Scheduler的所有功能。另外,相较于开源调度器,Superior Scheduler在企业级多租户调度策略、租户内多用户资源隔离和共享、调度性能、系统资源利用率和支持大集群扩展性方面都做了针对性的增强。设计的目标是让Superior Scheduler直接替代开源调度器。 类似于开源Fair Scheduler和Capacity Scheduler,Superior Scheduler通过YARN调度器插件接口与YARN Resource Manager组件进行交互,以提供资源调度功能。图1为其整体系统图。 图1 Superior Scheduler内部架构 图1中,Superior Scheduler的主要模块如下: Superior Scheduler Engine:具有丰富调度策略的高性能调度器引擎。 Superior YARN Scheduler Plugin:YARN Resource Manager和Superior Scheduler Engine之间的桥梁,负责同YARN Resource Manager交互。 在调度原理上,开源的调度器都是基于计算节点心跳驱动的资源反向匹配作业的调度机制。具体来讲,每个计算节点定期发送心跳到YARN的Resource Manager通知该节点状态并同时启动调度器为这个节点分配作业。这种调度机制把调度的周期同心跳结合在一起,当集群规模增大时,会遇到系统扩展性以及调度性能瓶颈。另外,因为采用了资源反向匹配作业的调度机制,开源调度器在调度精度上也有局限性,例如数据亲和性偏于随机,另外系统也无法支持基于负载的调度策略等。主要原因是调度器在选择作业时,缺乏全局的资源视图,很难做到好的选择。 Superior Scheduler内部采用了不同的调度机制。Superior Scheduler的调度器引入了专门的调度线程,把调度同心跳剥离开,避免了系统心跳风暴问题。另外,Superior Scheduler调度流程采用了从作业到资源的正向匹配方法,这样每个调度的作业都有全局的资源视图,可以很大的提高调度的精度。相比开源调度器,Superior Scheduler在系统吞吐量、利用率、数据亲和性等方面都有很大提升。 图2 Superior Scheduler性能对比 Superior Scheduler除了提高系统吞吐量和利用率,还提供了以下主要调度功能: 多资源池 多资源池有助于在逻辑上划分集群资源并在多个租户/队列之间共享它们。资源池的划分可以基于异构的资源或完全按照应用资源隔离的诉求来划分。对于一个资源池,不同队列可配置进一步的策略。 每个资源池多租户调度(reserve、min、share、max) Superior Scheduler提供了灵活的层级多租户调度策略。并允许针对不同的资源池可以访问的租户/队列,配置不同策略,如下所示。 表1 策略描述 策略名称 描述 reserve 预留租户资源。即使租户没有作业,其他租户也不能使用该预留的资源。其值可以是百分比或绝对值。如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者的最大值。缺省的reserve值为0。相对于定义一个专用资源池并指定具体机器的方式,reserve的策略可以认为提供了一种灵活的浮动预留功能,由于并不限定具体的机器,可以提高计算的数据亲和性,也不会受具体机器故障的影响。 min 具有抢占支持的最低保证资源。其他租户可以使用这部分资源,但是本租户享有优先使用权。其值可以是百分比或绝对值。如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者的最大值。缺省值是0。 share 不支持抢占的共享资源。本租户要使用这部分资源时,需要等待其他租户完成作业并释放资源。其值是百分比或绝对值。 max 允许的最大资源数量。租户无法获得比允许的最大资源多的资源。其值是百分比或绝对值。如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者最大值。缺省值不受限制。 租户资源分配策略示意图,如图3所示。 图3 策略示意图 其中“total”表示总资源,不是调度策略。 同开源的调度器相比,Superior Scheduler同时提供了租户级百分比和绝对值的混配策略,可以很好的适应各种灵活的企业级租户资源调度诉求。例如,用户可以在一级租户提供最大绝对值的资源保障,这样租户的资源不会因为集群的规模改变而受影响。但在下层的子租户之间,可以提供百分比的分配策略,这样可以尽可能提升一级租户内的资源利用率。 异构和多维资源调度 Superior Scheduler除支持CPU和内存资源的调度外,还支持扩展以下功能: 节点标签可用于识别不同节点的多维属性,可以根据这些标签进行调度。 资源池可用于对同一类别的资源进行分组并分配给特定的租户/队列。 租户内多用户公平调度 在叶子租户里,多个用户可以使用相同的队列来提交作业。相比开源调度器,Superior Scheduler可以支持在同一租户内灵活配置不同用户的资源共享策略。例如可以为VIP用户配置更多的资源访问权重。 数据位置感知调度 Superior Scheduler采用“从作业到节点的调度策略”,即尝试在可用节点之间调度给定的作业,使得所选节点适合于给定作业。通过这样做,调度器将具有集群和数据的整体视图。如果有机会使任务更接近数据,则保证了本地化。而开源调度器采用“从节点到作业的调度策略”,在给定节点中尝试匹配适当的作业。 Container调度时动态资源预留 在异构和多样化的计算环境中,一些container需要更多的资源或多种资源,例如Spark作业可能需要更大的内存。当这些container与其他需要较小资源的container竞争时,可能没有机会在合理的时间内获得所需的资源而处于饥饿状态。由于开源的调度器是基于资源反向匹配作业的调度方式,会为这些作业盲目的进行资源预留以防进入饥饿状态。这就导致了系统资源的整体浪费。Superior Scheduler与开源特性的不同之处在于: 基于需求的匹配:由于Superior Scheduler采用“从作业到节点的调度”,能够选择合适的节点来预留资源提升这些特殊container的启动时间,并避免浪费。 租户重新平衡:启用预留逻辑时,开源调度器并不遵循配置的共享策略。Superior Scheduler采取不同的方法。在每个调度周期中,Superior Scheduler将遍历租户,并尝试基于多租户策略重新达到平衡,且尝试满足所有策略(reserve,min,share等),以便可以释放预留的资源,将可用资源流向不同租户下的其他本应得到资源的container。 动态队列状态控制(Open/Closed/Active/Inactive) 支持多个队列状态,有助于 MRS 集群管理员操作和维护多个租户。 Open状态(Open/Closed):如果是Open(默认)状态,将接受提交到此队列的应用程序,如果是Closed状态,则不接受任何应用程序。 Active状态(Active/Inactive):如果处于Active(默认)状态,租户内的应用程序是可以被调度和分配资源。如果处于Inactive状态则不会进行调度。 应用等待原因 如果应用程序尚未启动,则提供作业等待原因信息。 Superior Scheduler和YARN开源调度器作了对比分析,如表2所示: 表2 对比分析 领域 YARN开源调度器 Superior Scheduler 多租户调度 在同构集群上,只能选择容量调度器(Capacity Scheduler)或公平调度器(Fair Scheduler)两者之一,且集群当前不支持公平调度器(Fair Scheduler)。容量调度器只支持百分比方式配置,而公平调度器只支持绝对值方式。 支持异构集群和多资源池。 支持预留,以保证直接访问资源。 数据位置感知调度 从节点到作业的调度策略导致降低数据本地化命中率,潜在影响应用的执行性能。 从作业到节点的调度策略。可具有更精确的数据位置感知,数据本地化调度的作业命中率比较高。 基于机器负载的均衡调度 不支持 Superior Scheduler在调度时考虑机器的负载和资源分配情况,做到均衡调度。 租户内多用户公平调度 不支持 租户内用户的公平调度,支持关键字default、others。 作业等待原因 不支持 作业等待原因信息可显示为什么作业需等待。 综上所述,Superior Scheduler是一个高性能调度器,拥有丰富的调度策略,在功能、性能、资源利用率和扩展性方面都优于Capacity Scheduler。
  • 支持CPU硬隔离 YARN无法严格控制每个container使用的CPU资源。在使用CPU子系统时,container可能会超额占用资源。此时使用CPUset控制资源分配。 为了解决这个问题,CPU将会被严格按照虚拟核和物理核的比例分配至各个container。如果container需要一整个物理核,则分配给它一整个物理核。若container只需要部分物理核,则可能发生几个container共享同一个物理核的情况。下图为CPU配额示例,假定虚拟核和物理核的比例为2:1。 图4 CPU配额
  • YARN的权限控制 Hadoop YARN的权限机制是通过访问控制列表(ACL)实现的。按照不同用户授予不同权限控制,主要介绍下面两个部分: 集群运维管理员控制列表(Admin Acl) 该功能主要用于指定YARN集群的运维管理员,其中,MRS集群管理员列表由参数“yarn.admin.acl”指定。集群运维管理员可以访问ResourceManager WebUI,还能操作NodeManager节点、队列、NodeLabel等,但不能提交任务。 队列访问控制列表(Queue Acl) 为了方便管理集群中的用户,YARN将用户/用户组分成若干队列,并指定每个用户/用户组所属的队列。每个队列包含两种权限:提交应用程序权限和管理应用程序权限(比如终止任意应用程序)。 开源功能: 虽然目前YARN服务的用户层面上支持如下三种角色: 集群运维管理员 队列管理员 普通用户 但是当前开源YARN提供的WebUI/RestAPI/JavaAPI等接口上不会根据用户角色进行权限控制,任何用户都有权限访问应用和集群的信息,无法满足多租户场景下的隔离要求。 增强: 安全模式下,对开源YARN提供的WebUI/RestAPI/JavaAPI等接口上进行了权限管理上的增强,支持根据不同的用户角色,进行相应的权限控制。 各个角色对应的权限如下: 集群运维管理员:拥有在YARN集群上执行管理操作(如访问ResourceManager WebUI、刷新队列、设置NodeLabel、主备倒换等)的权限。 队列管理员:拥有在YARN集群上所管理队列的修改和查看权限。 普通用户:拥有在YARN集群上对自己提交应用的修改和查看权限。
  • 任务优先级调度 在原生的YARN资源调度机制中,如果先提交的MapReduce Job长时间地占据整个Hadoop集群的资源,会使得后提交的Job一直处于等待状态,直到Running中的Job执行完并释放资源。 MRS集群提供了任务优先级调度机制。此机制允许用户定义不同优先级的Job,后启动的高优先级Job能够获取运行中的低优先级Job释放的资源;低优先级Job未启动的计算容器被挂起,直到高优先级Job完成并释放资源后,才被继续启动。 该特性使得业务能够更加灵活地控制自己的计算任务,从而达到更佳的集群资源利用率。 容器可重用与任务优先级调度有冲突,若启用容器重用,资源会被持续占用,优先级调度将不起作用。
共100000条