免费注册
流程类
图形化表达方式
脑图类
结构化表达方式
笔记类
高效化表达方式
实用工具
实用工具
业务与管理领域
软件工程与系统设计
UML
数据分析与研究
工程与技术设计
数据库与信息系统
树形图
括号图
思维笔记

架构图语法

架构图

架构图用于展示云端或 CI/CD 部署中常见的服务和资源之间的关系。在架构图中,服务(节点)通过线条连接。相关服务可以放在组中,以更好地说明它们的组织方式。

示例

代码:
                            
复制
嵌入
architecture-beta group api(cloud)[API] service db(database)[Database] in api service disk1(disk)[Storage] in api service disk2(disk)[Storage] in api service server(server)[Server] in api db:L -- R:server disk1:T -- B:server disk2:T -- B:db

语法

架构图的构建块是:群组、服务、连线和连接点。

对于支持组件,图标使用小括号 () 将图标括起来来声明,而标签使用中括号 [] 将文本括起来来声明。

要开始架构图,需要使用 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

在服务 db 和 server 之间创建一条连线,这条连线从 db 的右侧延伸到 server 的左侧。

                            
复制
嵌入
db:T -- L:server

在服务 db 和 server 之间创建一个 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} 修饰符只能用于组内的服务。

连接点

连接点是一种特殊类型的节点,它可以作为连线的潜在四向分叉点。

声明连接点的语法是:

                            
复制
嵌入
junction {junction id} (in {parent id})?
代码:
                            
复制
嵌入
architecture-beta service left_disk(disk)[Disk] service top_disk(disk)[Disk] service bottom_disk(disk)[Disk] service top_gateway(internet)[Gateway] service bottom_gateway(internet)[Gateway] junction junctionCenter junction junctionRight left_disk:R -- L:junctionCenter top_disk:B -- T:junctionCenter bottom_disk:T -- B:junctionCenter junctionCenter:R -- L:junctionRight top_gateway:B -- T:junctionRight bottom_gateway:T -- B:junctionRight