华为云用户手册

  • ServiceComb ServiceComb是一个Apache微服务开源项目,提供开箱即用、高性能、兼容流行生态、支持多语言的一站式开源微服务解决方案。致力于帮助企业、用户和开发者将企业应用轻松微服务化上云,并实现对微服务应用的高效运维管理。 微服务 微服务是业务概念,某个进程提供某种服务,那它就是个微服务。每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API (最常用的是HTTP)。多个微服务组成应用程序。 在ServiceStage中,微服务对应组件。 微服务实例 一个微服务的最小运行和部署单元,通常对应一个应用进程。
  • 操作步骤 修改微服务调用的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服务网格。
  • 本地开发工具说明 本地开发工具包含了微服务引擎2.x的本地轻量化版本,提供用于本地开发的轻量服务中心、配置中心,和简单易用的界面。 使用说明请参考本地开发工具压缩包中的README.md文件。 表1 本地引擎资源配额限制 功能 资源 最大配额 微服务管理 微服务版本数量(个) 10,000 单个微服务实例数量(个) 100 单个微服务契约数量(个) 500 配置管理 配置数量(个) 600 表2 本地轻量化微服务引擎版本说明 版本 对应微服务引擎版本 发行时间 获取路径 2.1.7 2.x 2023.6.1 Local- CS E-2.1.7-windows-amd64.zip Local-CSE-2.1.7-linux-amd64.zip Local-CSE-2.1.7-linux-arm64.zip 本地轻量化微服务引擎仅作为本地开发调测,请勿用于商业使用。 本地轻量化微服务引擎支持在Windows、Linux系统下使用。 父主题: 附录
  • 获取AK/SK访问密钥 请以应用所需权限用户登录ServiceStage控制台,用户权限说明请参考权限管理。 登录ServiceStage控制台。 鼠标移动到登录用户名,在下拉菜单选择“我的凭证”。 单击“访问密钥”。 单击“新增访问密钥”,输入密钥描述信息后单击“确定”。 单击“立即下载”。 下载成功后,在credentials文件中获取AK和SK信息: Access Key Id的值即为AK。 Secret Access Key的值即为SK。 每个用户仅允许保留2个有效的访问密钥。 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请妥善保管访问密钥。
  • 操作步骤 登录ServiceStage控制台。 创建密钥,请参考管理密钥。 “创建方式”选择“可视化”。 “密钥名称”填写为“mesher-secret”。 “所属集群”选择部署应用的集群。 “命名空间”选择部署应用的命名空间。 “密钥类型”选择“Opaque”。 “密钥数据”请按以下表格填写。 表1 密钥数据 键 值 cse_credentials_accessKey base64编码后的AK值。 cse_credentials_secretKey base64编码后的SK值。
  • 方法二 为微服务添加如表1所示环境变量。 添加环境变量,请参考管理应用环境变量。 AK/SK获取方法,请参考获取AK/SK与项目名称。 表1 环境变量 环境变量 说明 spring_cloud_servicecomb_credentials_accessKey AK,结合用户实际值配置。 spring_cloud_servicecomb_credentials_secretKey SK,结合用户实际值配置。
  • 方法一 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 AK/SK与项目名称获取方法,请参考获取AK/SK与项目名称。 spring: cloud: servicecomb: credentials: enabled: true accessKey: AK #请输入已获取到的AK值 secretKey: SK #请输入已获取到的SK值 project: 项目名称 #请输入已获取到的项目名称 akskCustomCipher: default
  • 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微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“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的加密存储算法。
  • 安全认证概述 开启了安全认证的微服务引擎专享版,通过微服务控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。权限与角色相关联,您可以使用关联了admin角色权限的账号创建新账号,根据实际业务需求把合适的角色同账号关联。使用该账号的用户则具有对该微服务引擎的相应的访问和操作权限。 微服务引擎专享版开启了安全认证之后,所有调用的API都需要先获取token才能调用,认证流程请参考服务中心RBAC说明。 开启了安全认证的微服务引擎专享版,在使用安全认证前需要完成以下工作: 创建安全认证账号名和密码 配置微服务安全认证的账号名和密码 框架支持安全认证功能的版本要求:Spring Cloud需要集成Spring Cloud Huawei 1.6.1及以上版本,Java Chassis需要2.3.5及以上版本。 老版本未开启安全认证的微服务引擎专享版,升级到新版本并开启安全认证的场景,请参考管理微服务引擎专享版安全认证。 父主题: 使用安全认证
  • 隔离仓 隔离是一种异常检测机制,常用的检测方法是请求超时、流量过大等。一般的设置参数包括超时时间、同时并发请求个数等。 Java Chassis的隔离作用于微服务消费者,需要微服务应用集成隔离模块,启用bizkeeper-consumer处理链。 配置如下: servicecomb: handler: chain: Consumer: default: bizkeeper-consumer isolation: Consumer: timeout: enabled: true #是否启用超时检测 timeoutInMilliseconds: 30000 #超时时间阈值 Spring Cloud Huawei的隔离策略同熔断一致,配置示例请参考熔断中相关内容。 父主题: 使用服务治理
  • 服务治理概述 服务治理是一个非常宽泛的概念,一般指独立于业务逻辑之外,给系统提供一些可靠运行的系统保障措施。针对微服务场景下的常用故障模式,提供的保障措施包括: 负载均衡管理:提供多实例情况下的负载均衡策略管理,比如采用轮询的方式保障流量在不同实例均衡。当一个实例发生故障的时候,能够暂时隔离这个实例,防止访问这个实例造成请求超时等。 限流:流控的主要目的是提供负载保护,防止外部流量超过系统处理能力,导致系统崩溃。流控还被用于平滑请求,让请求以均匀分布的方式到达服务,防止突发的流量对系统造成冲击。 重试:重试的主要目的是保障随机失败对业务造成影响。随机失败在微服务系统经常发生,产生随机失败的原因非常多。以Java微服务应用为例,造成请求超时这种随机失败的原因包括:网络波动和软硬件升级,可能造成随机的几秒中断;JVM垃圾回收、线程调度导致的时延增加;流量并不是均匀的,同时到来的1000个请求和1秒内到来的1000个请求平均分布对系统的冲击是不同的,前者更容易导致超时;应用程序、系统、网络的综合影响,一个应用程序突然的大流量可能会对带宽产生影响,从而影响到其他应用程序运行;其他应用程序相关的场景,比如SSL需要获取操作系统熵,如果熵值过低,会有几秒钟的延迟。 系统不可避免地面临随机故障,必须具备一定的随机故障保护能力。 隔离仓:隔离仓通常针对系统资源占用比较多的业务进行保护。比如一个业务非常耗时,如果这个业务和其他业务共享线程池,当这个业务被大量突发访问时,其他业务都会等待,造成整个系统性能下降。隔离仓通过给资源占用比较多的业务分配独立的资源池(一般通过信号量或者线程池实现),避免对其他业务造成影响。 降级:降级治理是在业务高峰期时,需要临时减少对于目标服务的访问,达到降低目标服务负载;或者屏蔽对于非关键服务的访问,保持本服务的核心处理能力的治理措施。 服务治理的复杂性在于没有任何治理措施是适用于所有场景的。对于一个应用场景工作良好的治理手段,在另外一个场景可能成为问题。在业务运行周期,根据业务运行状态和指标,动态的更新治理策略非常重要。 在业务系统中使用服务治理,通常包括下面几个步骤: 开发业务。这个过程一般比较少关注服务治理的内容,以交付业务功能为重心。微服务开发框架针对常用的系统故障,一般都默认提供了保障措施,选择合适的微服务开发框架,可以节省DFx的时间。 性能测试和故障演练。这个过程中会发现非常多的系统不稳定问题,服务治理的策略会在解决这些问题的过程中应用,并写入配置文件作为应用程序缺省值。 业务上线运行。上线运行的过程中碰到未考虑的场景,需要采用配置中心动态调整治理参数,以保障业务平稳运行。 上面的3个步骤在整个软件生命周期会不断迭代完善。描述如何使用所有的治理能力是复杂的,微服务引擎针对不同的微服务开发框架,提供了一个统一的基于流量特征的服务治理能力。如果使用微服务框架开发应用,在应用托管后启动应用,微服务会自动注册到对应的微服务引擎,您可以到微服务引擎控制台进行服务治理的相关操作请参考治理微服务。 本章节重点介绍如何使用基于流量特征的服务治理能力。 父主题: 使用服务治理
  • 配置中心概述 配置中心用来管理微服务应用的配置。微服务连接配置中心,能够从配置中心获取配置信息及其变化。配置中心还是其他微服务管控功能的核心部件,比如服务治理规则的下发,也是通过配置中心实现的。 微服务引擎支持的配置中心为: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会解析内容,应用程序将内容作为实际的应用程序配置项。比如: 类型:TEXT key: cse.examples.hello value: World 应用程序会发现1个配置项: cse.examples.hello = World。 类型:YAML key: cse.examples.hello value: | 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: value1 cse.example.key2: value2 file2.yaml cse.example.key3: value3 cse.example.key4: value4 配置创建方法请参考配置管理中的“创建配置”操作。 应用程序中会发现4个配置项:cse.example.key1=value1,cse.example.key2=value2,cse.example.key3=value3和cse.example.key4=value4。 父主题: 使用配置中心
  • 常用环境变量说明 通过ServiceStage管理环境和部署应用,能够简化用户的配置。ServiceStage会设置一些环境变量,供应用使用,常用的环境变量包括下表所示内容: 表1 常用环境变量 环境变量名称 含义 PAAS_CSE_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)。应用绑定的中间件配置信息可以通过以下环境变量获取。
  • 开发微服务应用 如您已经完成了微服务应用的开发,请跳过本章节。 开源社区提供了丰富的开发资料和帮助渠道帮助您使用微服务开发框架。如您需深入了解具体微服务框架下的微服务应用开发,请参考本章节给出的参考资料链接。 体验微服务引擎最快捷的方式是使用“微服务引擎推荐示例”里面的例子。下载示例,修改配置文件中的微服务引擎地址,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 父主题: 微服务开发指南
  • 微服务开发框架版本要求 微服务开发框架推荐版本如下表所示。 如果已经使用低版本的微服务开发框架构建应用,建议升级到推荐版本,以获取最稳定和丰富的功能体验。 如果已使用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。 系统升级、改造过程中,三方软件冲突是最常见的问题。随着软件迭代速度越来越快,传统的软件兼容性管理策略已经不适应软件的发展,您可以参考三方软件版本管理策略来解决版本冲突。
  • 常用概念 应用:可以将应用理解为完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 微服务:完成某项具体业务功能的软件系统。微服务是独立开发、部署的单元。 微服务实例:将微服务采用部署系统部署到运行环境,就产生了实例。可以将实例理解为一个进程,一个微服务可以部署若干实例。 微服务环境:服务中心建立的一个逻辑概念,比如development、production等。不同环境里面的微服务实例逻辑隔离、无法相互发现和调用。 父主题: 概述
  • 实例跨Region多活 当前Redis没有成熟的双活(Active-Active,注意不同于灾备或者主备高可用)方案,华为云DCS不支持跨Region多活功能。 这是由于私有定制Redis通信协议(RESP协议)的标准无法统一等原因无法实现跨云/Region的Redis侧双活,因此,如果需要双活,可以通过应用侧进行双写改造实现。 图9 应用侧双写实现多活 说明: 双写方案无法保证缓存的一致性(网络出现问题),需要应用侧可以容忍对应的缓存不一致场景(通过设置过期时间等达到最终一致性),应用如果依赖缓存强一致性,则不合适该方案,跨Region缓存强一致性当前业界没有方案可以实现。 建议操作跨Region的二级缓存采用异步的方式。
  • 实例单Region单可用区高可用 同一机房即单可用区。单可用区灾备策略主要包括进程/服务高可用,数据持久化到磁盘,以及实例节点间热备三种不同层次。 在单可用区内,单机实例通过进程守护的方式确保服务高可用,当DCS监测到缓存实例进程故障,马上拉起一个新的进程继续提供服务。 图2 单可用区内单机实例高可用 除单机实例外,主备、读写分离和集群实例默认都支持数据持久化,数据不仅会持久化到实例主节点磁盘,还会增量同步到备节点,同时备节点也会持久化一份数据。实现了节点热备和持久化文件多个备份。 主备、读写分离实例的主备节点进程,以及集群实例每个分片内主备节点进程的数据同步和持久化方式如下图所示。 图3 单可用区内主备节点间高可用
  • 实例单Region跨可用区灾备 除单机实例外,其他类型的缓存实例都支持将主备节点部署在不同的可用区内(即不同的物理机房)。不同可用区的电力、网络相互隔离,当主节点所在的机房因为电力或者网络出现故障,备节点将接管服务,客户端与备节点正常建立连接以及读写数据。 图4 主备实例跨可用区示意图 图5 读写分离实例跨可用区示意图 图6 Proxy集群实例跨可用区示意图 图7 Cluster集群实例跨可用区示意图 当集群实例选择跨可用区部署时,每一个分片的主备节点都为跨可用区部署。读写分离实例的主备节点和集群实例每个分片中主备节点的数据同步关系与主备实例相同,如图4。 对于同城容灾,只需要在创建主备/集群/读写分离实例时,选择与主可用区不同的备可用区。如下图所示: 图8 购买实例选择不同可用区部署 您的应用也可以部署为跨可用区的HA模式,这样不仅能保证数据高可靠,还能在机房遇到断电或网络故障时,服务继续可用。
  • 读写分离实例 图1 读写分离实例 实例示意图说明: VPC终端节点 服务 VPC终端节点服务,主要是将Redis缓存实例配置为VPC终端节点支持的服务,用户可以直接通过VPC终端节点服务的地址访问。 Redis读写分离实例提供的IP地址和域名,即为VPC终端节点服务的地址。 ELB 弹性负载均衡服务器,采用集群高可用方式,支持多可用区部署。 Proxy 代理服务器集群。通过Proxy节点识别用户读写请求,如果是写请求,则转发给主节点,如果是读请求,则转发给备节点,不需要用户在客户端做任何配置。 Sentinel集群 监控主备节点状态,当主节点出现故障或异常时,进行主备倒换,保证服务不中断。 主备实例 读写分离实例,后端是一个主备实例,包含了主和备两个节点。默认开启数据持久化功能,同时保持节点间数据同步。 主备节点支持跨可用区部署。
  • 网络隔离 VPC允许租户通过配置VPC入站IP范围,来控制连接缓存实例的IP地址段。DCS实例运行在租户独立的VPC内。租户可以创建一个跨可用区的子网组,之后可以根据业务需要,将部署DCS的高可用实例选择此子网完成,DCS在创建完实例后会为租户分配此子网的IP地址,用于缓存实例。DCS实例部署在租户VPC后,租户可通过VPN使其它VPC能够访问实例所在VPC,也可以在VPC内部创建ECS,通过私有IP连接缓存实例。租户可以综合运用子网、安全组、白名单等配置,来完成DCS实例的隔离,提升DCS实例的安全性。
  • 访问控制 租户创建DCS实例时,可以选择配置安全组(仅Redis 3.0/Redis 6.0企业版/Memcached实例支持)或者白名单(仅Redis 4.0、Redis 5.0和Redis 6.0基础版支持)。 租户可以通过VPC,对DCS实例所在的安全组或白名单入站、出站规则进行限制,从而控制可以连接实例的网络范围。 配置安全组/白名单不需要重启实例。 租户创建DCS实例时,建议将访问方式设置为密码访问,并为实例设置访问密码,防止未经认证的客户端误操作实例,以达到对客户端进行认证访问的目的,提高实例使用的安全性。
  • 传输和存储加密 Redis的传输协议RESP在Redis 6.0之前的版本仅支持明文传输。Redis 6.0基础版实例支持RESP3传输协议,支持SSL传输加密。 当前DCS实例在开启公网访问Redis 3.0时,支持基于Stunnel的客户端与服务端TLS加密传输(参考文档:Stunnel安装和配置)。在开启公网访问时,指定的CA会为每个实例生成唯一的服务证书。客户端可以使用从服务控制台上下载的CA根证书,并在连接实例时提供该证书,对实例服务端进行认证并达到加密传输的目的。 由于需要兼容开源RESP协议,在未开启公网访问时,如果客户有传输加密诉求,建议在数据存储前使用加密算法进行加密后传输(例如AES 256等),并且控制在信任域内进行访问,加密后的数据在落盘保存时同样也会加密保存。
  • 数据复制 DCS的主备和集群实例支持部署高可用实例。租户可选择在单可用区或多可用区中部署实例。当租户选择跨AZ实例时,DCS实例会主动建立和维护Redis同步复制。在实例主节点故障的情况下,缓存实例会自动将备实例升为主节点,从而达到高可用的目的。如果租户使用缓存实例时,业务中读取数据比例大,可以选择4.0以上版本的读写分离实例或者集群多副本实例,缓存实例会自动维护主节点和多个备节点之间的数据同步复制,租户可以根据业务需要连接不同的地址进行读写分离。
  • 解决方法 待查看日志的主机未安装ICAgent ServiceStage的日志查看能力是由 AOM 服务提供的。主机是否安装ICAgent是使用AOM的日志能力的前提,否则将无法查看ServiceStage的日志。ICAgent是AOM的采集器,分别运行在每台主机上用于实时采集指标、日志和应用性能数据。 如何为待查看日志的主机安装ICAgent,请参考安装ICAgent。 用户业务日志输出位置为非标准位置 由于用户配置了日志策略,导致用户程序业务日志未输出到标准的输出位置。需参考如下方法进行排查处理: 虚拟机部署 排查配置的日志策略,是否把用户程序业务日志输出位置写到ServiceStage默认指定的虚拟机日志目录(/var/log/application/${组件名}-${环境名}-${随机字符串}/${版本号}/${实例ID}/start_app.log)外的其他目录。 请查询业务代码,对日志策略进行调整。 容器部署 排查配置的日志策略,是否把业务日志输出到出标准输出外的其他地方。请参考设置应用日志策略进行相关配置。
  • 为什么一定要定义服务契约? 企业级系统规模普遍较大,微服务组件众多,所以对服务间接口进行统一管理是企业的关键需求。微服务引擎通过契约管理满足这一需求。 管理角度:通过契约管理,企业中的接口管理者可以统一定义微服务的契约文件(符合接口描述标准的接口定义文件),从而做到规范并协调多个开发团队的接口开发,降低沟通成本且避免后期的混乱。 开发角度:在微服务开发的时候,不同团队甚至不同ISV间,可以基于统一的契约文件开发同一应用或系统,从而方便整体系统一致性的维护。具体表现在,单体应用中模间是代码级调用,在编译期就可以解决API不兼容问题,修复成本也极低。微服务解耦后,服务间变为了远程调用,接口不一致通常发现时间较晚,会造成更大的修复成本。有了契约可以保证架构师设计契约,严格审查变更,并反向生成代码,保证兼容性。 另外,对于规模较小、统一管理要求不高的系统,产品支持从接口代码自动生成契约文件。 父主题: 应用开发问题
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 错误码说明 200 - 操作成功。 304 Not Modified 未修改,所请求的资源未修改返回次状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 403 Forbidden 服务器拒绝执行客户端的请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 父主题: 附录
  • 控制台总览(新版) 控制台提供查看和管理云服务资源的平台,您可以使用图形化界面、Cloud shell命令行工具等多种方式操作和管理您的资源。 图1 控制台总览 表1 控制台区域概述 区域 概述 顶部导航栏 顶部导航栏提供各类服务以及功能的便捷入口,同时支持搜索云服务、资源等内容。 头部名片区域 头部名片区域展示用户账号信息和账户费用信息,提供创建资源便捷入口以及我的收藏、最近访问等个性化内容。同时,在此区域您还可以反馈对华为云的用户评价和优化建议。 我的资源区域 我的资源区域以“视图”进行划分,分为“总览”视图、“资源管理”视图、“运维监控”视图和“安全监控”视图。 运维监控区域 运维监控区域汇总监控信息、成本概况、费用和账单信息,帮助用户优化成本,规划费用。 当您使用 IAM 用户登录管理控制台时,可能因权限不足,无法查看资源或对资源进行操作。这时,您需要对IAM用户进行授权。详细操作,请参见为IAM用户授权查看资源。
  • 调用API 本章节仅提供请求地址和认证参数的配置指导,客户端的其他参数配置需要用户自行调整,如超时配置、SSL配置等。如果客户端参数配置错误会导致业务受损,建议参考业界标准进行配置。 配置请求地址相关参数。 API调用场景 API请求参数配置 使用域名调用API 使用服务分配的子域名或服务绑定的域名调用API,无需另外配置。 使用IP调用非DEFAULT分组的API 使用IP地址直接调用非DEFAULT分组下的非APP认证的API,需要在请求消息中添加Header参数“host”。 配置认证参数。 API认证方式 API请求参数配置 APP认证(签名认证) 使用获取的SDK对API请求进行签名,具体请参考使用APP认证调用API。 APP认证(简易认证) 在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API及文档中获取到的AppCode。具体请参考快速入门。 华为IAM认证(Token认证) 先获取云服务平台的认证Token,然后在API请求中携带Token进行认证,具体请参考Token认证。 华为IAM认证(AK/SK认证) 调用API时,使用获取的SDK对API请求进行签名,具体请参考AK/SK认证。 自定义认证 在API请求参数中携带认证信息进行认证。 无认证 无需认证,可直接调用API。
共100000条