我们计划让Apigee Edge公开REST API。面向客户端的端点将由Apigee管理。 Apigee后面将托管另一个REST服务。当调用Apigee端点时,我们计划将请求存储在Kafka中,以便可以异步处理它。服务器处理完之后,我们打算将消息推送到发出请求的客户端应用程序。
这是常见的做法吗?
Apigee是否具有记住客户端的功能(例如其网络套接字)以便可以推送通知?
答案 0 :(得分:0)
首先,Apigee是用于同步API的网关。没有默认方法可以“返回”先前处理过的请求。因此:不,这不是常见的做法。
一种更常见的做法是向“ Apigee后面的另一个REST服务”添加异步标注,这意味着Apigee会立即返回响应,而无需等待目标完成。然后,该后端服务可能会自己通过其他Apigee代理实现回调。
在您的特定情况下,您正在实现的模式基本上是一个消息队列,利用Kafka作为消息代理。在这种模式下,最佳做法是让邮件接收者在完成工作后立即发送回复邮件。
关于websocket,Apigee目前不支持它(请参阅https://community.apigee.com/questions/60513/apigee-as-websocket-proxy.html)。