华为云用户手册

  • 什么是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将服务间通信从底层的基础设施中分离出来,让它成为整个生态系统的一等公民——它因此可以被监控、托管和控制。
  • 操作步骤 修改微服务调用的URL,将URL中的${IP:Port}修改为服务名。 例如调用一个名为“provider”的微服务,API为“/hello”,则调用URL通常为:http://${IP:Port}/hello。例如: http://127.0.0.1:80/hello 您需要将调用的URL修改为: http://provider/hello 在ServiceStage平台部署组件,绑定微服务引擎,将组件接入微服务引擎,可在“高级设置”中选择已绑定的微服务引擎,单击,输入应用进程的监听端口号,开启多语言接入Mesher服务网格,具体操作请参考创建并部署组件 。 组件部署环境为容器场景时,支持开启多语言接入Mesher服务网格;当部署环境为虚拟机场景时,不支持开启多语言接入Mesher服务网格。
  • 常用环境变量说明 通过ServiceStage管理环境和部署应用,能够简化用户的配置。ServiceStage会设置一些环境变量,供应用使用,常用的环境变量包括下表所示内容: 表1 常用环境变量 环境变量名称 含义 PAAS_ CS E_ENDPOINT CSE注册中心、配置中心等服务的地址信息。这个环境变量在微服务引擎专业版通过APIG访问的时候使用,上述服务的外部访问地址是统一的 域名 。 说明: 不建议使用这个环境变量,而是使用具体服务的环境变量,避免在微服务引擎专享版的场景下存在歧义,需要修改应用程序。 PAAS_CSE_SC_ENDPOINT 微服务引擎注册中心地址信息。 PAAS_CSE_CC_ENDPOINT 微服务引擎配置中心地址信息。 PAAS_PROJECT_NAME 项目名称。 CAS_APPLICATION_NAME ServiceStage的应用名称。 CAS_COMPONENT_NAME ServiceStage的组件名称。 CAS_INSTANCE_VERSION ServiceStage的部署版本号。 您可以结合不同微服务开发框架的机制,比如Spring Cloud提供的Place Holder机制、Java Chassis提供的“mapping.yaml”机制等来合理使用这些变量,减少部署需要手工输入的内容。 ServiceStage创建应用过程中,可以绑定中间件(如DCS、RDS)。应用绑定的中间件配置信息可以通过以下环境变量获取。
  • 隔离仓 隔离是一种异常检测机制,常用的检测方法是请求超时、流量过大等。一般的设置参数包括超时时间、同时并发请求个数等。 Java Chassis的隔离作用于微服务消费者,需要微服务应用集成隔离模块,启用bizkeeper-consumer处理链。 配置如下: servicecomb: handler: chain: Consumer: default: bizkeeper-consumer isolation: Consumer: timeout: enabled: true #是否启用超时检测 timeoutInMilliseconds: 30000 #超时时间阈值 Spring Cloud Huawei的隔离策略同熔断一致,配置示例请参考熔断中相关内容。 父主题: 使用服务治理
  • 开发微服务应用 如您已经完成了微服务应用的开发,请跳过本章节。 开源社区提供了丰富的开发资料和帮助渠道帮助您使用微服务开发框架。如您需深入了解具体微服务框架下的微服务应用开发,请参考本章节给出的参考资料链接。 体验微服务引擎最快捷的方式是使用“微服务引擎推荐示例”里面的例子。下载示例,修改配置文件中的微服务引擎地址,AK/SK信息,在本地运行例子,这些例子可以注册到微服务引擎。 Spring Cloud 源码仓库:https://github.com/spring-cloud 问题咨询:参考源码仓库的各个代码仓库下的issues。 开发指南:https://spring.io/projects/spring-cloud Spring Cloud Huawei项目:https://github.com/huaweicloud/spring-cloud-huawei 微服务引擎推荐示例:https://github.com/huaweicloud/spring-cloud-huawei-samples/tree/master/basic Java Chassis 源码仓库:https://github.com/apache/servicecomb-java-chassis 问题咨询:https://github.com/apache/servicecomb-java-chassis/issues 开发指南:https://servicecomb.apache.org/references/java-chassis/zh_CN/ 微服务引擎推荐示例:https://github.com/apache/servicecomb-samples/tree/master/basic CSE使用的源码存放在maven中央仓,若您使用非maven中央仓,请联系您所使用的中央仓的管理员将maven中央仓同步到该中央仓。 父主题: 微服务开发指南
  • 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默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考配置安全认证参数。
  • 微服务开发框架版本要求 微服务开发框架推荐版本如下表所示。 如果已经使用低版本的微服务开发框架构建应用,建议升级到推荐版本,以获取最稳定和丰富的功能体验。 如果已使用Spring Cloud微服务开发框架开发了应用,推荐使用Spring Cloud Huawei接入应用。 Spring Cloud Huawei各分支版本与Spring Boot、Spring Cloud、Java Chassis及JDK编译版本的配套关系请参考版本配套说明。 如果基于开源开放和业界生态组件新开发微服务应用,可选择Spring Cloud框架。 如果希望使用微服务引擎提供的开箱即用的治理能力和高性能的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。 系统升级、改造过程中,三方软件冲突是最常见的问题。随着软件迭代速度越来越快,传统的软件兼容性管理策略已经不适应软件的发展,您可以参考三方软件版本管理策略来解决版本冲突。
  • 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引擎失败。
  • 本地开发工具说明 本地开发工具包含了微服务引擎2.x的本地轻量化版本,提供用于本地开发的轻量服务中心、配置中心,和简单易用的界面。 使用说明请参考本地开发工具压缩包中的README.md文件。 表1 本地引擎资源配额限制 功能 资源 最大配额 微服务管理 微服务版本数量(个) 10,000 单个微服务实例数量(个) 100 单个微服务契约数量(个) 500 配置管理 配置数量(个) 600 表2 本地轻量化微服务引擎版本说明 版本 对应微服务引擎版本 发行时间 获取路径 2.1.7 2.x 2023.6.1 Local-CSE-2.1.7-windows-amd64.zip Local-CSE-2.1.7-linux-amd64.zip Local-CSE-2.1.7-linux-arm64.zip 本地轻量化微服务引擎仅作为本地开发调测,请勿用于商业使用。 本地轻量化微服务引擎支持在Windows、Linux系统下使用。 父主题: 附录
  • 开发流程说明 开发微服务应用 如果您已经完成了微服务应用的开发,可以跳过本流程,进入准备环境。 进行微服务应用开发,首先需要进行技术选型。技术选型是一个复杂的问题,技术决策者需要考虑使用的技术是否容易被团队成员掌握,技术能否满足项目对于功能、性能、可靠性方面的要求,还需要考虑商业服务等多方面的因素。本文档不探讨技术选型,假设技术团队已经选择了适合自己的开发框架。大部分技术团队都会选择开源框架来构建业务。 开发微服务应用的具体内容,请参考开发微服务应用。 使用Spring Cloud,通常会使用下面的技术进行本地微服务开发: 使用Java Chassis,通常会使用下面的技术进行本地微服务开发: 准备环境 创建云上环境,以支持微服务引擎接入调试、云上应用部署和使用微服务引擎功能。一般情况下,会创建一个测试环境和一个生产环境。通过ServiceStage,能够非常方便地管理云上环境,详细内容请参考准备环境。 对接微服务应用 用于微服务应用对接微服务引擎,涉及到对已经开发好的应用的配置文件、构建脚本的修改。修改完成后,需要对应用重新编译、打包,通过ServiceStage将应用包部署到微服务引擎,详细内容请参考对接微服务应用。 部署微服务应用 开发完成的微服务应用,通过ServiceStage部署到微服务引擎,详细内容请参考部署微服务应用。 使用微服务引擎功能 对于持续发展的应用系统,都会持续完善和迭代,每个迭代可能需要对微服务应用进行更新升级,需要使用更多的微服务引擎功能。持续迭代的功能演进,会重复上面的应用开发、编译、打包和部署环节。详细内容请参考使用微服务引擎功能。
  • 开发能力要求 本文档的主要目的就是说明这些开源微服务开发框架如何接入和使用微服务引擎的功能,假设您已经熟悉和掌握如下开发能力: 使用Java语言进行微服务开发。假设您已经基于一种ServiceStage支持的微服务开发框架开发了应用系统,并期望将应用系统托管在微服务引擎上运行。本文档提供微服务应用接入微服务引擎的相关技术支持。开源微服务开发框架如何使用不是本文档的范围,您可以通过开源社区获取相关微服务开发框架的入门材料和开发指南。 理解注册中心、配置中心在微服务应用中的作用,并在项目中搭建和使用注册中心。不同的微服务开发框架默认支持的开源注册中心会有差异,理解注册中心的作用,可以更加容易的更换注册中心。 熟悉应用部署,请参考创建并部署组件。
  • 配置中心概述 配置中心用来管理微服务应用的配置。微服务连接配置中心,能够从配置中心获取配置信息及其变化。配置中心还是其他微服务管控功能的核心部件,比如服务治理规则的下发,也是通过配置中心实现的。 微服务引擎支持的配置中心为:config-center和kie。 当微服务引擎版本为1.x时,取值为config-center。 当微服务引擎版本为2.x时,取值为kie或config-center,推荐使用kie作为配置中心。 本章节介绍不同微服务开发框架使用配置中心的一些开发细节,包括如何配置依赖、连接配置中心有关的配置项等,并简单的介绍微服务应用中如何读取配置和响应配置变化。 微服务引擎使用kie作为配置中心。 微服务默认会读取配置中心应用配置、服务配置、自定义配置。应用配置指环境、应用和微服务相同的配置;服务配置指环境、应用、微服务名称和微服务相同的配置。微服务可以在配置文件中指定一个特定的label及label值,自定义配置指label及label值与微服务相同的配置。 简单的场景,可以使用应用级配置和服务级配置。应用级配置被该应用下的所有微服务共享,是公共配置;服务级配置只对具体微服务生效,是独享配置。 复杂的场景,可以通过使用customLabel和customLabelValue来定义配置。例如某些配置,是对所有应用共享的,那么就可以使用这个机制。在配置文件增加如下配置(以Spring Cloud为例): spring: cloud: servicecomb: config: kie: customLabel: public# 默认值是public customLabelValue: default # 默认值是空字符串 只要配置项带有public标签,并且标签值为default,这些配置项就会对该微服务生效。 把配置中心当成数据库的一个表tbl_configurations,key是主键,每个label都是属性。 客户端会根据如下3个条件查询配置: 自定义配置 select * from tbl_configurations where customLabel=customLabelValue & match=false 应用级配置 select * from tbl_configurations where app=demo_app & environment=demo_environment & match=true 服务级配置 select * from tbl_configurations where app=demo_app & environment=demo_environment & service=demo_service & match=true 其中,match为true的时候,表示有且只有条件里面指定的属性;match为false的时候,表示除了条件里面的属性,允许有其他的属性。还可以给标签app指定多个应用,或者给标签service指定多个服务,这样配置项就可以对多个服务和应用生效,非常灵活。 微服务引擎的TEXT、XML等类型,SDK会简单的当成key-value对使用;YAML和Properties类型, SDK会解析内容,应用程序将内容作为实际的应用程序配置项。比如: 类型:TEXTkey: cse.examples.hellovalue: World 应用程序会发现1个配置项: cse.examples.hello = World。 类型:YAMLkey: cse.examples.hellovalue: | cse: key1: value1 key2: value2 应用程序会发现2个配置项: cse.key1 = value1和cse.key2 = value2。 微服务引擎使用config-center作为配置中心。 微服务默认会读取配置中心全局配置、服务配置。全局配置指环境和微服务相同的配置;服务配置指环境、应用、微服务名称和微服务相同的配置。 微服务引擎只支持key-value的配置项。如果用户需要使用yaml格式的配置文件,可以使用具体SDK提供的fileSource功能。通过在配置文件中指定fileSource的key列表,SDK会将这些key对应的value全部当成yaml解析。以Spring Cloud为例,在bootstrap.yml中增加配置项: spring: cloud: servicecomb: config: fileSource: file1.yaml,file2.yaml 并且在配置中心创建配置,“配置项”及其对应的“值”的示例如下表所示。其中,值的格式为yaml。 配置项 值 file1.yaml cse.example.key1: value1cse.example.key2: value2 file2.yaml cse.example.key3: value3cse.example.key4: value4 配置创建方法请参考配置管理中的“创建配置”操作。 应用程序中会发现4个配置项:cse.example.key1=value1,cse.example.key2=value2,cse.example.key3=value3和cse.example.key4=value4。 父主题: 使用配置中心
  • 常用概念 应用:可以将应用理解为完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 微服务:完成某项具体业务功能的软件系统。微服务是独立开发、部署的单元。 微服务实例:将微服务采用部署系统部署到运行环境,就产生了实例。可以将实例理解为一个进程,一个微服务可以部署若干实例。 微服务环境:服务中心建立的一个逻辑概念,比如development、production等。不同环境里面的微服务实例逻辑隔离、无法相互发现和调用。 父主题: 概述
  • 测试自动化任务 自动化任务启用成功后,会出现“测试”按钮,单击该按钮可进行自动化测试。 自动化任务启用成功后,单击页面右上方的“测试”。 图3 测试自动化任务 触发条件为“流程事件触发”时(如图4),不支持测试功能,即无测试按钮。 图4 流程事件触发 在弹出的测试页面,选择一条记录,单击“开始测试”。 图5 选择一条记录 触发条件为“定时触发”时(如图6),无需选择记录,即可立即测试(如图7)。 图6 定时触发 图7 测试定时触发自动化任务 执行成功后,单击“跟踪”,可查看自动化任务测试结果。 图8 查看测试结果
  • CDN 定价 当您开通CDN时,可以选择基础计费方式:流量计费或者带宽计费,具体计费标准请参见价格计算器。 流量计费 您可以选择通过按量计费,即按照每小时实际使用的流量进行计费。 您也可以购买价格更优惠的CDN流量包进行抵扣,购买流量包成功后,系统会一次性按照购买价格对账户余额进行扣费。 带宽计费 峰值带宽计费采用按量计费方式,即按照每日峰值带宽进行计费,带宽计费包含峰值带宽计费、月结95带宽峰值计费、日峰值月平均计费。 月结95带宽峰值、日峰值月平均计费方式仅支持CDN月消费金额大于10万或预期超过10万的用户,并且需要提交工单或拨打客服电话进行申请。 有关CDN计费的详细描述,请参考计费项。
  • CDN使用 快速了解CDN产品,帮您更好的使用CDN产品提供的功能。 参考文档 CDN使用 CDN基本概念 快速了解CDN的常用概念,帮助理解和使用CDN CDN成长地图 快速了解和使用CDN CDN API 快速了解通过调用API来实现对应的控制台操作 入门概述 快速了解如何接入 CDN加速 域名管理 快速了解CDN的域名管理功能 域名配置 快速了解CDN的相关配置 缓存刷新和缓存预热 快速了解CDN的刷新预热功能
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 基本概念 静态资源 每次访问得到的都是相同的文件,例如:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。 动态资源 每次访问得到的都是不同的文件,例如:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。 加速域名 加速域名是用户提供的需要使用CDN加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,应用于网站,电子邮件,FTP等。 CNAME记录 CNAME记录是指域名解析中的别名记录(Canonical Name),允许将多个域名映射到同一个域名。 例如: 您有一台服务器存放了一些文件,可以通过file.example.com访问该资源,但是希望通过另一个域名data.example.com也能访问。 那么您可以在DNS解析服务商处新增一条CNAME记录,将data.example.com指向file.example.com。 添加CNAME记录后,所有访问data.example.com的请求就会指向file.example.com,获得相同内容。 CNAME域名 用户在管理控制台添加加速域名后,系统会为加速域名分配一个对应的“CNAME域名”(域名形式为:*.*.c.cdnhwc1.com)。用户需要在域名服务商处,配置一条CNAME记录,将加速域名指向“CNAME域名”,记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。 源站 源站指用户的业务服务器,即被加速分发数据的来源。 DNS TCP/IP网络中的功能实体,通过该服务器,用户只通过域名就可以访问对应的服务器。在TCP/IP网络中域名与IP地址一一对应,域名便于记忆,但网络中的服务器间只能通过IP地址相互识别,域名和IP地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 例如:您访问xxx.abc.com会通过DNS转换成xxx.xxx.1.1(IP地址)。您可以使用华为云解析,也可以使用其他的DNS服务商。 边缘节点 边缘节点也称CDN节点、Cache节点等,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。 回源 CDN节点未缓存资源或者缓存资源已到期时,节点会回源站获取资源,返回给客户端。 例如:您访问某个URL,如果解析到CDN节点未缓存该资源,则您的访问请求会直接到源站获取资源,并根据URL请求返回。 回源HOST 源站决定了回源时,请求到源站的IP地址。回源HOST决定回源请求访问到该IP地址的哪个站点。 例1:源站为域名时,源站为www.origin.com,回源HOST为www.abc.com,实际回源的是www.origin.com解析到的IP站点www.abc.com。 例2:源站为IP地址时,源站为192.168.1.1,回源HOST为www.abc.com,实际回源的是192.168.1.1对应主机上的站点www.abc.com。 SSL/TLS SSL(Secure Sockets Layer,安全通讯协议),是一个构架于TCP之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的SSL名称为TLS(Transport Layer Security,传输层安全协议)。 URL参数 根据业务需要判断是否启用该项配置,对用户请求URL中“?”之后的参数进行过滤,提高缓存命中率。
  • 中国大陆外节点分布 大区 节点分布(以华为内部业务划分区域) 亚洲 中国香港、中国澳门、中国台湾、日本、韩国、越南、印度、印尼、泰国、菲律宾、新加坡、马来西亚、柬埔寨、老挝、吉尔吉斯斯坦、文莱、缅甸、尼泊尔、孟加拉、蒙古、斯里兰卡、哈萨克斯坦、格鲁吉亚、亚美尼亚、乌兹别克斯坦、塞浦路斯、阿塞拜疆 欧洲 英国、德国、法国、荷兰、西班牙、意大利、 爱尔兰、瑞典、比利时、奥地利、波兰、罗马尼亚、白俄罗斯、葡萄牙、土耳其、摩尔多瓦、保加利亚、拉脱维亚、瑞士、捷克、匈牙利、卢森堡、希腊、克罗地亚、塞尔维亚、芬兰 中东&非洲 阿联酋、沙特、巴基斯坦、卡塔尔、阿曼、科威特、巴林、伊拉克、南非、埃及、肯尼亚、坦桑尼亚、马达加斯加、吉布提、毛里求斯、加纳、安哥拉、尼日利亚、约旦、也门、以色列、塞内加尔 北美洲 美国、加拿大、墨西哥 大洋洲 澳大利亚、新西兰、斐济 南美洲 巴西、智利、阿根廷、秘鲁、哥伦比亚、厄瓜多尔
  • 与其他云服务的关系 表1 与其他云服务的关系 交互功能 相关服务 位置 将OBS桶作为CDN加速域名的源站。 对象存储服务 (Object Storage Service,OBS) CDN加速OBS桶文件方案概述 通过 IAM 服务实现以下功能: 用户管理及权限设置: 管理IAM用户和用户组 管理细粒度策略 管理委托 在IAM控制台进行委托授权,授权成功后CDN将有权限访问您账号下的OBS私有桶。 统一身份认证 服务(Identity and Access Management,IAM) 用户权限 OBS委托授权 通过 CTS 服务收集CDN资源操作记录,便于日后的查询、审计和回溯。 云审计 服务(Cloud Trace Service,CTS) 审计 可在企业管理服务创建相关CDN的企业项目来集中管理CDN域名资源。 企业管理服务(Enterprise Management) 企业项目
  • 全站加速 适用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。全站加速融合了动态和静态加速,用户请求资源时,静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择较优路由回源获取。CDN全站加速有效提升动态页面的加载速度,避开网络拥堵路由,提高访问成功率,实现网站整体加速与实时优化。 全站加速目前作为华为云的新服务,更多资讯请移步到全站加速产品页面进行咨询。
  • 文件下载加速 适用于使用HTTP/HTTPS文件下载业务的网站、下载工具、游戏客户端、APP商店等。现在越来越多的新业务需要通过网络对客户端软件进行实时更新,包括APP更新,手游更新等,传统的下载类业务也需要支持更多的文件数量和更大的文件,如果所有的请求都通过源站服务器来处理,服务器和网络会成为很大的瓶颈,导致下载体验变差。使用CDN下载加速可以将下载量大的内容分发到各地的CDN节点,有效减轻源站的压力,同时保证了客户端高速下载的需求。
  • 网站加速 适用于有加速需求的网站,对网站中图片、小文件等静态资源提供加速服务,包括门户网站、电商平台、资讯APP、UGC应用(User Generated Content,用户原创内容)等。CDN网络能够对加速域名下的静态资源提供良好的加速服务,支持通过自定义缓存规则控制文件在CDN节点的缓存过期时间,缓存格式包括但不限于zip、exe、wmv、gif、png、bmp、wma、rar、jpeg、jpg等。
  • 场景概述 华为云CDN为您提供4种业务类型,分别对应不同的应用场景: 业务类型 应用场景 网站加速 适用于有加速需求的网站,对网站中图片、小文件等静态资源提供加速服务,包括门户网站、电商平台、资讯APP、UGC应用(User Generated Content,用户原创内容)等。 文件下载加速 适用于使用HTTP/HTTPS文件下载业务的网站、下载工具、游戏客户端、APP商店等。 点播加速 适用于提供音 视频点播 服务的客户,例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。 全站加速 适用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。
  • 数据保护技术 华为云CDN通过多种数据保护手段和特性,保障客户数据在华为云CDN的安全性。 表1 CDN数据保护技术 数据保护技术 说明 传输加密 华为云CDN支持全网HTTPS、HTTP2.0安全协议,详情请参见HTTPS配置。 证书管理 华为云CDN支持批量配置SSL证书功能,详情请参见证书管理。 数据一致性保护 资源在CDN多节点内传输时,CDN支持对资源进行CRC校验,保证资源在CDN节点内传输过程中不会被劫持篡改。 数据一致性校验 CDN支持创建检查任务,检查CDN缓存的资源是否和源站一致。 同时,CDN服务充分尊重用户隐私,遵循法律法规。CDN仅为域名提供加速服务,不会采集和存储任何用户隐私数据。更多隐私数据使用和保护问题,请参考隐私政策声明。 父主题: 安全
  • 操作步骤 创建应用,用于对软件应用的设计和构建。 iDME提供控制台和API两种创建方式,具体操作请参见创建应用(控制台)和创建应用(API)。 在应用设计态构建并发布应用。 构建应用:对业务规则进行设计和开发,具体操作请参见数据建模引擎用户指南。 发布应用:生成相应代码包,具体操作请参见发布应用。 部署应用,生成应用运行态,用于多租户应用集成测试及数据服务调用。 iDME提供控制台和API两种部署方式,具体操作请参见部署应用(控制台)和部署应用(API)。
  • 操作步骤 在启动类上方添加@ComponentScan(basePackages = {"com.huawei.innovation"})注解,引入iDME的JAR包。 package com.singzai;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.CompinentScan;@SpringBootApplication@ComponentScan(basePackages = {"com.huawei.innovation"})public class MainApplication{ public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); }}
  • 步骤2:添加索引 准备工作。 在应用运行态中获取添加索引的API信息,具体操作请参见全量数据服务。 根据实际业务需求,调用API添加索引。 请求示例 POST http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/searchServiceIndexDefinition/saveList{ "params": { "searchServId": "505115507221864448", "searchServName": "搜索服务示例", "indexServColuVOList": [ { "id": null, "indexName": "SampleIndex", "indexDesc": "", "indexType": "TEXT", "operator": null, "inputSeparator": null, "segMethod": "NOWORD", "segOption": "NOTINVOLVED", "searchUsage": true, "keywordUsage": true, "displayUsage": true, "matchType": "FUZZY", "key": "indexDefinition43" } ] }} 其中,{Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID,“indexName”、“indexDesc”、“indexType”表示索引名称、描述和类型。 响应示例 { "result": "SUC CES S", "data": [ { "id": "505115594543079424", "rdmExtensionType": "XDMSearchIndexEntity", "className": "XDMSearchIndexEntity", "searchServId": "505115507221864448", "indexName": "SampleIndex", "matchType": { "code": "fuzzy", "cnName": "模糊匹配", "enName": "fuzzy", "alias": "FUZZY" }, "displayUsage": true, "keywordUsage": true, "operator": null, "segOption": { "code": "notInvolved", "cnName": "不涉及", "enName": "notInvolved", "alias": "NOTINVOLVED" }, "indexMaxFieldSize": null, "indexType": { "code": "Text", "cnName": "文本", "enName": "Text", "alias": "TEXT" }, "indexDesc": "", "searchUsage": true, "segMethod": { "code": "noWord", "cnName": "不分词", "enName": "noWord", "alias": "NOWORD" }, "searchServName": "搜索服务示例", "inputSeparator": null, "relationIndexEntityList": null } ], "errors": []}
  • 步骤5:同步搜索服务数据 准备工作。 在应用运行态中获取同步搜索服务的API信息,具体操作请参见全量数据服务。 根据实际业务需求,调用API同步搜索服务数据。 请求示例 PUT http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/searchServ/startEsSync/{serNumber} 其中,{Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID,“serNumber”待同步的搜索服务ID。 响应示例 { "result": "SUCCESS", "data": [], "errors": []}
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全