插件化架构设计模式

微服务

插件化架构设计模式

概述 插件化架构是一种将核心功能与扩展功能分离的设计模式,允许系统在运行时动态加载和卸载功能模块。本文将介绍如何在微服务平台中设计和实现插件化架构。 为什么需要插件化 插件化优势 1. 模块化:功能独立,边界清晰 2. 可扩展:按需加载,动态增删 3. 隔离性:插件间互不干扰 4. 可维护:独立开发、测试、部署 5. 可定制:用户按需选择功能 核心设计 架构概览 核心组件实现 1. 插件接口定义 // core/plugin.interface.ts // 插件接口 export interface IPlugin { // 插件名称 readonly name: string // 插件版本 readonly version: string // 插件配置 getConfig(): PluginConfig // 插件清单

By 菱角
gRPC服务通信设计与实践

微服务

gRPC服务通信设计与实践

概述 在微服务架构中,服务间通信是关键环节。相比REST API,gRPC提供了更高的性能和更强的类型安全。本文将介绍如何在微服务平台中设计和实现gRPC服务通信。 为什么选择gRPC gRPC vs REST对比 特性 gRPC REST 协议 HTTP/2 HTTP/1.1 序列化 Protocol Buffers (二进制) JSON (文本) 性能 高(二进制+压缩) 中(文本开销) 类型安全 强(代码生成) 弱(运行时检查) 流式通信 原生支持(双向流) 需额外实现(SSE/WebSocket) 代码生成 自动生成 手动编写 浏览器支持 需gRPC-Web 原生支持 调试难度

By 菱角
多语言微服务架构:Node.js与Python协作

微服务

多语言微服务架构:Node.js与Python协作

概述 在微服务架构中,根据场景选择最适合的编程语言是最佳实践。本文将介绍如何在微服务平台中实现Node.js与Python的协作,发挥各自技术优势。 技术选型策略 为什么混合使用 服务划分 Node.js服务(7个) 服务 功能 选择Node.js的原因 llm.api 大模型服务 高并发SSE流式响应 ucenter.api 用户中心 RESTful API标准实践 doc.api 文件服务 流式上传下载处理 resource.api 资源管理 gRPC高性能通信 rag.api 知识库服务 MongoDB集成便利 statistic.api 统计分析 事件驱动架构 pptonline.api PPT服务 与前端技术栈统一 Python服务(1个) 服务 功能 选择Python的原因

By 菱角

菱角时刻

生活点滴与工作实践经验分享

最新

CI/CD流水线:Jenkins + APISIX微服务部署实践

CI/CD流水线:Jenkins + APISIX微服务部署实践

概述 微服务架构的CI/CD流水线设计是DevOps实践的核心。本文将介绍如何使用Jenkins Pipeline、Docker和APISIX构建完整的微服务持续集成与持续部署系统。 架构概览 CI/CD流程 Jenkins Pipeline设计 流水线流程 Jenkinsfile示例 // console/Jenkinsfile pipeline { agent { label "srv30" // 指定Jenkins节点 } environment { REGISTRY ="reg.lc.xxx.com" // Harbor镜像仓库 PROJECT_NAME ="micro" // 项目名称 APP_NAME ="console" // 应用名称 DOCKER_HOST_URL = "tcp://192.168.

By 菱角
企业级PDF阅读器架构设计

企业级PDF阅读器架构设计

概述 EmbedPDF是一个基于WebAssembly的企业级PDF阅读器,采用插件化架构,支持多框架集成。本文将深入介绍其技术架构,包括PDFium引擎、插件系统、框架适配等核心设计。 项目架构 Monorepo结构 embedpdf/ ├── packages/ # 40+核心包 │ ├── core/ # 核心插件系统 │ ├── engines/ # 渲染引擎 │ ├── pdfium/ # PDFium WASM封装 │ ├── models/ # 共享类型定义 │ ├── plugin-render/ # 渲染插件 │ ├── plugin-annotation/ # 注释插件 │ ├── plugin-search/ # 搜索插件 │ ├── plugin-zoom/ # 缩放插件 │ ├── plugin-scro

By 菱角
在线PPT后端服务设计

在线PPT后端服务设计

概述 在线PPT编辑器的后端服务负责PPT数据的存储、AI生成、PPTX导入导出等核心功能。本文将深入介绍PPT后端服务的设计与实现,包括数据模型、AI生成流程、文件处理等关键环节。 服务架构 技术栈 技术 版本 用途 Node.js ES Module 运行环境 Fastify 5.2.1 Web框架 MongoDB - 数据存储 Mongoose 8.10.0 ODM Playwright 1.55.0 浏览器自动化 pptxtojson 2.0.0 PPTX解析 pptxgenjs 3.12.0 PPTX生成 服务结构 pptonline.api/ ├── app.

By 菱角
在线PPT编辑器技术解析

在线PPT编辑器技术解析

概述 PPTist是一个基于Web的在线演示文稿编辑与演示应用,还原了大部分PowerPoint的常用功能。本文将深入解析其前端技术架构,包括编辑器设计、元素系统、状态管理等核心模块。 项目架构 技术栈 技术 版本 用途 Vue.js 3.5.17 前端框架(组合式API) TypeScript 5.3.0 类型系统 Vite 5.3.5 构建工具 Pinia 3.0.2 状态管理 Vue Router 4.6.3 路由管理 ProseMirror - 富文本编辑器 ECharts 6.0.0 图表库 pptxgenjs 3.

By 菱角
微前端架构实践:基于Wujie的模块化设计

微前端架构实践:基于Wujie的模块化设计

概述 微前端架构允许将前端应用拆分为多个独立部署的子应用,每个子应用可由不同团队使用不同技术栈开发。本文将介绍如何基于腾讯无界(Wujie)框架实现微前端架构,实现控制台级别的模块化和独立部署。 为什么选择微前端 传统单体前端的痛点 1. 代码库庞大:随着功能增加,代码量指数增长 2. 构建时间长:修改一个小功能需要重新构建整个应用 3. 团队协作冲突:多团队在同一代码库中开发容易产生冲突 4. 技术栈锁定:难以逐步引入新技术 5. 部署风险高:任何小错误都可能影响整个平台 微前端的优势 架构设计 整体架构 ┌─────────────────────────────────────────────────────────────────────────────┐ │ 微前端架构设计 │ ├───────────────────────────────────────────────────────────

By 菱角
RAG知识库系统设计与实现

RAG知识库系统设计与实现

概述 RAG (Retrieval-Augmented Generation,检索增强生成) 是当前大模型应用的核心技术之一。本文将介绍如何在微服务平台中设计和实现完整的RAG知识库系统,包括文档处理、向量化存储、语义检索等关键环节。 RAG系统架构 整体流程 服务结构 rag.api/ ├── app.js ├── routes/ │ ├── rag/root.js # 知识库管理API │ ├── material/root.js # 材料管理API │ └── search/root.js # 检索API ├── services/ │ ├── ragService.js # 知识库服务 │ ├── materialService.js # 材料服务 │ ├── embeddingService.js # 向量化服务 │ └── searchService.js # 检索服务 ├── daos/ │ ├── milvus/

By 菱角
AI-Native架构:大模型服务设计与实现

AI-Native架构:大模型服务设计与实现

概述 在AI时代,将大语言模型能力深度集成到应用平台已成为趋势。本文将介绍如何在微服务平台中设计和实现AI-Native的大模型服务(LLM Service),涵盖多频道管理、流式响应、Agent执行等核心能力。 什么是AI-Native架构 AI-Native架构是指从设计之初就围绕AI能力构建的系统架构,而非后期添加AI功能。关键特征包括: * 频道化架构:支持多租户、多场景的LLM配置隔离 * 流式响应:实时输出AI生成的内容 * Agent框架:支持多步骤任务执行 * 技能系统(SKills):可扩展的领域专家能力 * MCP集成:标准化工具调用协议 LLM服务架构设计 服务结构 llm.api/ ├── app.js # Fastify应用入口 ├── routes/ │ ├── chat/root.js # 聊天API路由 │ ├── agent/root.js # Agent任务路由 │ └── channel/root.js #

By 菱角
微服务平台整体架构设计

微服务平台整体架构设计

概述 本文将深入介绍一个现代化的微服务平台架构设计。该平台采用微服务架构,融合了AI能力、文档处理和在线协作等核心功能。通过合理的服务拆分和技术选型,实现了高可用、可扩展的企业级应用平台。 架构概览 整体架构图 核心服务详解 1. 前端控制台层 前端采用微前端架构,基于腾讯无界(Wujie)框架实现: 控制台 功能 技术栈 console 主控制台入口 Umi Max + React 18 ucenter.console 用户与权限管理 Ant Design Pro app.console 应用管理 Ant Design rag.console 知识库管理 Ant Design X statistic.console 数据统计与监控 Ant Design Pro pdfviewer.

By 菱角
Dify 私有化部署全解析:构建企业级 AI 应用开发平台

Dify 私有化部署全解析:构建企业级 AI 应用开发平台

前言 在人工智能快速发展的今天,如何快速构建和部署 AI 应用已成为企业数字化转型的核心挑战。Dify 作为一款开源的 LLMs(大型语言模型)应用开发平台,凭借其直观的设计和强大的功能,已帮助数万家企业实现了 AI 能力的快速落地。本文将深入解析基于 Docker 的 Dify 私有化部署方案,带你一步步构建属于自己的企业级 AI 应用开发平台。 一、项目概览 1.1 什么是 Dify? Dify 是一个开源的 LLMs 应用开发平台,支持超过数百种主流 AI 模型的接入,包括 GPT、Claude、Gemini、通义千问、文心一言等。其核心功能包括: * 可视化 AI 工作流编排:通过拖拽式界面,轻松构建复杂的 AI 工作流程 * RAG

By 菱角
Kubernetes 环境下的 PostgreSQL 部署指南

Kubernetes 环境下的 PostgreSQL 部署指南

基于官方 postgres 镜像的生产级部署与备份实践 前言 PostgreSQL 作为最强大的开源关系型数据库之一,在企业级应用中扮演着重要角色。将 PostgreSQL 部署在 Kubernetes 环境中,不仅能享受容器化带来的便利,还能利用 Kubernetes 的弹性伸缩和自愈能力。 今天,我将分享一套完整的 PostgreSQL K8s 部署方案,包括 StatefulSet 部署、用户权限管理、以及自动备份策略。 为什么选择 Kubernetes 部署 PostgreSQL? 优势 说明 高可用 Kubernetes 自动重启故障 Pod,保证服务持续运行 弹性伸缩 根据负载动态调整资源配额 版本管理 通过镜像版本轻松实现数据库升级 资源隔离 独立的 Namespace 和资源配额 存储管理 HostPath 或持久卷灵活配置 整体架构一览 先来看一张部署架构图:

By 菱角
Kubernetes 环境下的 Etcd 部署指南

Kubernetes 环境下的 Etcd 部署指南

基于 bitnami/etcd 镜像的生产级部署实践 前言 在 Kubernetes 生态系统中,Etcd 作为核心的分布式键值存储,承担着至关重要的角色。它不仅是 Kubernetes API Server 的数据后端,还广泛用于服务发现、配置共享等场景。 今天,我将分享一套基于 Kubernetes 的 Etcd 部署方案,这套方案已经在生产环境中稳定运行,服务于 APISIX 网关等关键系统。 为什么选择这个方案? 在深入技术细节之前,先说说为什么选择这个部署方案: 特性 说明 bitnami 镜像 业界最可靠的 etcd 容器镜像,维护活跃,安全更新及时 StatefulSet 原生支持有状态应用,保证 Pod 启动顺序和数据持久性 双 Service 模式 Headless + NodePort,

By 菱角
Kubernetes 高可用 MariaDB Galera 集群部署指南

Kubernetes 高可用 MariaDB Galera 集群部署指南

Kubernetes 高可用 MariaDB Galera 集群部署指南 一、架构概述 本文档详细介绍如何在 Kubernetes 集群中部署 MariaDB Galera 高可用集群。该集群采用一主两从的架构设计,包含以下三个节点: 节点角色 Pod 名称 NodePort 端口 说明 Master mariadb-master 30306 主节点,处理写入操作 Slave mariadb-slave 30307 从节点,处理只读操作 Backup mariadb-backup 30308 备份节点,兼作异步备份 集群架构图 端口说明 端口 用途 3306 MySQL/MariaDB 标准连接端口 4567 Galera 集群内部通信端口 4568 IST (Incremental

By 菱角