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