Diagram architektury zapewnia strukturalny szablon używany przez architektów systemów i zespoły DevOps do wizualizacji konfiguracji infrastruktury, mikroserwisów chmury oraz ustawień strukturalnych. Zbudowany na silnikuarchitecture-beta silniku, ten narzędzie oparte na tekście zastępuje ręczne przeciąganie narzędzi poprzez automatyczne układanie grup usług strukturalnych, klastrów baz danych, bramek i ścieżek krawędziowych w czyste, przewidywalne układy systemowe.
Podstawowa struktura składni
Każdy diagram zaczyna się odarchitecture-beta nagłówka deklaracji. Wypełniasz płótno, definiując pojedyncze elementy węzła za pomocą słowa kluczowegoservice słowo kluczowe, a ścieżki połączeń mapujesz, określając dokładne porty współrzędnych kierunkowych (Top, Bottom, Left, Right) oddzielone dwukropkami i podwójnymi myślnikami.
architecture-beta
service gateway(internet)[Etykieta bramy]
service server(server)[Serwer aplikacji]
gateway:B -- T:server 
Odwołanie składniowe
Poniższa tabela rozkłada podstawowe składniki danych, słowa kluczowe formatowania oraz atrybuty połączeń używane do tworzenia mapy przestrzeni roboczej architektury w Mermaid.js.
| Składnik składni | Wymóg typu | Opis i zasady użytkowania |
|---|---|---|
| Deklaracja | Identyfikator słowa kluczowego | Inicjuje płótno przestrzeni roboczej mapowania infrastruktury. Należy użyć dokładniearchitektura-beta blok. |
| Węzeł usługi | Słowo kluczowe + Blok tożsamości | Deklaruje jednostkę architektoniczną. Używa składni: usługa id(ikona)[Etykieta wyświetlana]. |
| Odpowiednik grupy | Słowo kluczowe kontenera | Grupuje powiązane usługi wizualnie w kontenerze. Używa składni: grupa id(ikona)[Etykieta grupy]. |
| Słowo kluczowe ‘w’ | Modyfikator przypisania | Jawnie przypisuje węzeł usługi do przebywania w określonym deklarowanym opakowaniu grupy: usługa id(ikona)[Etykieta] w groupId. |
| Węzeł połączenia | Identyfikator słowa kluczowego | Ustanawia punkt centralny do wyrównania strukturalnego używany do czystego routingu skomplikowanych, wielokierunkowych ścieżek połączeń: węzeł id. |
| Krawędzie połączeń | Operatory kierunku portu | Konfiguruje ścieżki śledzenia kierunkowego przez przypięcie połączenia do określonych stron węzła (G, D, L, P): źródło:side -- side:docelowy. Obsługuje strzałki kierunkowe (-->). |
Zaawansowane grupowanie i routowanie krawędzi portu
Aby dokładnie kontrolować sposób przemieszczania się połączeń między elementami bez wyglądania nieporządnego, silnik architektury wymaga jawnych powiązań portów. Powiązane węzły mogą być organizowane wewnątrz grup strukturalnych w celu ujednoznacznia granic systemu.
1. Zasady dokładnego przypisywania portów
Określasz, gdzie linia połączenia opuszcza i wchodzi do komponentu, dodając dwukropek i flagę kierunku krawędzi (“G, D, L, P) do odpowiednich identyfikatorów węzłów:
db:P -- L:serwer: Linia opuszcza **Prawą** stronę bazy danych i wchodzi do **Lewej** strony serwera jako pozioma linia prosta.db:G -- L:serwer: Linia opuszcza **Górę** bazy danych i wchodzi do **Lewej** strony serwera, zginając się automatycznie pod czystym kątem 90°.src:D --> G:proc: Linia opuszcza **Dół** węzła źródłowego i prowadzi w dół do **Góry** przetwornika z wskazówką strzałki kierunkowej.
2. Strukturyzowanie systemów za pomocą grup
Aby zadeklarować grupę wizualną (np. prywatną chmurę wirtualną lub klaster baz danych), użyj słowa kluczowego group i przypisz węzły do niej za pomocą modyfikatora in modyfikatora:
architecture-beta
group cloudNetwork(chmura)[Prywatna chmura]
service auth(server)[Węzeł uwierzytelniania] in cloudNetwork
service api(server)[Punkty końcowe API] in cloudNetwork 
Wyrównywanie elementów rodzeństwa (od wersji 11.16.0)
Gdy wiele różnych usług dzieli identyczne ścieżki routingu krawędzi (na przykład trzy rozłączone źródła danych przesyłające dane do jednego odbiorcy komunikatów), algorytm układu czasem może je łączyć razem. Właściwość align row i wyrównaj kolumnę dyrektywy zmuszają silnik do równomiernego rozłożenia tych elementów potomnych wzdłuż określonej linii osi.
architektura-beta
usługa src1(server)[Źródło 1]
usługa src2(server)[Źródło 2]
usługa proc(server)[Centrum przetwarzania]
src1:B --> T:proc
src2:B --> T:proc
wyrównaj wiersz src1 src2 
Szablon z rzeczywistego świata: Szablon klastra mikroserwisów
Ten szablon demonstruje bardzo odpornią, typową dla przedsiębiorstw architekturę chmury. Poprzez skupienie się na głównym silniku interfejsu API i rozgałęzienie uwierzytelniania oraz zadań asynchronicznych poziomo w obie strony, układ wykorzystuje zasady symetrycznego projektowania, aby zapobiec nakładaniu się linii. Cały przepływ danych porusza się przewidywalnie w dół od publicznego bramki do dobrze wyrównanej warstwy przechowywania danych, wykorzystując dwie wyrównaj wiersz dyrektywy, które zabezpieczają komponenty na ostre, przewidywalne poziome trasy.
architektura-beta
tytuł "Architektura mikroserwisów o wysokiej dostępności"
%% Warstwa wejścia zewnętrzna
usługa cloudflare(internet)[WAF Cloudflare]
usługa alb(server)[Ładowarka aplikacji AWS]
%% Główne zespół aplikacji
grupa appCluster(cloud)[Zarządzane mikroserwisy EKS]
usługa authService(server)[Usługa uwierzytelniania] w appCluster
usługa apiService(server)[Główny silnik API] w appCluster
usługa workerNode(server)[Pracownik zadania asynchronicznego] w appCluster
%% Warstwa zabezpieczonego przechowywania danych
grupa dataCluster(database)[Zabezpieczona warstwa danych]
usługa redis(disk)[Klastrowa pamięć podręczna Redis] w dataCluster
usługa postgres(database)[Główna baza PostgreSQL] w dataCluster
%% 1. Przepływ pionowy: Wejście ruchu z publicznej sieci do rdzenia obliczeniowego
cloudflare:B --> T:alb
alb:B --> T:apiService
%% 2. Przepływ poziomy: Główne API rozgałęzia się symetrycznie w lewo i w prawo
apiService:L --> R:authService
apiService:R --> L:workerNode
%% 3. Przepływ podstawowy: Pracownicy aplikacji spadają bezpośrednio do odpowiednich miejsc danych
authService:B --> T:redis
workerNode:B --> T:postgres
%% Wyrównania osi układu dla idealnej siatki
wyrównaj wiersz authService apiService workerNode
wyrównaj wiersz redis postgres 
Typowe błędy składniowe i ograniczenia systemowe
Podczas pisania kodu infrastruktury pamiętaj o tych konkretnych zasadach weryfikacji konfiguracji, aby zapobiec błędom analizy składni:
- Kolejność nawiasów etykiety:Tekst etykiety musi być otoczony nawiasami kwadratowymi
[Tekst etykiety]i musi bezpośrednio następować po nawiasach ikony bez odstępów:usługa id(server)[Tekst]jest poprawne. Używanie cudzysłowów wewnątrz nawiasów spowoduje uszkodzenie analizatora. - Wielkość liter portu: Punkty zaczepienia krawędzi połączenia muszą być zapisane dużymi literami (
T,B,L,R). Małe litery (t,b,l,r) są nieobsługiwane i spowodują awarie generowania układu. - Zasada deklaracji przed użyciem: Każdy identyfikator węzła lub połączenia używany w instrukcji ścieżki krawędzi musi być jawnie zadeklarowany w osobnej linii powyżej niego. Połączenie z niejawno zadeklarowaną nazwą węzła nie powiedzie się.
- Ograniczenia członków wyrównania: Podczas używania
wyrównanie wierszalubwyrównanie kolumnydyrektyw wyrównania, musisz podać co najmniej dwa lub więcej poprawnych, wcześniej zadeklarowanych identyfikatorów usługi lub połączenia na liście argumentów.