[技术贴]微服务中的网关部署在云服务器,自己在公司内网启动服务,怎么让网关能调通自己本地的服务?

2023-02-15 09:35:15 +08:00
 Aliberter

如题,目前遇到这么个问题,一开始想的是内网穿透,但是被 pass 了说是对内网不安全,经过一番调研,阿里云有自己的端云互联工具,但是又不想用阿里云,太贵了。我们的某个竞品,他们部署在云端的后台就能直接发现自己内网的服务并成功调用,这个是怎么做到的呢?希望老哥们给指点一下迷津,感谢

3931 次点击
所在节点    程序员
51 条回复
MinJin
2023-02-15 09:36:46 +08:00
zerotier
luomao
2023-02-15 09:37:53 +08:00
我们这边是和阿里云拉了一条专线,可以直接互访内网
Aliberter
2023-02-15 09:40:06 +08:00
@MinJin 就是如果不用额外的第三方穿透工具,有别的实现方式吗
Aliberter
2023-02-15 09:40:28 +08:00
@luomao 哦哦,大佬,……我们还做不到
Aliberter
2023-02-15 09:43:27 +08:00
我们用的 springcloud 那一套,有能跟服务的项目做集成做绑定,不用额外的网络配置和三方工具,只要本地项目跑起来,就能被云端发现调用,这种技术实现吗?
cheng6563
2023-02-15 09:47:40 +08:00
ssh 算第三方工具吗?用 ssh 也能穿透
tramm
2023-02-15 09:48:06 +08:00
你们公司不能开放端口吗?

不开放端口,也没专线的话,云服务器起个 TCP 服务,公司的这边写个 TCP 中转服务通过长连接连上去,让云服务器那边所有请求下发到公司的这个中转服务器上...不过感觉这个有点麻烦啊
Seulgi
2023-02-15 09:50:41 +08:00
阿里的端云互联实际也和内网穿透差不多。
Lentin
2023-02-15 09:52:23 +08:00
防火墙上做 nat 转发 设置好源 IP 和目的地 IP 端口就行了
Diego01
2023-02-15 09:54:43 +08:00
公网访问、VPN 、智能接入网关、共享专线
Aliberter
2023-02-15 09:56:16 +08:00
@cheng6563 就是希望 ssh 能融入进微服务代码架构里最好,每一个服务启动后都连一下 ssh ?这样可能也能被他们接受
Aliberter
2023-02-15 09:57:34 +08:00
@tramm 能开放端口,就是不要有明显的穿透工具就行,你说的这个是不是就是 frp 的原理啊...手写 tcp 服务再中转啥的...可能确实有点麻烦
Aliberter
2023-02-15 09:59:20 +08:00
@Seulgi 对 我看也是 就是有个中转 但是他们不同意我们自己用 frp 之类的 还需要各种配置 还要改项目配置的 ip 麻烦 就想无脑启动
Aliberter
2023-02-15 10:01:06 +08:00
@Lentin 这个需要运维参与,我们可能不会让运维去搞这个,就是想着在不动网络的前提下
Aliberter
2023-02-15 10:02:25 +08:00
@Diego01 合理合法的方案,但都没被接受,说实话,我觉得除了这些,真就有点异想天开了
lower
2023-02-15 10:04:41 +08:00
@tramm 搭个消息队列 搞一套发布、订阅 感觉也基本能在楼主描述的网络场景里实现想要的功能……
Eytoyes
2023-02-15 10:05:51 +08:00
这不是网工的事吗?提个申请开个口子映射到你的内网服务器,把源地址和目的地址都限制一下就行了
lower
2023-02-15 10:06:19 +08:00
楼主项目里有集成消息队列么,感觉应该适合你的场景,改造改造
ragnaroks
2023-02-15 10:07:16 +08:00
zerotier 本身有库,集成到你的项目中即可,我用很久以前就实现了 MC 一键 P2P 联机
luomao
2023-02-15 10:07:50 +08:00
和 spring cloud 那套融合起来,还有个比较蛋疼的方法。两边都接入一个消息队列,譬如 rabbitMq ,网关收到消息后将消息发送到队列中并保持连接,内网服务器消费这个”请求”,“请求”的结果消费完以后再将”响应”发送到队列中,网关消费掉这个”响应”后释放连接并返回

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/916208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX