小麦带你学服注册体系六

简介: 服务编排

# 服务编排


## DSL设计


为了实现服务编排,需要定义一个数据结构来描述服务之间的依赖关系、调用顺序、调用服务的入参和出参等等。之后对获取的结果进行处理,也需要在这个数据结构中具体描述对什么样的数据进行怎么样的处理等等。所以需要定义一套DSL(领域特定语言)来描述整个服务编排的蓝图。




## 架构设计



- Facade:对外提供统一接口,供客户端调用

- Parser:对于输入的DSL进行解析,解析成内部流转的数据结构,同时得到所有的task,并且构建task调用逻辑树

- Executor:真实发起调用的模块,目前支持平台内部的RPC和HTTP调用方式,同时对HTTP等其它协议有良好的扩展性

- DataProcessor:数据后处理。这边会把所有接口拿到的数据转换层客服场景这边需要的数据,并且通过设计的一些内部函数,可以支持一些如数据半脱敏等功能

- 组件插件化:对日志等功能实现可插拔,调用方可以自定义这些组件,即插即用




## 主要特点


主要特点如下:


- 采用去中心化设计思路,引擎集成在SDK中。方案通用化,每个需要业务数据的场景都可以通过框架直接调用数据提供方

- 服务编排支持并行和串行调用,使用方可以根据实际场景自己构造服务调用树。通过DSL的方式把之前硬编码组装的逻辑实现了配置化,然后通过框架引擎把能并行调用的服务都执行了并行调用,数据使用方不用再自己处理性能优化

- 使用JSON DSL 描述整个工作蓝图,简单易学

- 支持JSONPath语法对服务返回的结果进行取值

- 支持内置函数和自定义指令(语法参考ftl)对取到的元数据进行处理,得到需要的最终结果

- 编排服务树可视化




# 服务降级


什么是服务降级?当服务器压力剧增的情况下,可以将一些**不重要**或**不紧急**服务**暂停使用**或**延迟使用**,从而释放服务器资源以保证核心服务的正常运作或高效运作。服务降级的设计架构图如下:



## 使用场景


服务降级主要用于什么场景呢?当整个微服务架构整体的负载超出了预设的上限阈值或即将到来的流量预计将会超过预设的阈值时,为了保证重要或基本的服务能正常运行,我们可以将一些 **不重要** 或 **不紧急** 的服务或任务进行服务的 **延迟使用** 或 **暂停使用**。




## 服务降级要考虑的问题


- 核心和非核心服务

- 是否支持降级,降级策略

- 业务放通的场景,策略

相关文章
|
4月前
|
人工智能 自然语言处理 算法
瓴羊Quick Service智能客服算法通过国家网信办深度合成服务算法备案
瓴羊Quick Service智能客服算法通过国家网信办深度合成服务算法备案
|
6月前
|
人工智能 供应链 安全
推进数据入港 宝尊与瓴羊共同构建管理品牌的“好数据”
推进数据入港 宝尊与瓴羊共同构建管理品牌的“好数据”
|
新零售 存储 供应链
严选库存中心设计实践
严选库存中心设计实践
337 0
《快递行业云上技术服务白皮书》——3. 快递业务介绍——3.3 快递业务主体流程
《快递行业云上技术服务白皮书》——3. 快递业务介绍——3.3 快递业务主体流程
109 0
|
缓存 NoSQL Dubbo
小麦带你学服注册体系二
含金量文章,你不得不看的好文章
|
运维 监控 微服务
|
缓存 监控 负载均衡
|
消息中间件 NoSQL 安全