检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
无法获取本地线程变量 问题描述 ClientControl的超时功能是搭配线程池使用的,所以当使用本地线程变量的时候会导致无法获取线程变量的问题。 解决方案 这种情况一般推荐使用远程调用自带的超时控制,将ClientControl的超时功能关闭。 提前获取需要的信息,传入加了@ClientControl注解的方法中。
单击,展开设置数据源页面。 选择数据源类型(可选对象数组、树结构),并输入数据源名称。 单击“获取远程字段”,设置请求地址、请求方式及请求参数。 图1 创建数据源 单击“发送请求”,请求成功后获取到接口字段信息,保存后即可生成数据源字段信息。 单击“保存”,完成数据源创建。 父主题: 数据源管理
java # 领域服务接口定义(devspore生成的持久化服务,禁止修改) I{biz}GatewayService.java # 网关服务接口 |-- impl
请求方法:HTTP请求方法(也称为操作或动作),用于告诉服务您正在请求什么类型的操作。 get:请求服务器返回指定资源。 put:请求服务器更新指定资源。 post:请求服务器新增资源或执行特殊操作。 delete:请求服务器删除指定资源。 请求对象:单击“添加请求对象”,可添加请求对象,即API请求的输入参数。
使用客户端流控策略时,需要满足以下三个前置条件: 目录结构必须为DDD。 服务要依赖于其他服务。 依赖类型为METHOD。 例如: 有两个服务分别为A和B, A服务开启了客户端功能(目录结构不做要求),B服务(目录结构为DDD)依赖了A服务,依赖类型为METHOD,此时可以在该依赖上添加已创建的客户端流控策略。
单Module 工程目录结构 “代码风格 > 工程目录”设置为“单Module”,仅会生成“src”一个模块,如图1所示。 图1 单Module 代码结构说明 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro
步骤5:生成服务代码 根据配置的业务模型生成该服务的基本代码。代码生成后,会提供一个压缩包,供您使用。关于压缩包中代码的详细介绍,请参见服务开发框架详解。 在服务依赖页面,单击“创建”。 图1 创建服务 输入变更日志描述信息,单击“创建”。 系统开始创建服务,并生成该服务的基本代码
界面。 在左侧导航栏中,选择“前端开发平台 > 物料中心”。 单击“导入物料包”,进入物料包配置页面。 可单击“下载自定义组件开发模板”,获取模板,并完成自定义组件开发,具体操作可参考自定义组件开发指南。 单击“点击上传”,上传本地已打包好的物料包。 注意:上传的物料包名称不能与已有的物料包名称重复。
代码压缩包名称 了解代码结构 在AstroPro中编辑服务时,可在“生成策略 > 代码风格”中定义生成代码的工程目录结构,如图2、图3。 图2 设置代码工程目录结构 图3 工程目录不同类型设置效果 单Module、DDD:仅会生成“src”一个模块。 base/service:由bas
file: UTF-8 console: UTF-8 file: name: /opt/cloud/log/{服务名}/{服务名}.log #日志文件的位置及名称 pattern: file: "[%d{yyyy-MM-dd HH:mm:ss.SSS}]
订单业务设计 服务依赖:通常情况下,一个应用不是一个单独的服务,可能由多个服务共同组成。这些服务之间可能存在一些跨服务的调用,此时就需要通过添加依赖服务,把这些服务的客户端集成过来。 注意:请确保被依赖的服务已开启“是否生成客户端”配置,否则添加依赖服务时会报错。 图5 添加服务依赖 图6
# 该目录下的文件禁止用户改动 base资源目录结构 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 resources # 资源目录结构 |--
e注解参数校验方式。 云服务设置。 图7 云服务设置 注册发现/配置中心 不启用:不对接配置管理服务。 CSE:使用微服务引擎服务CSE作为配置管理服务。CSE是微服务应用的云中间件,为用户提供了注册发现、服务治理、配置管理等高性能和高韧性的企业级云服务能力,可无缝兼容Spring
常见问题 clientcontrol中ttl和performanceTtl的具体含义是什么 无法获取本地线程变量 redis缓存不存在的属性反序列化 找不到createMultiZonClient的bean 自定义缓存key读取失败 访问熔断状态的方法时报错异常 clientcontrol注解不生效
执行框架转换 应用场景 针对企业中使用Dubbo等其他API框架的存量服务,AstroPro支持将代码统一转换为Spring MVC + OpenAPI的主流框架。转换后的框架将统一化,这有助于简化技术栈,降低技术多样性带来的复杂性,同时提高开发和运维团队的效率。 约束与限制 框架转换为Astro
bok注解。 工程目录:设置生成代码的工程目录样式,默认为DDD。 单Module:工程目录结构只有一个模块。 base/service:工程目录结构包含base和service两个模块。 DDD:和单Module一样,工程目录结构只有一个模块。 图3 工程目录不同类型设置效果
打开生成的服务代码包,在“README.md”文件中可查看代码目录结构的说明,如图19。 图19 代码目录结构说明 代码目录结构分为“base/service”、“单Module”和“DDD”三种,在编辑元数据的“生成策略 > 代码风格 > 工程目录”中可进行定义,生成效果差异如图21所示。本示
图4 详细配置 服务类型:当前仅支持创建原子服务。原子服务是指对外提供业务对象管理API,有独立数据存储(一般为独立数据库)的服务。原子服务之间可以相互调用。 服务组:选择服务所属的分组。如何创建服务组,请参见新建服务组。 服务单元化策略:服务在子域内的单元化策略。服务单元化策略必须在一个子域内定义,不能跨子域。
ken(String token, HttpServletResponse response)接口,token获取根据配置由devspore-auth-starter获取。 若token未定义在header中,devspore.auth.in-header配置为false,并实现
toString(); } 当使用服务优先时clientcontrol的处理逻辑如下: 执行原方法,如果执行成功,更新缓存,返回结果。如果执行方法失败,获取缓存。 如果成功拿到缓存,则将缓存结果返回。如果没有拿到缓存则将原方法的执行失败异常返回。 父主题: 使用熔断降级功能