总控引擎数据链路.md
1 |
|
写上
- 协议 tcp 或 http 等协议
- 服务所使用的 IP 是 VIP,还是 127.0.0.1 、0.0.0.0、*,没用就填 无
- 绑定端口,没用填无
总控 –> xx 引擎
引擎 –> 总控
引擎节点 –> 引擎节点
总控、引擎、插件跨节点通信链路
graph LR
subgraph Sc[总控]
sc
sv[可视化 sv]
installer-manager[引擎安装 manager]
end
subgraph Se[流量引擎]
subgraph Sem[流量引擎 管理节点]
installer-agent[引擎安装 agent]
webserver[Webserver]
admin_dam[admin Dam]
apiserver[Apiserver]
admin_ha[admin HA]
nexus_m[Nexus]
global_plugin_server[global-plugin-server]
end
subgraph Sew[流量引擎 工作节点]
data_dam[data Dam]
nexus_w[Nexus]
envoy[Envoy]
end
subgraph Ses[流量引擎 调度节点]
nexus_s[Nexus]
end
end
installer-manager -->|vip/nodeIP:8099|installer-agent
installer-manager -->|vip:6898|admin_ha
sv -->|vip:1234|admin_dam
sv -->|vip:8899|admin_dam
sv -->|vip:8299|webserver
sc -->|vip:8229|webserver
installer-agent -->|nodeIP:8098|installer-manager
data_dam -->|nodeIp:4150|sv
data_dam -->|nodeIp:9001|webserver
webserver -->|nodeIp:8000| nexus_m & nexus_s & nexus_w
envoy -->|vip:7878 7978| global_plugin_server
%%installer-agent -->|vip:6443|apiserver
第一步改造(通信方向反转)
graph LR
subgraph Sc[总控]
sc
sv[可视化 sv]
installer-manager[引擎安装 manager]
end
subgraph Se[流量引擎]
subgraph Sem[流量引擎 管理节点]
installer-agent[引擎安装 agent]
webserver[Webserver]
admin_dam[admin Dam]
apiserver[Apiserver]
admin_ha[admin HA]
nexus_m[Nexus]
global_plugin_server[global-plugin-server]
end
subgraph Sew[流量引擎 工作节点]
data_dam[data Dam]
nexus_w[Nexus]
envoy[Envoy]
end
subgraph Ses[流量引擎 调度节点]
nexus_s[Nexus]
end
end
installer-manager -->|vip/nodeIP:8099|installer-agent
installer-manager -->|vip:6898|admin_ha
sv -->|vip:1234|admin_dam
sv -->|vip:8899|admin_dam
sv -->|vip:8299|webserver
sc -->|vip:8229|webserver
方案
grpc 双向流
websocket 双向通信
http2.0 双向通信
长轮询
消息队列/订阅发布模型
第二步改造(规整)
```
以下是去重后的通信链路,每条链路信息单独展示在一行中:
1. **总控 -> 总控**
- manager -> sc: 协议 https, IP 127.0.0.1, 端口 443
- manager -> sv: 协议 http, 端口 20522
2. **总控 -> 引擎**
- manager -> agent: 协议 http, IP vip/nodeIp, 端口 8099
- manager -> admin_ha: 协议 grpc, IP vip, 端口 6898
3. **引擎 -> 总控**
- agent -> manager: 协议 http, IP nodeIp, 端口 8098
- agent -> apiserver: 协议 https, IP vip, 端口 6443
- sv -> sc: 协议 https, IP 127.0.0.1, 端口 29105
- sv -> dam: 协议 grpc, IP vip, 端口 1234
- sv -> dam: 协议 http, IP vip, 端口 8899
- sv -> webserver: 协议 https, IP vip, 端口 8299
- dam -> sv: 协议 tcp, IP 0.0.0.0, 端口 4150
4. **引擎 -> 引擎**
- kube-apiserver -> adminDam: 协议 http, IP vip, 端口 8443, 备注 webhook
- webserver -> adminDam: 协议 http, IP vip, 端口 8899
- sv -> adminDam: 协议 grpc, IP vip, 端口 1234
- dataDam -> adminDam: 协议 grpc, IP vip, 端口 7000
- envoy -> dataDam: 协议 grpc, IP 127.0.0.1, 端口 9977
- webserver -> dataDam: 协议 http, IP 节点IP, 端口 9001
- polycube -> dataDam: 协议 grpc, IP 127.0.0.1, 端口 9002
这样的展示形式使得每个通信链路都清晰地在一行内显示,方便对照和查阅。
```mermaid
---
title: 总控逻辑架构图
---
graph LR
subgraph 总控
direction TB
subgraph 用户接口层
direction TB
DataSV[数据可视]
APIAsset[API可视]
SysInfo[系统信息]
SEInfo[引擎信息]
ObjectInfo[对象信息]
UserInfo[用户信息]
end
subgraph 业务层
direction LR
API[API]
subgraph SCDashboard[SC]
Auth[授权管理]
User[用户管理]
Object[对象管理]
System[系统管理]
SVClient[可视化]
subgraph 引擎管理
SEInstallerClient[引擎安装]
服务搭建
end
end
subgraph SVServer[SV]
数据可视
API可视
业务可视
插件可视
end
subgraph Install-Manage
SEInstall[流量引擎安装]
SidecarSE[边车引擎在线、离线安装]
路由引擎安装
引擎节点管理
end
end
subgraph 数据层
Redis[(Redis)]
SCEtcd[(Etcd)]
NSQ([NSQ])
MySQL[(MySQL)]
MongoDB[(MongoDB)]
FS(((FS)))
end
end
subgraph 引擎
subgraph SEAppLayer[业务层]
direction TB
subgraph SE-M_cluster
subgraph SE-M
Webserver
adminDam
adminHA
adminKA
semGRL[global-rate-limit]
kube-ApiServer
semInstallAgent[Install-Agent]
semNexus[Nexus]
end
end
subgraph SE-S_cluster
subgraph SE-S
dataHA:::Yellow
dataKA
sesInstallAgent[Install-Agent]
sesNexus[Nexus]
end
end
subgraph SE-W_cluster
subgraph SE-W
sewWorkDam[workDam]
dataWorker
Polycube
Envoy
sewGRL[global-rate-limit]
sewInstallAgent[Install-Agent]
sewNexus[Nexus]
end
end
end
subgraph SEDataLayer[数据层]
SEEtcd[(ETCD)]
SEFS(((FS)))
end
end
服务搭建 --> Webserver
API <====> SCDashboard
API <====> 用户接口层
SVClient -.-> SVServer
SEInstallerClient -.-> Install-Manage
Install-Manage <--> semInstallAgent & sesInstallAgent & sewInstallAgent
Envoy --> sewWorkDam --> 数据可视
业务可视 --> Envoy
linkStyle 1,2 stroke:blue,stroke-width:8px,color:black;
linkStyle 5,6,7 stroke:red,stroke-width:8px,color:black;
style SEDataLayer fill:#FFEBB5
classDef Yellow fill:#f96
总控引擎数据链路.md
https://abrance.github.io/2023/12/14/project/sr/通信链路改造/总控引擎数据链路/