y4h2 / personal-notes

my personal notes
0 stars 0 forks source link

关于内网穿透的思考 #20

Open y4h2 opened 2 years ago

y4h2 commented 2 years ago

需求场景

当时的方案

构造了一个WebSocket server, 一端连在我们的server上,websocket client端需要部署在VPC内部。 两端之间用WebSocket连接,把原本的的单向request,变成了一个相当复杂的双向交互式系统。

这里再说说这个方案存在的问题

事后的思考

一个从根源上解决问题的方法就是配置防火墙,让我们server的ip能够通过VPC.

其次,可以考虑pub/sub的方案来处理,即客户端subscribe SQS,收到消息后立即发送webhook request

其他方案比如gRPC的streaming也是可行的

心路历程

算是从头到尾参与的一个烂项目,项目开展之前没有足够的时间做调研,等到发现架构有问题的时候,leader却已经在高层面前做完了demo, 开始着手实现细节了。等到想要阻止的时候,已经箭在弦上必须要上线了。 还有一些问题是开始没有想到的,比如connection频繁中断,这个在测试之后就暴露了。

NAT穿透的主要原理:由内网主动找外网建立连接,建立连接之后,外网可以向内网发消息

另:通过pub/sub模式可以避开NAT穿透