COLA架构

简介: COLA架构

COLA架构


COLA架构设计

COLA 的分层是一种经过改良的三层架构,主要是讲传统的业务逻辑层拆分为应用层、领域层和基础设施层。

image.png


  1. 展示层(Presentation Layer):负责以 Rest 的风格接收 Web 请求,然后将请求路由给 Application 层执行,并返回视图模型(View Model),其载体通常是数据传输对象(Data Transfer Object, DTO);
  2. 应用层(Application Layer):主要负责获取输入、组装上下文、做输入校验、调用领域层做业务处理,当需要时发送消息通知。当然,层次是开放的,若有需要,应用层也可以直接访问基础设施层;
  3. 领域层(Domain Layer):主要封装了核心业务逻辑, 并通过领域服务(Domaini Service)和领域对象(Entities)的函数对外部提供业务逻辑的计算和处理;
  4. 基础设施层(Infrastructure Layer):主要包含数据访问通道(Tunnel)、Config 和 Comon。这里Tunnel这个概念对所有的数据来源进行抽象,数据来源可以是数据库(MySQL/NoSQL)、搜索引擎、文件系统,也可以是SOA服务等;Config 负责应用的配置;Common是通用的工具类;


规范设计

COLA制定了一系列的规范,包括组件(Module)结构、包(Package)结构、命名等。


组件规范

COLA规定一个应用至少要有3个组件:应用层、领域层和基础设施层。如果不是严格的前后端分离,也可以加入展示层的组件,但这是可选的。组件的依赖关系如下:

image.png


从上面的依赖关系可以看到,领域组件(Domain Module)是应用的核心,负责核心业务逻辑的处理,不应该有任何的外部依赖。领域组件的实现方式有两种,一种是把领域组件设计成纯POJO,另一种是通过依赖倒置,将数据访问的接口放在领域组件里,让基础设施组件(Infrastructure Module)去做接口的实现。


包规范

应用的包结构


image.png

领域层的包结构

image.png


基础设施层的包结构

image.png


命名规范

在COLA架构中,制定了一系列的命名规范,以便通过名称就能知晓该类的作用和职责范围,从而极大的提升代码的可理解性,提升代码审查的效率。

对于类名的主要约定如表

image.png

image.png

目录
相关文章
|
9月前
|
消息中间件 缓存 前端开发
COLA架构 入门
COLA架构 入门
1498 0
|
前端开发 架构师 搜索推荐
COLA 4.0:直击应用架构本质的最佳实践
COLA 4.0:直击应用架构本质的最佳实践
2230 0
COLA 4.0:直击应用架构本质的最佳实践
|
Java 网络架构 容器
面向整洁对象的分层架构COLA 4.0
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“面向整洁对象的分层架构”。 目前COLA已经发展到COLA 4.0。 COLA分为两个部分,COLA架构和COLA组件。
面向整洁对象的分层架构COLA 4.0
|
Cloud Native 安全 Java
架构简洁之道:从阿里开源应用架构 COLA 说起
COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有增加任何新的功能,而是尽量多删减了一些概念和功能,让 COLA 更简洁有效。
11791 1
架构简洁之道:从阿里开源应用架构 COLA 说起
|
安全 Java 关系型数据库
给 COLA 做减法:应用架构中的“弯弯绕设计”
COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有增加任何新的功能,而是尽量多删减了一些概念和功能,让 COLA 更简洁有效。
2218 0
给 COLA 做减法:应用架构中的“弯弯绕设计”
|
3天前
|
运维 负载均衡 Cloud Native
云原生架构技术之云原生微服务
微服务模式将后端单体应用拆分为松耦合的多个子应用,每个子应用负责一组子功能。这些子应用称为“微服务”,多个“微服务”共同形成了一个物理独立但逻辑完整的分布式微服务体系。这些微服务相对独立,通过解耦研发、测试与部署流程,提高整体迭代效率。此外,微服务模式通过分布式架构将应用水平扩展和冗余部署,从根本上解决了单体应用在拓展性和稳定性上存在的先天架构缺陷。但也要注意到微服务模型也面临着分布式系统的典型挑战:如何高效调用远程方法、如何实现可靠的系统容量预估、如何建立负载均衡体系、如何面向松耦合系统进行集成测试、如何面向大规模复杂关联应用的部署与运维。
16 4
|
3天前
|
敏捷开发 负载均衡 监控
探索微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文将深入剖析微服务架构中的关键组件——API网关,探讨其设计理念、核心功能以及在实际项目中的应用。我们将从API网关的基本概念出发,逐步展开对其路由、负载均衡、认证授权、监控日志等方面的详细讨论,并结合实际案例,分析如何高效地实现和管理一个稳定的API网关。
|
3天前
|
缓存 监控 安全
微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文深入探讨了在微服务架构中,API网关的核心作用与设计策略。通过分析网关的职责、选型标准及实现细节,文章为读者提供了一套完整的API网关解决方案。同时,结合具体案例,展示了如何在实际应用中有效部署和优化API网关,确保系统的高可用性和可扩展性。
|
3天前
|
API 开发者 微服务
探索后端开发中的微服务架构
【5月更文挑战第31天】在数字化浪潮中,微服务架构如星辰般熠熠生辉,为后端开发领域带来革命性的创新。本文将深入探讨微服务架构的精髓,从其定义、核心优势到实际应用,展现这一技术如何在复杂业务场景下提供灵活、高效的解决方案。我们将一同见证微服务如何助力企业快速响应市场变化,实现技术的可持续发展。
|
3天前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。