跳至内容

架构图文档 (v11.1.0+)

在 mermaid-js 的语境下,架构图用于展示云或 CI/CD 部署中常见的服务和资源之间的关系。在一个架构图中,服务(节点)通过边连接。相关的服务可以放置在组内,以便更好地说明它们是如何组织的。

示例

语法

架构图的基本构建块是 groupsservicesedgesjunctions

对于支持的组件,图标通过将图标名称用 () 括起来来声明,而标签通过将文本用 [] 括起来来声明。

要开始绘制架构图,请使用关键字 architecture-beta,后面跟着你的组、服务、边和连接。虽然这 3 个构建块中的每一个都可以以任何顺序声明,但必须注意确保标识符以前由另一个组件声明过。

声明组的语法为

group {group id}({icon name})[{title}] (in {parent id})?

组合在一起

group public_api(cloud)[Public API]

创建一个标识为 public_api 的组,使用图标 cloud,并且标签为 Public API

此外,组可以使用可选的 in 关键字放置在组内

group private_api(cloud)[Private API] in public_api

服务

声明服务的语法为

service {service id}({icon name})[{title}] (in {parent id})?

组合在一起

service database1(database)[My Database]

创建一个标识为 database1 的服务,使用图标 database,标签为 My Database

如果服务属于某个组,则可以使用可选的 in 关键字将其放置在该组内

service database1(database)[My Database] in private_api

声明边的语法为

{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

边方向

边从服务的哪一侧出来,是通过在连接到箭头服务的侧面添加一个冒号 (:),以及添加 L|R|T|B 来指定的

例如

db:R -- L:server

在服务 dbserver 之间创建一个边,该边从 db 的右侧出来,从 server 的左侧出来。

db:T -- L:server

在服务 dbserver 之间创建一个 90 度的边,该边从 db 的顶部出来,从 server 的左侧出来。

箭头

可以通过在左侧方向之前添加 <,以及/或者在右侧方向之后添加 >,在边的每一侧添加箭头。

例如

subnet:R --> L:gateway

创建一个箭头指向 gateway 服务的边

从组出来的边

要让一条边从一个组到另一个组或另一个组内的服务,可以在 serviceId 后添加 {group} 修饰符。

例如

service server[Server] in groupOne
service subnet[Subnet] in groupTwo

server{group}:B --> T:subnet{group}

创建一个从 groupOne 出来的边,该边与 server 相邻,并进入 groupTwo,该边与 subnet 相邻。

重要的是要注意,groupId 不能用于指定边,{group} 修饰符只能用于组内的服务。

连接

连接是一种特殊的节点,充当边之间潜在的 4 路分叉。

声明连接的语法为

junction {junction id} (in {parent id})?

图标

默认情况下,架构图支持以下图标:clouddatabasediskinternetserver。用户可以使用 iconify.design 中提供的 200,000 多个图标,或者按照 此处的步骤添加自己的自定义图标。

安装图标后,可以通过使用格式“name:icon-name”在架构图中使用它们,其中 name 是注册图标包时使用的值。