华为云用户手册

  • 跨AZ容灾部署架构 跨AZ容灾部署架构仅介绍4.8.0版本,5.x底层的架构不体现,只提供TPS。4.8.0版本中一个Broker由一个主节点和两个备节点组成,当您购买的Broker数为1时,实际创建3个Broker节点,购买2个Broker时(如图1所示)创建6个Broker节点,以此类推。NameServer为2个节点。 图1 选择代理数量 单可用区 实例选择单可用区部署时,实例下的所有组件均部署在相同的可用区内。单可用区部署会默认配置为反亲和部署。反亲和部署是出于高可用性考虑,将Broker主备节点分别创建在不同的物理机上。 多可用区 多可用区部署的前提需要满足该区域下有3个及3个以上的可用区选项,如图2所示。 图2 选择可用区 实例选择多可用区部署时,实例下的组件分别部署在三个不同的可用区内,可实现跨可用区容灾部署能力。 NameServer的2个节点分别部署在两个可用区中。 每个Broker节点中的主备节点随机均衡的部署在三个可用区中。 图3 多可用区部署
  • DeH自定义策略样例 示例1:授权用户购买专属主机、释放专属主机。 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "deh:dedicatedHosts:create", "deh:dedicatedHosts:create" ] } ] } 示例2:拒绝用户释放专属主机。 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予DeH FullAccess的系统策略,但不希望用户拥有DeH FullAccess中定义的释放专属主机权限,您可以创建一条拒绝释放专属主机的策略,然后同时将DeH FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对DeH执行除了释放专属主机外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Action": [ "deh:dedicatedHosts:delete" ], "Effect": "Deny" } ] }
  • 示例流程 图1 给用户授权DeH权限流程 创建用户组并授权 在 IAM 控制台创建用户组,并授予专属主机权限“DeHReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择专属主机服务,进入DeH主界面,单击右上角“购买专属主机”,如果无法购买专属主机(假设当前权限仅包含DeH ReadOnlyAccess),表示“DeH ReadOnlyAccess”已生效。 在“服务列表”中选择除专属主机服务外(假设当前策略仅包含E CS Viewer)的任一服务,若提示权限不足,表示“DeH ReadOnlyAccess”已生效。
  • 支持审计的关键操作列表 云审计 服务(Cloud Trace Service, CTS ),是 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 云审计支持的专属主机操作如表1所示。 表1 云审计支持的专属主机操作列表 操作名称 资源类型 事件名称 创建专属主机 dedicatedHosts createDedicatedHosts 更新专属主机 dedicatedHosts updateDedicatedHosts 删除专属主机 dedicatedHosts releaseDedicatedHosts 父主题: 关键操作审计
  • 操作流程 进入购买专属主机页面。 设置专属主机的参数。 表1 参数说明 参数 描述 计费模式 当前仅支持包年/包月计费模式。 包年/包月是预付费模式,按订单的购买周期计费。 区域 区域指专属主机所在的物理位置。建议您选择最靠近您业务的区域,这样可以降低访问时延、提高下载速度。 可用区 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。如果您需要提高应用的高可用性,建议您将专属主机创建在不同的可用区内。 专属主机类别、专属主机类型 可供选择的专属主机类别与类型详见概述。 说明: 选择专属主机类型时,请注意以下信息: 专属主机类型决定了您能在DeH上运行的ECS实例规格族和数量。 规格列表中展示的是当前专属主机支持的云服务器规格,只是供您参考和查询,不能选择。如果要创建某一种规格的云服务器,必须在创建完专属主机后才能操作。 如果没有您想要的专属主机类型,或者提示资源已售罄,请联系客服。 自动放置 对于关闭了自动放置的专属主机,当您创建云服务器并选择“自动放置”时,云服务器不会被调度到这台专属主机上;否则,云服务器可能会被调度到这台专属主机。 对于关闭了自动放置的专属主机,您可以在创建云服务器时指定将云服务器放置到这台专属主机上。 企业项目 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 标签 对专属主机的标识。使用标签可以方便识别和管理您拥有的专属主机资源。您最多可以给一台专属主机添加10个标签。 关于标签的详细操作,请参见标签管理。 专属主机名称 名称可自定义,只能由中文字符、英文字母、数字及“_”、“-”、“.”组成,且长度小于等于64个字符。 购买时长 1个月~3年 勾选“自动续费”后,可以避免因产品到期未及时续费而导致资源数据被删除的风险,您可以根据需要设置。 数量 购买多台专属主机时,系统自动为专属主机名称增加后缀,例如:my_DeH-001,my_DeH-002。 设置完成后,您可以通过单击“了解计费详情”,查询当前配置的费用。 单击页面右下角的“立即购买”。 进入规格确认页面,确认信息无误后,单击页面右下角的“提交订单”立即。 根据界面提示付款,单击“确认付款”。 完成订单支付后,等待系统创建资源,完成专属主机购买。
  • 可视化字段配置(可选) DataArts Insight提供了数据集可视化配置功能,可视化操作更加便捷的配置数据集字段。 如果在字段树配置字段,可视化字段可不配置。 在数据集创建页面,单击“可视化配置”,进入可视化配置页面。 选择需要修改的字段,并按需编辑字段。 图3 可视化配置页面 表2 可视化配置参数说明 参数名称 说明 字段名称|物理字段 字段名称,在该页面支持自定义,字段名称会显示在仪表板和大屏制作的图表中。 物理字段不支持修改。 字段类型 字段支持的类型,包括日期、文本、数字。其中日期支持多种格式设置。 默认聚合 维度字段不支持设置,仅度量字段支持设置聚合方式。 支持以下设置:无聚合、求和、平均值、计数、去重计数、最大值、最小值、总体标准差、样本标准差、总体标方差、样本方差、区间起始值、区间结束值。 说明: 区间起始值、区间结束值只支持单项设置,不支持同时设置。 数值展示格式 无格式、数值、货币、对象量词、长度、重量、能量、容量、时间、百分比。 字段描述 对字段的相关信息的描述。 允许搜索 是否允许搜索枚举值,用于标记字段的枚举值在训练时是否允许被搜索,当前仅能提取最多1000个枚举值。 说明: 仅支持文本类型。 分析优先级 用于确定智能分析助手中的自动见解功能从数据集选用字段分析时的优先级,最多支持配置10个高分析优先级字段。 操作 支持对字段的删除和隐藏,此处可对已隐藏的字段进行取消隐藏。 说明: 删除数据集中的字段时要检查该字段是否在大屏、报表和权限配置中有使用。 批量字段配置:您可以同时选择多个字段,选择操作列的配置项。 当前支持批量转换为维度或度量,支持批量设置隐藏、取消隐藏,支持批量删除字段。
  • 样式 设置甘特图样式参考表2、表3。 表2 基础设置 参数 说明 卡片标题 自定义是否显示卡片标题 ,勾选后在图表左上角显示。 文本 设置文本大小和颜色,单击选择文本颜色。 对齐方式 设置对齐方式,支持左对齐和居中对齐。 下边距 设置卡片标题与图表之间的距离。 分割线 自定义是否显示分割线。支持设置分割线样式的大小和颜色、下边距大小。 卡片背景 自定义是否显示卡片背景。单击选择卡片背景颜色。 状态icon 自定义是否显示状态icon。支持设置icon的显示方式和颜色,显示方式包括始终显示和悬停显示。 表3 图表样式参数 参数 说明 可视化样式 设置甘特图的配色,支持系统配色和自定义配色。 柱体 设置甘特图柱体的宽度和上下间距。 坐标轴 X轴 设置是否显示X轴、标题和单位、轴标签、网格线。 设置X轴、标题和单位、轴标签、网格线的样式。 Y轴 设置是否显示Y轴、标题、轴标签、网格线。 设置X轴、标题、轴标签、网格线的样式。 图例 设置是否显示图例以及图例的文本大小、文本颜色、位置和对齐方式。 标签 设置是否显示数据标签以及标签的内容、文本大小、位置。在内容下拉菜单中选择需要显示的字段,选择后会在柱体中显示该字段。
  • 操作步骤 登录智能数据洞察控制台。 单击管理控制台左上角的,选择区域。 单击左下角的企业项目选择企业项目。 选择需要操作的项目,单击项目名称进入项目空间。 选择待授权的数据源。 单击数据源右侧的,选择“分享协作”。 在协同授权配置页面编辑数据源权限。 选择授予的权限。 编辑授权:开启后可赋予成员编辑权限,支持创建、编辑、替换和删除数据源,同时支持基于数据源进行数据分析。 开启数据源的编辑权限,默认关联开启数据源的使用权限。 使用授权:开启后可赋予成员使用权限,仅支持对数据源的分析。 选择授权的对象。 用户:给当前用户编辑数据源的权限。 用户组:当给该用户组授权后,整个组内的用户都将获得该数据源的相关权限。 按需勾选需要授权的用户和用户组,完成数据源授权。 图1 协同授权配置页面
  • 组件交互面板配置 event:组件的交互相关配置。 示例如下: "event": { "eventConfig": [ { "type": "select" } ] } Event为key:value形式的对象,其中key值为交互事件名称定义,value值为交互事件的相关配置,具体如下: 表9 event value参数说明 参数 是否必选 参数类型 描述 eventConfig 是 Arrary 交互配置,值为数组。 表10 eventConfig参数说明 参数 是否必选 参数类型 说明 type 是 select、drive、link select:允许组件在交互面板里通过交互编辑的方式定义交互事件,该事件和drive、link类型不支持同时配置。 isMultivalue:值为true时,操作符只能为“in”,适用于多选下拉。值为false时,操作符包括“=”、“≠”“﹥”等,适用于单选下拉。如图4所示,此时isMultivalue值为true。 说明: select、isMultivalue只支持大屏,不支持仪表板。 drive:允许组件在交互面板里配置联动,和select类型不支持同时配置。 link:允许组件在交互面板里配置跳转。 图3 type为select的交互入口 图4 type为select的示例 图5 type为link和drive示例
  • 组件数据面板配置 dataSlot:组件的数据面板槽位相关配置。 示例如下: 1 2 3 4 5 6 7 8 9 "data": { "version": "2.0" "dynamicData": { "slots": [...], "filter": true, "sort": true }, } 表5 dataSlot参数说明 参数 是否必选 参数类型 描述 version 是 “2.0” 值固定为“2.0”。 slots 是 Slot[] 数据面板中的数据配置区域,参考slots参数说明。 filter 是 Boolean 数据面板中是否展示过滤槽位。 sort 是 Boolean 数据面板中是否展示排序槽位。 图2 组件数据面板 dataSlot配置示例 示例中dataSlot参数如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "dataSlot": { "version": "2.0", "dynamicData": { "slots": [ { "areaId": "area_value", "label": "度量槽位", "rule": { "maxColNum": 1, "mimColNum": 0, "needAggregator": true } } ], "filter": true, "sort": true } }, 其中slots为槽位的定义如下: 表6 slots参数说明 参数 是否必选 参数类型 描述 areaId 是 String 数据槽位类型,可选值参考AreaId说明。 label 是 String 数据槽位展示名称。 rule 否 Object 配置数据槽位规则和限制,参考rule说明。 AreaId说明 AreaId标识数据面板槽位类型,AreaId值如下: 表7 AreaId值说明 值 描述 area_column 列槽位,支持维度和度量。 area_type 维度槽位,只能拖拽维度字段。 area_value 度量槽位,只能支持度量字段。 area_color 颜色图例槽位,只支持维度,用于对数据进行分类。 rule说明 rule为数据面板槽位规则信息,rule参数说明如下: 表8 rule值说明 值 是否必选 类型 描述 minColNum 否 Number 数据面板槽位最少需要的字段个数。 maxColNum 否 Number 数据面板槽位最多支持的字段个数。 dataType 否 String[] 支持的字段类型,可选值为“STRING”、“DATE”、“NUMBER”,不配置该字段则默认为匹配AreaId对应的类型。AreaId说明。 typeErrorTip 否 String 向数据面板槽位拖拽字段类型和槽位不匹配时的提示内容。
  • 组件样式配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 "style": [ { "label": "全局样式", "labelId": "global_style", "isExpand": true, "children": [ { "label": "字体大小", "name": "fontSize", "type": "number", "min": 12, "max": 32, "value": 12 }, { "label": "字体粗细", "name": "fontWeight", "type": "select", "options": [ { "key": "Normal", "value": "normal" }, { "key": "Bold", "value": "bold" } ], "value": "normal" }, { "label": "颜色", "name": "color", "type": "color", "value": "#ffffff" } ] } ], Style参数为数组形式,其中每个数据元素将形成一个样式配置项,每个数据元素还能包含相关的子配置项,最多支持两层,具体参数说明如下: 表2 Style参数说明 参数 是否必选 参数类型 描述 label 是 String 配置项标签名称。 isExpand 否 Boolean 是否展开子配置项。 true:展开。 false:不展开。 name 是 String 配置项key值,用户在命名时要注意唯一性(只限于当前组件)。 配置项的其他属性参数 否 - 不同UI类型具有不同的属性参数,请参见UI类型介绍。 children 否 Array of children object 配置项所拥有的子配置项,如下图所示全局样式下包含字体和颜色等配置。 表3 children参数说明 参数 是否必选 参数类型 描述 label 是 String 子配置项标签名称。 type 是 String 样式配置输入框类型,DataArts Insight开放的UI类型请参见UI类型介绍。 name 是 String 子配置项key值,用户在命名时要注意唯一性(只限于当前组件)。 value 是 String | Number 子配置项样式取值。 子配置项的其他属性参数 是 - 不同UI类型具有不同的属性参数,请参见UI类型介绍。 示例如下所示: 图1 style示例 表4 样式面板示例说明 区域编号 描述 1 对应字段isExpand。 2 对应字段label。 3 对应字段type,此处type分别为number、select、color类型。
  • 问答配置 通过关键词、推荐问题等配置,智能分析助手不仅能够提升处理问题的效率,还能确保回答的准确性和专业性。 表2 配置项说明 配置项 说明 关键词 配置问答问题中某些词语和句子的实际搜索内容,例如将“1-3月苹果的产量”的关键词“1-3月”的实际搜索内容配置为“大于等于1月且小于等于3月”,智能分析助手将能识别和理解用户提问中的不同表达方式。 关键词配置使智能分析助手能够识别并理解用户提问中的多样化表达,从而提升智能分析助手对问题的理解。 推荐问题 问答界面上方出现预置好的推荐问题,单击推荐问题即可快速提问。 推荐问题可以帮助用户快速进行问答,从而显著提高问答效率。 关联问题 智能分析助手返回结果时除了回答现有问题,会显示现有问题的关联问题及回答。 关联问题的配置旨在优化问答流程,通过预测用户可能存在的疑问,提前提供相关信息。 模板化见解 对重点问题进行配置模板化见解,在智能分析助手问答界面进行问答时,得到结构化和高质量的智能见解结果。 模板化见解的配置则确保了回答的标准化和一致性,有助于得到结构化和高质量的回答。
  • 样式 尺寸位置 W:设置图表的宽,单位为px。 H:设置图表的高,单位px。 X:设置图表在画布中的位置。单位为px。 Y:设置图表在画布中的位置。单位为px。 不透明度:设置图表在画布上的透明度,可通过滑动条进行设置,也可手动输入百分比,比例越大透明程度越低。 图1 尺寸位置 进度条:柱子宽度、圆角半径、背景色、进度条颜色用户可自定义设置。 进度条颜色支持设置纯色和渐变色。渐变色可设置起点、终点颜色,起点终点颜色也可互换。 占比 显示占比:勾选,可显示占比,不勾选不显示占比。 小数位:小数位取值范围为0~10。 占比文本:字体类型、数值颜色、数值字号、字体粗细用户可自定义设置。 偏移:水平偏移取值范围-10000~1000。 值标签 显示/隐藏值标签:单击“显示值标签”左侧的勾选框,表示显示,表示隐藏。 当前值名称:设置当前值名称。 目标值名称:设置目标值名称。 对齐方式:支持设置为左右排列和上下排列。 排列方式:支持设置为顶部、右侧、内部、左侧、底部、左上角、左下角、右上角、右下角。 文本:支持对值标签的字体、颜色、字号、字体粗细的设置。 图2 值标签 动画 显示/隐藏动画:单击“动画”右侧的勾选框,表示开启图表的动画效果;表示预不开启图表的动画效果。 入场动画:组件第一次渲染动画的时长,单位为ms。 动画效果:动画的缓动效果,系统提供多种常见的动画缓动效果供您选择。 更新动画:组件数据更新时的动画时长,单位为ms。 是否从之前位置开始:开启后,组件数据更新时,从上一个数据的位置开始播放动画;关闭后,组件数据更新时,从初始位置开始播放动画。 图3 动画
  • 样式 尺寸位置 W:设置图表的宽,单位为px。 H:设置图表的高,单位px。 X:设置图表在画布中的位置。单位为px。 Y:设置图表在画布中的位置。单位为px。 不透明度:设置图表在画布上的透明度,可通过滑动条进行设置,也可手动输入百分比,比例越大透明程度越低。 图1 尺寸位置 全局样式:用户可自定义设置雷达图的字体样式,默认微软雅黑。 图例 显示/隐藏图例:单击“图例”右侧的勾选框,表示显示图例,表示隐藏图例。 显示度量名:是否显示度量名。 数据值:是否显示数据值。 比例显示:是否显示比例。 文本:设置图例的文本样式,包括字号、字体颜色、字体粗细。 布局:支持对方向、位置、左右间距、上下间距、图例间隔的设置。 图例标记:支持对标记类型、标记宽度、标记高度设置。 图2 图例
  • 样式 设置仪表盘样式参考表2、表3。 表2 仪表盘样式参数 参数 说明 卡片标题 卡片支持有和无标题的设置。设置卡片的标题,在卡片的左上角展示。 无标题:当未勾选框时,为无标题格式。 有标题:当勾选框时,为有标题格式。 文本 设置文本字体的大小和字体颜色。可通过输入修改字体大小也可通过和修改字体的大小。 说明: 输入不能为空,且输入值必须在14到32之间。 对齐方式 支持左对齐和居中对齐方式。 下边距 设置仪表盘标题与图表之间的距离。可通过输入修改边距的大小也可通过和修改边距的大小。 说明: 输入不能为空,且输入值必须在0到32之间。 分割线 卡片支持无和有分割线的设置。 无分割线:当未勾选框时,为无分割线格式。 有分割线:当勾选框时,为有分割线格式。支持对分割线的样式和下框边距进行设置。分割线样式和下边框支持输入设置,也可通过和进行设置。 说明: 分割线样式的输入不能为空,且输入值必须在0到8之间。在设置样式之后才可以设置下边距,分割线的下边距输入不能为空,且输入值必须在0到32之间。 卡片背景 卡片背景支持有背景和无背景设置。 无背景:当未勾选框时,为无背景格式。 有背景:当勾选框时,为有背景格式。支持背景颜色的设置。 状态icon 可以设置icon的显示方式和颜色,支持始终显示和悬停显示。卡片icon支持有状态icon和无状态icon设置。 无背景:当未勾选框时,为无状态icon。 有背景:当勾选框时,为有状态icon。 表3 仪表盘图表样式参数 参数 说明 可视化样式 支持对坐标轴的坐标线和颜色的设置。 数值设置 支持对轴标签的文本和文本颜色的设置。 数据标签 支持对网格线的粗细和颜色设置。 测量轴色彩配置 支持对尺度类型设置,有线性和对数两种功能。 刻度分区 设置仪表盘的刻度分区。 起点 起点支持设置为固定值或动态值。 终点 终点支持设置为固定值或动态值 坐标轴:支持对轴标签的文本字体大小进行设置。 表4 系列设置 参数 说明 选择度量 根据字段里面选择的度量选择。 语境 对系列的语境进行设置,支持中文(简体)和English 单位 单位支持自动、无、百、千、万、亿、百亿、万亿。 科学计数法 支持使用科学计数法或不支持。 使用千分位分割符 支持使用千分位分割符或不支持。 小数位 支持设置小数位或不支持。
  • 请求示例 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances/dsfae23fsfdsae3435in14/backups/policy { "backup_policy": { "keep_days": 7, "start_time": "19:00-20:00", "period": "1,2,3,4,5", "differential_period": "30" } }
  • 请求参数 表2 参数说明 名称 是否必选 参数类型 说明 backup_policy 是 Object 备份策略信息。 详情参见表3。 表3 backup_policy字段数据结构说明 名称 是否必选 参数类型 说明 keep_days 是 Integer 备份文件可以保存的天数。 取值范围:1-732天。 start_time 是 String 备份时间段。自动备份将在该时间段内触发。 取值范围:非空,格式必须为hh:mm-HH:MM且有效,当前时间指UTC时间。 HH取值必须比hh大1,mm和MM取值必须相同,且取值必须为00。 取值示例: 21:00-22:00 period 是 String 全量备份周期配置。自动全量备份将在每星期指定的天进行。 取值范围:格式为逗号隔开的数字,数字代表星期。取值示例:1,2,3,4则表示备份周期配置为星期一、星期二、星期三和星期四。 differential_period 是 String 差异备份间隔时间配置。每次自动差异备份的间隔时间。 取值范围:15、30、60、180、360、720、1440。单位:分钟。 取值示例:30
  • URI PUT https://{Endpoint}/gaussdb/v3/{project_id}/instances/{instance_id}/backups/policy 表1 参数说明 名称 是否必选 说明 project_id 是 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 实例ID。
  • 开发流程说明 开发微服务应用 如果您已经完成了微服务应用的开发,可以跳过本流程,进入准备环境。 进行微服务应用开发,首先需要进行技术选型。技术选型是一个复杂的问题,技术决策者需要考虑使用的技术是否容易被团队成员掌握,技术能否满足项目对于功能、性能、可靠性方面的要求,还需要考虑商业服务等多方面的因素。本文档不探讨技术选型,假设技术团队已经选择了适合自己的开发框架。大部分技术团队都会选择开源框架来构建业务。 开发微服务应用的具体内容,请参考开发微服务应用。 使用Spring Cloud,通常会使用下面的技术进行本地微服务开发: 使用Java Chassis,通常会使用下面的技术进行本地微服务开发: 准备环境 创建云上环境,以支持微服务引擎接入调试、云上应用部署和使用微服务引擎功能。一般情况下,会创建一个测试环境和一个生产环境。通过ServiceStage,能够非常方便地管理云上环境,详细内容请参考准备环境。 对接微服务应用 用于微服务应用对接微服务引擎,涉及到对已经开发好的应用的配置文件、构建脚本的修改。修改完成后,需要对应用重新编译、打包,通过ServiceStage将应用包部署到微服务引擎,详细内容请参考对接微服务应用。 部署微服务应用 开发完成的微服务应用,通过ServiceStage部署到微服务引擎,详细内容请参考部署微服务应用。 使用微服务引擎功能 对于持续发展的应用系统,都会持续完善和迭代,每个迭代可能需要对微服务应用进行更新升级,需要使用更多的微服务引擎功能。持续迭代的功能演进,会重复上面的应用开发、编译、打包和部署环节。详细内容请参考使用微服务引擎功能。
  • 开发能力要求 本文档的主要目的就是说明这些开源微服务开发框架如何接入和使用微服务引擎的功能,假设您已经熟悉和掌握如下开发能力: 使用Java语言进行微服务开发。假设您已经基于一种ServiceStage支持的微服务开发框架开发了应用系统,并期望将应用系统托管在微服务引擎上运行。本文档提供微服务应用接入微服务引擎的相关技术支持。开源微服务开发框架如何使用不是本文档的范围,您可以通过开源社区获取相关微服务开发框架的入门材料和开发指南。 理解注册中心、配置中心在微服务应用中的作用,并在项目中搭建和使用注册中心。不同的微服务开发框架默认支持的开源注册中心会有差异,理解注册中心的作用,可以更加容易的更换注册中心。 熟悉应用部署,请参考创建并部署组件。
  • 什么是Mesher Mesher是Service Mesh的一个具体的实现,是一个轻量的代理服务以Sidecar的方式与微服务一起运行。 Service Mesh是由William Morgan定义: Service Mesh是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,Service Mesh保证请求可以在这些拓扑中可靠地传输。在实际应用当中,Service Mesh通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但应用程序不需要知道它们的存在。 随着云原生应用的崛起,Service Mesh逐渐成为一个独立的基础设施层。在云原生模型里,一个应用可以由数百个服务组成,每个服务可能有数千个实例,而每个实例可能会持续地发生变化。服务间通信不仅异常复杂,而且也是运行时行为的基础。管理好服务间通信对于保证端到端的性能和可靠性来说是非常重要的。 Service Mesh实际上就是处于TCP/IP之上的一个抽象层,假设底层的L3/L4网络能够点对点地传输字节(同时,也假设网络环境是不可靠的,所以Service Mesh必须具备处理网络故障的能力)。 从某种程度上说,Service Mesh有点类似TCP/IP。TCP对网络端点间传输字节的机制进行了抽象,而Service Mesh则是对服务节点间请求的路由机制进行了抽象。Service Mesh不关心消息体是什么,也不关心它们是如何编码的。应用程序的目标是“将某些东西从A传送到B”,而Service Mesh所要做的就是实现这个目标,并处理传送过程中可能出现的任何故障。 与TCP不同的是,Service Mesh有着更高的目标:为应用运行时提供统一的、应用层面的可见性和可控性。Service Mesh将服务间通信从底层的基础设施中分离出来,让它成为整个生态系统的一等公民——它因此可以被监控、托管和控制。
  • Spring Cloud Huawei历史版本及版本修复问题 spring-cloud-huawei版本 主要修复问题 1.11.6-2023.0.x snakeyaml、jackson、guava版本安全漏洞。 路由开关关闭后,微服务应用启动失败,找不到nacos/servicecomb适配实现类。 当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。 1.11.6-2022.0.x 1.11.6-2021.0.x 1.11.4-2022.0.x RBAC安全认证未开启,框架依然会监听认证过期事件。 gateway/webflux路由无法获取请求头设置信息。 微服务API安全认证开启后,规则未设置,所有请求不通过。 服务端熔断规则不生效。 1.11.4-2021.0.x 1.11.3-2022.0.x 指定服务名情况下,实例隔离策略不生效。 1.11.3-2021.0.x 1.11.2-2022.0.x API安全认证未设置黑、白名单策略时,空指针异常。 服务端、客户端同时设置相同请求头,key不生效。 1.11.2-2021.0.x 1.11.0-2022.0.x trace上下文配置基于动态配置不生效。 1.11.0-2021.0.x 1.10.13-2021.0.x 同时调用多个服务情况下,降级不生效。 1.10.11-2021.0.x 实例隔离治理不生效。 1.10.9-2021.0.x 指定服务名设置重试策略不生效。 服务降级错误返回“null”字符串,修改为返回null。 1.10.8-2021.0.x 负载均衡规则不生效。 1.10.8-2020.0.x 1.10.7-2021.0.x 服务注册发现开关关闭,启动失败。 1.10.7-2020.0.x 1.10.6-2021.0.x 监控信息中缺少环境信息。 1.10.6-2020.0.x 1.10.5-2021.0.x 重试次数太多导致请求长时间无响应。 1.10.5-2020.0.x 1.10.4-2021.0.x identifierRateLimiting限流上下文获取失败。 1.10.4-2020.0.x 1.10.3-2021.0.x 治理配置第一次变化时不生效。 1.10.3-2020.0.x 1.10.2-2021.0.x 调整默认配置刷新时间为15s。 实例隔离过滤器空指针异常。 1.10.2-2020.0.x 1.10.1-2021.0.x 非客户端请求上下文空指针异常。 路由客户端编译请求头失败。 灰度版本策略生效。 ClientRequest非RequestData类型下转化异常。 1.10.1-2020.0.x 1.10.0-2021.0.x 服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,报no host to route。 动态配置下灰度发布配置规则,修改配置规则不生效。 启动类application在业务包外层启动失败。 网关最大重试次数不生效。 1.10.0-2020.0.x 1.9.1-2020.0.x 某些场景下,启动类ags属性加载不正确。 网关配置最大重试次数无限重试。 灰度动态配置不生效。 1.9.0-2020.0.x instance.healthCheck.mode值为pull,自定义配置healthCheckInterval健康检查时间不生效。 1.8.0-2020.0.x 非long polling模式下大量配置查询任务,触发查询任务无间隔时间。 cse操作页面对服务实例下线后,服务实例调用依然正常。 management.server.port和server.port两个端口不一致,启动报错。 gateway查询到不同环境的实例。 1.7.0-2020.0.x webmvc与路由结合导致gateway启动失败。 gateway无法实现基于服务发现的路由定义功能。 gateway无法跨应用服务发现。 1.6.1-2020.0.x 说明: 存在重大问题,不建议使用: 非常频繁地查询配置中心。 查询到错误的配置。 1.9.4-Hoxton 当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。 1.9.3-Hoxton 服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,路由不到可用服务。 1.9.2-Hoxton 服务端删除实例后重新注册实例,客户端选择错误的服务端实例。 1.9.1-Hoxton 某些场景下,启动类ags属性加载不正确。 网关配置最大重试次数无限重试。 灰度动态配置不生效。 1.9.0-Hoxton instance.healthCheck.mode值为pull,自定义配置healthCheckInterval健康检查时间不生效。 1.8.0-Hoxton 非long polling模式下大量配置查询任务,触发查询任务无间隔时间。 cse操作页面对服务实例下线后,服务实例调用依然正常。 management.server.port和server.port两个端口不一致启动报错。 gateway查询到不同环境的实例。 1.7.0-Hoxton webmvc与路由结合导致gateway启动失败。 gateway无法实现基于服务发现的路由定义功能。 gateway无法跨应用服务发现。 1.6.0-Hoxton SDK针对401、403错误码,对引擎做出重试请求。 gateway默认路由规则不生效。 无法跨应用调用。 1.5.9-Hoxton RBAC鉴权功能不生效。 灰度路由时无法获取到微服务最新版本。 某些JDK版本不支持swagger循环依赖。 1.5.8-Hoxton gateway服务发现中选择错误实例。 实例状态为空时调用异常。 1.5.6-Hoxton AK/SK配置后不生效,鉴权失败。 server.env配置不生效,全部为空。 配置中心治理配置项删除后仍然能使用。 滑动窗口熔断配置属性不生效。 注册中心开启watch模式后,空指针异常。 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。 1.5.0-Hoxton 错误的治理规则导致空指针异常。 AK/SK未配置时启动,报空指针异常。 服务启动后首次并发请求,限流策略不生效。 governance治理选择错误服务导致请求异常。 当环境配置为production时,契约不变,服务重启会失败。 1.6.4-Greenwich 当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。 1.6.3-Greenwich 服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,路由不到可用服务。 1.6.1-Greenwich gateway跨应用服务发现异常。 1.6.0-Greenwich SDK针对401、403错误码,对引擎做出重试请求。 gateway路由规则不生效。 灰度路由时无法获取到微服务最新版本。 AK/SK配置不生效。 server.env配置不生效,全部为空。 Servicecenter在watch模式下启动失败。 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。 不支持跨应用调用。 1.5.0-Greenwich 错误的治理规则导致空指针异常。 AK/SK未配置时空指针异常。 服务启动后首次并发请求,限流策略不生效。 governance服务转发错误。 环境是production时,重复注册契约导致启动失败。 v1.3.3-Greenwich 注册中心监听不生效。 1.6.1-Finchley 服务启动后第一次并发,调用随机失败。 微服务跨应用调用失败。 1.6.0-Finchley SDK针对401、403错误码,对引擎做出重试请求。 gateway路由规则不生效。 灰度路由时无法获取到微服务最新版本。 AK/SK配置不生效。 server.env配置不生效,全部为空。 Servicecenter在watch模式下启动失败。 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。 不支持跨应用调用。 1.5.1-Finchley 配置中心治理配置删除后仍然可以使用。 v1.3.9 说明: 存在重大问题,不推荐使用。 governance存在服务转发严重错误。 v1.3.8 说明: 存在重大问题,不推荐使用。 governance存在服务转发严重错误。 v1.3.4 注册线程池无法正确关闭并导致泄漏。 actuator开启后微服务注册失败。 某些场景心跳次数过多。 v1.3.3 websocket在wss协议请求失败。 注册中心watch不生效。 v1.3.2 当环境设置为production时契约注册失败。 注册中心url未设置时随机选择地址失败。 注册中心配置 域名 时watch异常。 v1.2.0 从ServiceStage读取默认的ak/sk配置时,初始化大量对象,导致内存泄漏。 v1.1.0 heartbeat信息日志过多。 微服务间SSL调用不生效。 url包含空格时请求异常。 v1.0.0 某些场景无法自动服务发现。 v0.0.3 服务发现down状态实例。 配置的路径过长。 微服务连接本地CSE引擎失败。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token 表2 请求Body参数 参数 是否必选 参数类型 描述 chaincode_name 是 String 链代码名称,以小写字母开头,支持小写字母和数字,长度6-25位 chaincode_version 是 String 链代码版本,只允许使用数字、点(.)、横杠(-),必须以数字开头和结尾,且点和横杠不能相邻 channel_name 是 String 实例化通道名称 endorsement_policy 是 Policy object 背书策略 init_variable 是 InitArgs object 初始化函数及参数 private_data 否 String 隐私保护配置数据,json数据的string格式,json数据结构举例:[{"name":"kvstore-collection","policy":"OR('9b4ea44913e8eed42cb056177b46191e1d316678MSP.member','9b4ea44913e8eed42cb056177b46191e1d316678MSP.member')","requiredPeerCount":0,"maxPeerCount":2,"blockToLive":0,"memberOnlyRead":true}] 表3 Policy 参数 是否必选 参数类型 描述 operation 是 String 操作符。 OR:任意组织背书 AND:全部组织背书 group 是 Array of OrgPolicy objects 组织背书成员 表4 OrgPolicy 参数 是否必选 参数类型 描述 org_id 是 String 组织ID category 否 String 成员类型:member、admin 表5 InitArgs 参数 是否必选 参数类型 描述 func_name 是 String 初始化函数名 args 是 Array of strings 初始化参数列表
  • 请求示例 POST https://192.168.0.90:30603/v2/agent/apis/chaincode/instantiate { "chaincode_name" : "gochaincode2", "chaincode_version" : "1.0", "channel_name" : "channel001", "endorsement_policy" : { "operation" : "AND", "group" : [ { "org_id" : "8cc7155fb1f26ebac1743f481386c14223be511f", "category" : "member" } ] }, "init_variable" : { "func_name" : "init", "args" : [ "a", "200", "b", "100" ] }, "private_data" : "[{\"name\": \"kvstore-collection\",\"policy\": \"OR('8cc7155fb1f26ebac1743f481386c14223be511fMSP.member','8cc7155fb1f26ebac1743f481386c14223be511fMSP.member')\",\"requiredPeerCount\": 0,\"maxPeerCount\": 2,\"blockToLive\": 0,\"memberOnlyRead\": true}]" }
  • 响应示例 状态码: 200 Success { "count" : 12, "chaincodes" : [ { "chaincode_name" : "test001", "chaincode_version" : "1.0", "update_time" : "2021-01-12T11:32:04.193358708+08:00", "instantiated_info" : { "channels" : [ { "channel_id" : "channel", "versions" : [ "1.0" ] }, { "channel_id" : "testchannel", "orgs" : null, "versions" : [ "1.0" ] } ] }, "chaincode_language" : "golang" } ] } 状态码: 400 Bad Request { "error_code" : " BCS .4000013", "error_message" : "request body is too large" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 count Integer 链码总数 chaincodes Array of ChaincodeInfo objects 链码列表 表4 ChaincodeInfo 参数 参数类型 描述 chaincode_name String 链码名称 chaincode_language String 链码开发语言 update_time String 链码更新时间 chaincode_version String 链码版本,多个链码之间以逗号(,)分隔 install_org_infos Array of PeerInfo objects 链码的安装信息 instantiated_channel instantiated_channel object 链码通道信息 instantiated_info instantiated_info object 实例化信息 表5 PeerInfo 参数 参数类型 描述 org_name String 组织名称 org_id String 组织id peer_name String 节点名称 peer_id String 节点id status String 节点状态 channels Array of strings 未实例化的peer信息 url String Peer节点的url信息 peer String Peer节点的内部域名 表6 instantiated_channel 参数 参数类型 描述 error Array of CCInstantiatedChannelError objects 实例化错误信息 success Array of strings 成功的通道 inprogress Array of strings 实例化进度 表7 CCInstantiatedChannelError 参数 参数类型 描述 channel_name String 错误通道名 error_detail String 错误详情 表8 instantiated_info 参数 参数类型 描述 channels Array of channels objects 通道信息 表9 channels 参数 参数类型 描述 channel_id String 通道名称 orgs Array of orgs objects 通道内组织信息 versions Array of strings 版本信息 表10 orgs 参数 参数类型 描述 org_name String 组织名 org_id String 组织id 状态码: 400 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_message String 错误描述 error_msg String 错误描述
  • 响应示例 状态码: 200 Success { "versions" : [ { "version" : "1.0", "hash_code" : "1473b4807fe9f970d1ba56192e41d39c7d621d07d80e603cf75ed3982b81034d", "description" : "", "install_time" : "2021-01-11T11:27:12.093454567+08:00", "update_time" : "2021-01-11T11:27:12.093454789+08:00", "instantiate_status" : false, "uninstantiated_peer_infos" : [ { "org_name" : "organization", "org_id" : "57e7914450b098771f5106acaf02be8a61894fae", "peer_name" : "peer-0", "peer_id" : "peer-57e7914450b098771f5106acaf02be8a61894fae-0.peer-57e7914450b098771f5106acaf02be8a61894fae.default.svc.cluster.local" }, { "org_name" : "organization", "org_id" : "57e7914450b098771f5106acaf02be8a61894fae", "peer_name" : "peer-1", "peer_id" : "peer-57e7914450b098771f5106acaf02be8a61894fae-1.peer-57e7914450b098771f5106acaf02be8a61894fae.default.svc.cluster.local" } ], "security_check_status" : 2 } ] } 状态码: 400 Bad Request { "error_code" : "BCS.4000013", "error_message" : "request body is too large" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 versions Array of ChaincodeVersion objects 链码版本信息 表4 ChaincodeVersion 参数 参数类型 描述 version String 链码版本 hash_code String 链码版本哈希值 description String 链码版本描述 install_time String 链码版本安装时间 update_time String 链码版本更新时间 instantiate_status Boolean 链码版本实例化状态 security_check_status Integer 链代码安全检查状态(0:不存在,1:运行中,2:完成,3:失败) uninstantiated_peer_infos Array of PeerInfo objects 未实例化的peer信息 表5 PeerInfo 参数 参数类型 描述 org_name String 组织名称 org_id String 组织id peer_name String 节点名称 peer_id String 节点id status String 节点状态 channels Array of strings 未实例化的peer信息 url String Peer节点的url信息 peer String Peer节点的内部域名 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_message String 错误描述 error_msg String 错误描述
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 peer_num Number peer数量 chaincodes Number 合约数量 block_num Number 区块数量 transaction_num Number 交易数量 bph Array of bph objects 区块产生数量统计,按小时统计 bpm Array of bpm objects 区块产生数量统计,按每5分钟统计 tph Array of tph objects 合约交易数量统计,按小时统计 tpm Array of tpm objects 合约交易数量统计,按每5分钟统计 orgs_map Array of orgs_map objects 组织交易统计 peers_list Array of peers_list objects peer列表 表4 bph 参数 参数类型 描述 block Number 区块数量 time String 时间 表5 bpm 参数 参数类型 描述 block Number 区块数量 time String 时间 表6 tph 参数 参数类型 描述 tx Number 交易数量 time String 时间 表7 tpm 参数 参数类型 描述 tx Number 交易数量 time String 时间 表8 orgs_map 参数 参数类型 描述 org_name String 组织名称 tx_num Number 交易数量 表9 peers_list 参数 参数类型 描述 org_name String 组织名称 org_id String 组织ID peer String Peer名称 url String PeerURL status String Peer状态 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_message String 错误描述 error_msg String 错误描述
  • 响应示例 状态码: 200 Success { "transaction_summary" : { "block_number" : 29, "transaction_id" : "6d704b217e17e16de71029b70f17a1ced35c055279f655dfd096bebf978a0546", "channelName" : "channel", "creator_msp" : "282f3c713ea1cec646aa7c640defca9c4f64bd88MSP", "type" : "ENDORSER_TRANSACTION", "chaincode_name" : "kvtest", "chaincode_version" : "1.0", "timestamp" : "2021-01-20T19:30:28+08:00", "organization_name" : "organization" }, "validation_code" : "VALID", "endorser_organizations" : [ "282f3c713ea1cec646aa7c640defca9c4f64bd88MSP" ], "proposal_hash" : "k1h2ewweWGrWNmmcu7UvzJ8Aw2G190SQzV+lBAAl4gw=", "read_set" : { "kvtest" : null, "lscc" : [ { "key" : "kvtest", "version" : { "block_num" : 2 } } ] }, "write_set" : { "kvtest" : [ { "key" : "a1", "is_delete" : false, "value" : "1" } ], "lscc" : [ ] } } 状态码: 400 Bad Request { "error_code" : "BCS.4000013", "error_message" : "request body is too large" }
共100000条