【Lattice】设计原理

简介: Lattice 是一个轻量级业务扩展调用框架,通过模块化架构实现复杂业务定制的高效管理。支持动态发现、加载与执行扩展,提供清晰的分层设计,集成 Spring、Dubbo 等主流技术,助力企业应用灵活扩展。

https://github.com/hiforce/lattice

概述

本文档对 Lattice 框架进行了技术介绍。Lattice 是一个轻量级的业务扩展调用系统,旨在高效地组织和管理复杂的业务定制。Lattice 提供模块化架构,并具备动态发现、加载和执行业务扩展的机制。

目的和范围

Lattice旨在解决复杂企业应用程序中业务定制管理的难题。它提供了一种结构化的方法来定义、发现和执行业务扩展,同时保持清晰的关注点分离并避免代码重复。

正如项目主 POM 文件中所述:“Lattice 是一个功能强大、轻量级的业务扩展调用框架。通过使用 Lattice 框架,可以高效地组织和管理复杂的业务定制。”pom.xml12-15

本概述涵盖了 Lattice 框架的高级架构和核心概念。有关特定组件的详细信息,请参阅其各自的文档页面。

框架架构

Lattice 采用模块化架构,围绕几个关键组件构建:

高级系统架构

 
    

Lattice框架由四个主要模块组成:

  1. lattice-model:包含定义扩展框架的核心数据结构和接口。
  2. lattice-runtime:实现了用于发现和执行扩展的运行时系统。
  3. lattice-tools:提供用于构建时处理、配置加载和动态类加载的实用程序。
  4. lattice-remote:通过 RPC 机制实现扩展的远程执行。

核心概念

Lattice 的构建围绕着几个关键概念展开,这些概念构成了它的扩展模型:

image.png


Lattice框架中的关键实体包括:

  1. 业务:代表可能需要定制的业务领域或场景。
  2. 产品:业务领域内相关功能的集合。
  3. 用例:需要特定功能的具体业务用例。
  4. 功能:定义扩展程序可以执行哪些操作的功能接口。
  5. 扩展:在特定业务环境中实际实现某项功能。

该框架遵循基于模板的方法,其中业务、产品和用例通过规范对象来定义,这些规范对象构成了扩展点的结构。

执行模型

Lattice 运行时通过结构化流程管理扩展的发现、加载和执行:


image.png


执行流程通常包括:

  1. 初始化 Lattice 运行时,注册所有能力、业务、产品和用例
  2. 应用程序代码通过委托调用功能
  3. 代表根据业务上下文发现适用的扩展
  4. 执行业务逻辑的扩展程序
  5. 结果汇总后返回给应用程序。

集成能力

Lattice旨在与多种常用框架和技术集成:


image.png



Lattice 支持与以下系统集成:

  1. Spring框架:用于依赖注入和组件管理
  2. Apache Dubbo:用于分布式环境中的远程过程调用
  3. Maven:用于构建时处理和元数据生成
  4. 动态加载:用于运行时加载扩展 JAR 文件

构建工具和配置

Lattice 提供构建时工具,用于扫描、分析和注册扩展:


image.png


入门

要在项目中使用 Lattice,请包含核心依赖项:

<dependency>
    <groupId>org.hiforce.lattice</groupId>
    <artifactId>lattice-model</artifactId>
    <version>${version.lattice}</version>
</dependency>
<dependency>
    <groupId>org.hiforce.lattice</groupId>
    <artifactId>lattice-runtime</artifactId>
    <version>${version.lattice}</version>
</dependency>

有关晶格框架具体组成部分的更多详细信息,请参阅:

Framework Structure

The Lattice framework follows a layered architecture with clear separation of concerns:

Layer Module Purpose
Model lattice-model Core data structures and interfaces
Runtime lattice-runtime Extension discovery and execution
Tools lattice-tools Build-time and runtime utilities
Remote lattice-remote Remote execution capabilities


This modular approach allows developers to use only the components they need, providing flexibility in how the framework is incorporated into applications.



目录
相关文章
|
5月前
|
运维 监控 供应链
Alibaba交易平台TMF2.0介绍
2017双11交易峰值达32.5万笔/秒,面对高并发与复杂业务需求,阿里推出TMF2.0框架,通过业务与平台分离、全链路可视化、配置化发布等创新,实现需求开发周期缩短至12天,支撑多业务快速试错与复用,构建可配置、可监控、可运维的电商技术新体系。
827 5
Alibaba交易平台TMF2.0介绍
|
5月前
|
设计模式 Java
【TMF】源码分析 1.0 LatticeClassLoader
LatticeClassLoader扩展Java双亲委派模型,支持多自定义类加载器的委托加载。类加载失败后依次尝试自定义加载器,实现插件化容错;资源获取优先父加载器,支持单资源查找与多资源聚合,适用于插件系统、多租户隔离及SPI扩展,保障业务隔离与灵活扩展。
218 1
|
5月前
|
缓存 测试技术 双11
【Lattice】最佳实践
Lattice-Model 支持多租户SaaS、电商营销、ERP行业定制及微服务扩展,通过插件化实现业务隔离与动态加载,提升系统灵活性与可维护性。
279 0
|
5月前
|
缓存 前端开发 Java
【lattice】 lattice-dynamic-loading 深度源码分析
lattice-dynamic-loading 模块实现插件热加载与运行时扩展,通过独立类加载器保障隔离性,集成 Spring 生态,支持动态注册 Bean 与 MVC。基于策略模式、门面模式和 SPI 机制,实现高扩展性、可维护性与热部署能力,提升系统敏捷性。(239字)
233 1
|
监控 数据可视化 中间件
平台化三部曲之三流程编排 - 平台化是舞台,流程编排就是导演一场戏
在上两篇ATA中,第一篇讨论了平台的扩展性(《从Eclipse平台看交易平台化》),强调微内核和扩展机制实现,第二篇讨论平台的模块化开发(《Google Guice平台模块化开发的果汁》),强调业务隔离,松耦合。这这第三篇ATA中,想分享下平台化中另一个重要方面,平台的服务流程编排 (*备注:本文.
18842 2
|
5月前
|
人工智能 JSON Java
AI时代,我们为何重写规则引擎?—— QLExpress4 重构之路
AI时代下,规则引擎的需求反而更旺盛。QLExpress4 通过全面重构,在性能、可观测性和AI友好性上大幅提升。
1809 15
AI时代,我们为何重写规则引擎?—— QLExpress4 重构之路
|
6月前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
2962 3
|
5月前
|
存储 Java 编译器
【TMF】 解析器底层原理分析
该注解处理器在编译期自动扫描特定注解(如@Extension、@Business),收集标记的类或方法,生成SPI配置文件,实现服务接口与实现类的自动注册,提升开发效率与准确性。
218 2
|
2月前
|
JavaScript 安全
URL编码/解码 在线工具分享
分享一款自研的URL编码/解码在线工具(Vue开发),支持encodeURI与encodeURIComponent两种模式。粘贴即转、一键复制,界面清爽无广告,附使用说明与编码对照表,轻松处理中文及特殊字符。
8336 2