<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.8 Chrome/140.0.7339.240 Electron/38.4.0 Safari/537.36" version="28.2.8">
  <diagram name="Page-1" id="KaNmNEmE_Qx5MvW_SbqB">
    <mxGraphModel dx="1009" dy="863" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="40E4A47yQaY0a98WVuZL-61" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" vertex="1" parent="1">
          <mxGeometry x="280" y="140" width="680" height="110" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-57" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
          <mxGeometry x="280" y="250" width="680" height="110" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-56" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fad9d5;strokeColor=#ae4132;" vertex="1" parent="1">
          <mxGeometry x="280" y="570" width="680" height="130" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-55" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
          <mxGeometry x="280" y="360" width="680" height="210" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-1" value="客户端层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="295" y="175" width="20" height="40" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-2" value="接入层&amp;nbsp;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="300" y="285" width="10" height="40" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-3" value="应用服务层&amp;nbsp;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="290" y="442" width="30" height="46" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-4" value="数据层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="295" y="617.5" width="20" height="35" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-5" value="HR APP 前端&lt;br&gt;Vue / React" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6fffb;strokeColor=#13c2c2;strokeWidth=2;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="410" y="165" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-6" value="应聘者 APP&lt;br&gt;Candidate App" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6fffb;strokeColor=#13c2c2;strokeWidth=2;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="770" y="165" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-7" value="API Gateway / ALB&#xa;HTTPS 终止 + 负载均衡" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7e6;strokeColor=#fa8c16;strokeWidth=2;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="570" y="275" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-8" value="Auth Service&#xa;认证授权" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="360" y="380" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-10" value="Question Service&#xa;题库管理" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="480" y="380" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="40E4A47yQaY0a98WVuZL-11" target="40E4A47yQaY0a98WVuZL-10">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-11" value="Exam Service&#xa;考试流程管理" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="720" y="380" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-12" value="Scoring Service&#xa;自动评分" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="720" y="490" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-13" value="ML / Recommend&#xa;智能选题与评估" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="480" y="490" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-15" value="关系型数据库&lt;br&gt;MySQL / PostgreSQL" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff1f0;strokeColor=#f5222d;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="380" y="600" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-16" value="Redis 缓存" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff1f0;strokeColor=#f5222d;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="520" y="600" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-17" value="S3 对象存储&lt;br&gt;题目附件" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff1f0;strokeColor=#f5222d;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="660" y="600" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-18" value="日志 / 分析存储" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff1f0;strokeColor=#f5222d;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="800" y="600" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;" edge="1" parent="1" source="40E4A47yQaY0a98WVuZL-11" target="40E4A47yQaY0a98WVuZL-12">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;" edge="1" parent="1" source="40E4A47yQaY0a98WVuZL-10" target="40E4A47yQaY0a98WVuZL-13">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-14" value="Admin Console&#xa;运营后台" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="840" y="380" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-9" value="Job &amp; Company&#xa;岗位与企业管理" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f5ff;strokeColor=#2f54eb;strokeWidth=2;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="600" y="380" width="100" height="50" as="geometry" />
        </mxCell>
        <mxCell id="40E4A47yQaY0a98WVuZL-62" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="330" y="700" as="sourcePoint" />
            <mxPoint x="330" y="140" as="targetPoint" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
