1+ <mxfile host="65bd71144e">
2+ <diagram id="C5RBs43oDa-KdzZeNtuy" name="API Gateway Architecture">
3+ <mxGraphModel dx="1468" dy="626" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4+ <root>
5+ <mxCell id="WIyWlLk6GJQsqaUBKTNV-0"/>
6+ <mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0"/>
7+ <mxCell id="title-1" value="联盟平台API治理" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=24;fontStyle=1" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
8+ <mxGeometry x="415" y="50" width="340" height="40" as="geometry"/>
9+ </mxCell>
10+ <mxCell id="client-group" value="客户端" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
11+ <mxGeometry x="30" y="145" width="180" height="150" as="geometry"/>
12+ </mxCell>
13+ <mxCell id="client-web" value="<div><br></div>Web应用" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#E6FFCC" parent="client-group" vertex="1">
14+ <mxGeometry y="26" width="180" height="40" as="geometry"/>
15+ </mxCell>
16+ <mxCell id="client-mobile" value="<div><br></div>移动应用" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#E6FFCC" parent="client-group" vertex="1">
17+ <mxGeometry y="66" width="180" height="40" as="geometry"/>
18+ </mxCell>
19+ <mxCell id="client-iot" value="<div><br></div>IoT设备" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#E6FFCC" parent="client-group" vertex="1">
20+ <mxGeometry y="106" width="180" height="40" as="geometry"/>
21+ </mxCell>
22+ <mxCell id="gateway-main" value="API网关" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
23+ <mxGeometry x="310" y="100" width="550" height="240" as="geometry"/>
24+ </mxCell>
25+ <mxCell id="security-layer" value="安全管理层" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="gateway-main" vertex="1">
26+ <mxGeometry x="20" y="40" width="160" height="160" as="geometry"/>
27+ </mxCell>
28+ <mxCell id="sec-auth" value="认证 (Authentication)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="security-layer" vertex="1">
29+ <mxGeometry y="36" width="160" height="30" as="geometry"/>
30+ </mxCell>
31+ <mxCell id="sec-authz" value="授权 (Authorization)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="security-layer" vertex="1">
32+ <mxGeometry y="76" width="160" height="30" as="geometry"/>
33+ </mxCell>
34+ <mxCell id="sec-encryption" value="加密 (SSL/TLS)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="security-layer" vertex="1">
35+ <mxGeometry y="116" width="160" height="30" as="geometry"/>
36+ </mxCell>
37+ <mxCell id="traffic-layer" value="流量控制层" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="gateway-main" vertex="1">
38+ <mxGeometry x="195" y="40" width="160" height="160" as="geometry"/>
39+ </mxCell>
40+ <mxCell id="traffic-rate" value="限流 (Rate Limiting)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="traffic-layer" vertex="1">
41+ <mxGeometry y="36" width="160" height="30" as="geometry"/>
42+ </mxCell>
43+ <mxCell id="traffic-circuit" value="熔断 (Circuit Breaking)" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="traffic-layer" vertex="1">
44+ <mxGeometry y="76" width="160" height="30" as="geometry"/>
45+ </mxCell>
46+ <mxCell id="traffic-load" value="负载均衡" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="traffic-layer" vertex="1">
47+ <mxGeometry y="116" width="160" height="30" as="geometry"/>
48+ </mxCell>
49+ <mxCell id="routing-layer" value="请求路由层" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="gateway-main" vertex="1">
50+ <mxGeometry x="370" y="40" width="160" height="160" as="geometry"/>
51+ </mxCell>
52+ <mxCell id="routing-endpoint" value="路径映射" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="routing-layer" vertex="1">
53+ <mxGeometry y="36" width="160" height="30" as="geometry"/>
54+ </mxCell>
55+ <mxCell id="routing-transform" value="数据转换" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="routing-layer" vertex="1">
56+ <mxGeometry y="76" width="160" height="30" as="geometry"/>
57+ </mxCell>
58+ <mxCell id="routing-protocol" value="协议转换" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="routing-layer" vertex="1">
59+ <mxGeometry y="116" width="160" height="30" as="geometry"/>
60+ </mxCell>
61+ <mxCell id="backend-group" value="后端服务" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
62+ <mxGeometry x="310" y="390" width="550" height="160" as="geometry"/>
63+ </mxCell>
64+ <mxCell id="backend-rest" value="RESTful 微服务" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="backend-group" vertex="1">
65+ <mxGeometry x="40" y="56" width="120" height="60" as="geometry"/>
66+ </mxCell>
67+ <mxCell id="backend-grpc" value="gRPC 服务" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="backend-group" vertex="1">
68+ <mxGeometry x="215" y="56" width="120" height="60" as="geometry"/>
69+ </mxCell>
70+ <mxCell id="backend-legacy" value="遗留系统" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="backend-group" vertex="1">
71+ <mxGeometry x="390" y="56" width="120" height="60" as="geometry"/>
72+ </mxCell>
73+ <mxCell id="support-group" value="支持系统" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
74+ <mxGeometry x="950" y="145" width="180" height="150" as="geometry"/>
75+ </mxCell>
76+ <mxCell id="support-monitor" value="<div><br></div>监控系统" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#ffe6cc;strokeColor=#d79b00" parent="support-group" vertex="1">
77+ <mxGeometry y="26" width="180" height="40" as="geometry"/>
78+ </mxCell>
79+ <mxCell id="support-logging" value="<div><br></div>日志系统" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#ffe6cc;strokeColor=#d79b00" parent="support-group" vertex="1">
80+ <mxGeometry y="66" width="180" height="40" as="geometry"/>
81+ </mxCell>
82+ <mxCell id="support-config" value="<div><br></div>配置中心" style="verticalAlign=middle;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;rounded=1;fontStyle=1;strokeWidth=3;fillColor=#ffe6cc;strokeColor=#d79b00" parent="support-group" vertex="1">
83+ <mxGeometry y="106" width="180" height="40" as="geometry"/>
84+ </mxCell>
85+ <mxCell id="client-to-gateway" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="client-group" target="gateway-main" edge="1">
86+ <mxGeometry relative="1" as="geometry"/>
87+ </mxCell>
88+ <mxCell id="client-protocol" value="HTTP/HTTPS
RESTful" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontStyle=1" parent="client-to-gateway" vertex="1" connectable="0">
89+ <mxGeometry x="-0.1538" y="1" relative="1" as="geometry">
90+ <mxPoint y="-19" as="offset"/>
91+ </mxGeometry>
92+ </mxCell>
93+ <mxCell id="gateway-to-backend" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="gateway-main" target="backend-group" edge="1">
94+ <mxGeometry relative="1" as="geometry"/>
95+ </mxCell>
96+ <mxCell id="gateway-to-support" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="gateway-main" target="support-group" edge="1">
97+ <mxGeometry relative="1" as="geometry"/>
98+ </mxCell>
99+ <mxCell id="note-protocol" value="协议标准:RESTful API, HTTP/HTTPS" style="shape=note;strokeWidth=2;fontSize=14;size=20;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#666600;fontStyle=1" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
100+ <mxGeometry x="310" y="580" width="550" height="40" as="geometry"/>
101+ </mxCell>
102+ </root>
103+ </mxGraphModel>
104+ </diagram>
105+ </mxfile>
0 commit comments