术语
- 单向打通:仅可一方主动访问另外一方,另外一方不可发起寻址。
- 双向打通:双方皆可以发起访问
正文
我们来假想一个PaaS平台的业务,平台给各个租户提供了K8S、数据库、消息中间件的申请、管理、监控、升级服务。我们自然可以将架构拆分为管理面和业务面。此短文无心涉及私网打通、防冲突问题(其常通过DNAT地址映射解决)。让我们假设管理面和业务面相互通信需要走公网,而管理面和业务面自身相互通信可以走私有网络。
管理面和业务面一定会有相互通信的诉求,举例如下:
- 管理面查询业务面的当前状态
- 业务面向管理面上报指标、告警等
- 管理面向业务面发起指令
这一定会涉及到管理面和业务面的双向通信。(常见的走HTTP协议相互通信)你当然可以将管理面、业务面都绑定上公网IP,管理面存储所有业务面的IP地址,业务面存储管理面的IP地址,然后进行相互通信。
那么仅仅只有管理面绑定EIP可以做成事吗?这当然是可以的。我们可以通过长链接的方式,实现服务端调用客户端的语义。MQTT协议就可以这么做,物联网中的每一个设备,不需要EIP,也可以连接到平台,平台具备向设备下发命令的能力,这恰恰就是使用MQTT长链接实现的。
注:对网络安全要求高的朋友应该能够明白很多时候管理面存储所有业务面的可通信IP地址,比较复杂。那么这个时候使用MQTT长链接也可以成事。
TLTR
即使是网络难以双向打通,也能通过长链接技术,在客户端向服务端的长链接上,实现服务端调用客户端的语义。
网友评论