检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
base/service 工程目录结构 “代码风格 > 工程目录”设置为“base/service”时,会生成base、service和client(如servicedemo-client)三个模块。其中,client为客户端模块,在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
clientcontrol注解不生效 问题描述 clientcontrol注解不生效。 解决方案 clientcontorl是依托于spring的aop来实现的。当注解不生效时,用户需要排查以下两个问题: 版本使用是否正确,如果用户使用的是jdk17、clientcontrol必
使用spring-boot-huawei组件 spring-boot-huawei是一个管理jar包的SDK,主要帮助用户管理一些常用sdk的依赖版本。 使用方式 当前spring-boot-huawei各功能模块以jar包的方式提供起始依赖,自动加入实现该模块功能的jar依赖,
使用指南 基础开发环境准备 安装的工具包括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
自定义降级方法不生效 问题描述 自定义降级方法不生效。 解决方案 请排查自定义降级方法的定义的限制。 方法列表需要和原方法一致,此外要额外添加一个Throwable的参数,放在参数列表的最后一个。 方法的返回值要和原方法保持一致。 方法的修饰类型要大于原方法。如:原方法是publ
在项目启动时报NPE问题 问题描述 在项目启动时,报如图1所示问题。 图1 NPE报错 解决方案 用户需要排查是否在项目启动时使用到了clientcontrol的功能,如在启动时使用了clientcontrol的功能,需要保证clientcontrol要优先初始化。可以在使用到c
组件纳管的依赖包和版本 组件纳管的依赖包 spring-boot-starter-huawei包含的依赖包(代码中pom可不引入相关依赖)。 表1 spring-boot-starter-huawei包含的依赖包 包名groupId:artifactId 备注 org.sprin
支持注解形式自定义监控指标 使用场景 为了方便用户更加快速、便捷的使用micrometer定义自己的监控指标,devspore-probe提供了注解的方式去快速的定义监控指标,避免了定义复杂的监控类。 如何使用 项目中引入devspore-probe依赖,在项目的pom.xml中添加下面的配置。
redis故障后clientcontrol的处理逻辑是什么 当clientcontrol的缓存类型配置为redis时,此时clientcontrol相当于是redis的使用方,redis自身的配置(超时时间,重试等)还是服务自己设置的,跟clientcontrol没有关系。 cl
使用swagger进行在线API文档配置 文档配置 spring-boot-starter-huawei添加了swagger2和swagger3包的依赖,API在线文档使用springdoc-openapi-ui。springdoc基本配置较为简单,如下所示: springdoc:
无法获取本地线程变量 问题描述 ClientControl的超时功能是搭配线程池使用的,所以当使用本地线程变量的时候会导致无法获取线程变量的问题。 解决方案 这种情况一般推荐使用远程调用自带的超时控制,将ClientControl的超时功能关闭。 提前获取需要的信息,传入加了@ClientControl注解的方法中。