COLA

整体架构

github.com/alibaba/COL...

对于各个分层的定义和区分

  • client层,面向应用层对外的服务表达,灵活为主,薄,可随业务、渠道定义独立的api,但是分包结构不能不变化
  • app层,或者是业务逻辑层,面向业务场景的逻辑表达。负责业务编排,一个业务场景的主流流程可以在这一层直观可视,灵活为主,薄。
  • domain层,做领域服务,围绕这一簇模型进行逻辑表达。核心能里的所在地,规范灵活,以沉淀复用为主,使用spi兼顾业务的个性化
  • infra层,基础设施层,基础的配置,内部存储或远程rpc调用,灵活为主,可随db,性能差异独立dao方法

实践中的细节

  • 能够跨层调用dao,可以
  • 厚domain而薄biz,app面向实际的业务场景,而domain面向实际的模型簇
  • 能否跨域调用dao,可以
  • 实物放在同一层,或者是app,或者是domain
  • 域之间不能相互调用
  • 定制点最好在domain层开
  • 依赖倒置,图中是站在domain层进行的依赖倒置,但是如果站在整个应用的角度,那么domain是依赖于Dao的实现的
  • 配置态和运行态需要解耦

系统调用大图

重要组件和功能

日志Aop

核心知识 aop切面 代理模式

  • @CatchAndLog 切面注解
  • CatchLogAspect 日志切面
  • CatchLogAutoConfiguration 切面注册
  • ResponseHandlerI 异常结果处理接口,可以自定义实现

工厂的能力可以根据业务复杂度再进行扩展,不同类型的异常,不同类型的response,CatchAndLog可以再加一些内容

事件

核心是重试,重试监听,执行,执行前处理,执行后处理,异常监听

类图

调用流程

扩展点

blog.csdn.net/significant...

核心业务身份识别

类图

注册流程

调用流程

系统应用开放性的几种形态

相关推荐
明月_清风7 分钟前
📊 Tokenomics 入门:如何看懂一个项目的代币经济?
后端·web3
明月_清风13 分钟前
🏛️ DAO 治理入门:没有老板的公司怎么运转?
后端·web3
yuhaiqiang20 分钟前
上线一个人静态网站需要多少钱,难不难?
前端·后端·程序员
小Ti客栈11 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
Ai拆代码的曹操12 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
IT_陈寒13 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱13 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端
Wang's Blog13 小时前
Go-Zero项目开发24: 基于Bitmap实现群聊消息已读未读
开发语言·后端·golang
Conan在掘金14 小时前
鸿蒙报错速查:struct 里嵌 namespace 声明就炸,根因 + 真解法
后端
东方小月14 小时前
从零开发一个 Coding Agent(三):EventStream 事件流通道设计与实现
前端·人工智能·后端