目前非常越来越多的系统需要和第三方集成,举一个例子,如果你开发的是一款SaaS或者Open API类产品,那么和客户的应用进行整合比不可少。整合场景最常见的通讯方式有两种: API请求和反向通知。 举一个最常见的场景:在线支付。在创建完内部的订单后,你需要调用网关API,然后跳转到支付网关收银台,在客户付款后,支付网关会以HTTP REST API方式反向通知创建方,然后进行下一步业务流程。 这样做当然没有什么问题,但是略显复杂,原因如下:
- 双方都需要部署公网服务器: 购买服务器、申请域名、域名备案、购买HTTPS证书、网关配置等等,都不能少。支付网关一个中心的就可以啦,但是集成方要收到支付网关回发的HTTP REST API通知,这些都少不掉。
- 安全要求: 由于上方服务都暴露在互联网上,所以要进行安全防控,如Web Server的漏洞、如果你使用一些Web Framework,也要不定时更新等,不然信息被窃取的可能性非常高,造成一定的损失。
总的来说,采用传统的HTTP集成方式,耗时、费钱还非常操心。 如果采用RSocket进行集成,那么情况就不一样啦,让我们看一下基于RSocket的典型集成架构,如下:
假设你是服务提供方,第三方集成的应用,如App1、ERP只需要和你提供的RSocket Broker进行连接,这个连接创建有TLS+JWT两者保证,确保通讯安全和身份合法,这个我们在安全章节有介绍。 接下来我们看一下这种架构提供的好处:
- 首先第三方应用主动连接到broker的,broker本身提供了证书,所以对第三方无公网要求、域名要求、证书要求等等,一切从简啦,客户也省钱啦。
- 第三方应用如果要调用服务API,直接发起RSocket Request/Response请求就可以啦
- 如果服务提供方需要通知被集成方,如买家已经付款,那么直接通过已经建立好的连接反向发送消息就可以
- 安全方面: 集成方并不是以监听端口方式对外提供服务,所以不用担心监听端口号被攻击等可能
RSocket的集成方案,免去了非常多的步骤,如公网服务器、域名申请和备案、HTTPS证书等,简单了客户,而且为客户节省费用。安全方面,Broker通过TLS + JWT方式保证通讯安全和身份合法性,同时集成方不需要暴露监听端口等,也减少被攻击的风险。