检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
devspore-clientcontrol使用概述 本文主要描述如何通过devspore-clientcontrol在代码中使用超时、重试、熔断和降级的功能。 开发能力要求 您需具备以下开发能力: 熟悉Java语言,并有Java程序开发经验。 熟悉Maven。 基础开发环境准备
整体结构介绍 压缩包命名规则 在AstroPro中完成服务的开发后,会生成一个服务代码压缩包,命名为“服务名称+唯一ID”。假设服务名称为Servicedemo,则生成的代码压缩包名称,如图1所示。 图1 代码压缩包名称 了解代码结构 在AstroPro中编辑服务时,可在“生成策略
单Module 工程目录结构 “代码风格 > 工程目录”设置为“单Module”,仅会生成“src”一个模块,如图1所示。 图1 单Module 代码结构说明 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro
base/service 工程目录结构 “代码风格 > 工程目录”设置为“base/service”时,会生成base、service和client(如servicedemo-client)三个模块。其中,client为客户端模块,在AstroPro中添加服务时,开启“是否生成客户端”配置后才会生成。
DDD “代码风格 > 工程目录”设置为“DDD”时,和“单Module”一样,仅会生成“src”一个模块,如图1所示。 图1 DDD 代码结构说明 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro
接入指南 pom文件添加依赖。 <dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>devspore-clientcontrol</artifactId> <versio
生成服务代码 使用说明 根据配置的业务模型,生成服务的基本代码。代码生成后,会提供一个压缩包,供您使用。关于代码结构的详细介绍,请参见服务开发框架详解。 操作步骤 参考编辑服务中操作,完成业务模型的配置。 在服务依赖中,单击“创建”。 输入变更日志描述信息,单击“创建”。 系统开始创建服务,并生成该服务的代码。
日志配置 spring-boot-starter-huawei中默认使用slf4j作为日志门面,log4j2作为日志实现框架。 当项目中的依赖可能存在有关logback日志框架的时候需要将其排除,否则可能会有spring-boot-starter-huawei中配置的slf4j(
使用spring-boot-starter-huawei组件 spring-boot-starter-huawei组件具备开发一个基本的基于spring-boot的web项目的基本依赖,使用时只需将该组件的坐标添加到工程的pom文件中即可。 使用方式 直接作为dependency依赖引入(此步骤必须)。
使用超时功能 clientcontrol提供了超时功能,当目标业务方法执行超过执行时间后,会终止代码的执行,具体使用方式如下: pom文件添加依赖。 配置文件,参考下面配置样例。 devspore: client-control: biz-pool: prioritized:
使用重试功能 clientcontrol提供了重试功能,当目标业务方法执行报错时,会按照用户配置的策略重试目标业务方法,具体使用方式如下: pom文件添加依赖。 配置文件,参考下面配置样例。 devspore: client-control: rules:
devspore-auth自定义token解析认证 模块依赖设计图 图1 devspore-auth插件依赖 图2 模块依赖图 开发环境准备 需提前安装的工具,包括JDK、Maven、Eclipse和IDEA,配置对应的环境变量,确保本地开发环境可用。 工作原理 引入devspo
使用指南 基础开发环境准备 安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。 使用说明 配置文件里的密钥,建议自行加密存储并实现解密逻辑。 输入的密钥,建议按全随机数生成,长度32字节以上。 敏感数据加密 DevSporeS
常见问题 问题描述 使用devspore-probe并开启上报监控数据到AOM后频繁打印日志:post metrics to aom success。 解决方案 在项目中添加配置参数:logging.level.com.huawei.devspore.probe=error,使得
使用指南 如何使用devspore-probe 引入Maven依赖,在项目的pom.xml中添加下面的依赖,version应使用最新版本。 <dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId
缓存优先 clientcontrol提供了一种名为缓存优先的功能。当使用缓存优先功能时,在执行目标业务代码时,优先会查询缓存,如果缓存存在则返回缓存结果,如果缓存不存在则执行目标业务代码。 当使用缓存优先时clientcontrol的处理逻辑如下: 读取缓存,判断是否是性能缓存。
服务优先 clientcontrol提供了一种名为服务优先的功能。当使用服务优先功能时,在执行目标业务代码时,优先执行业务代码并返回,如果业务代码报错则去查询缓存并返回。具体使用方式如下: pom文件添加依赖。 配置文件,参考下面配置样例。 devspore: client-control:
clientcontrol注解不生效 问题描述 clientcontrol注解不生效。 解决方案 clientcontorl是依托于spring的aop来实现的。当注解不生效时,用户需要排查以下两个问题: 版本使用是否正确,如果用户使用的是jdk17、clientcontrol必
使用spring-boot-huawei组件 spring-boot-huawei是一个管理jar包的SDK,主要帮助用户管理一些常用sdk的依赖版本。 使用方式 当前spring-boot-huawei各功能模块以jar包的方式提供起始依赖,自动加入实现该模块功能的jar依赖,
自定义缓存key读取失败 问题描述 运行时报错com.huaweicloud.devspore.clientcontrol.core.ClientControlCacheComponent] [ERROR] - [Expression [xxxxx] @xx: ELxxxx]。 解决方案