后端跨域网络请求问题解决方案

需求背景

我们的业务系统是To C,用户分散在全国各地,会有各种复杂的网络环境问题。有一个功能是用户登陆我们系统,然后异步导出文件。文件我们会上传到cos平台,用户通过访问cos平台来下载文件。系统和cos都是内网环境,一般能访问我们网络能通的话,访问cos平台就能通。但是有次遇到个奇葩网络问题,用户能访问通我们系统,但是却无法访问cos平台,当地的IT运维最终判定结果是运行商做了拦截,最终通过更换通讯运营商解决。

达成的目标

像这种在我们系统里再访问外部系统的场景,也有很多。比如通过http访问外部接口,只不过访问的事是程序来干的,用户只跟当前所使用的业务系统交互,这种就能保证只要我们跟外部接口网络是通的,用户就一定能得到响应数据。按照这种思路,我们想要达成的目标是:用户只能能访问通我们系统,那么就一定能下载出文件。

实现方案

1.做个http接口,用户访问我们的接口,我们通过http调外部服务,然后再返回给用户。
优点:逻辑通用易理解。
缺点:需要额外的开发。
2.在网关层做转发。
用户访问我们的网关,加上一个特定地址的转发。比如当发现访问我们的路径是XXX.com/sku/file/download的时候,自动转发到YYY.com/file/download/111
优点:不需要开发,添加配置即可。
缺点:需要了解网关配置知识。

你可能感兴趣的:(后端,java)