使用动态路由映射构建API网关

时间:2016-06-07 13:35:56

标签: nginx reverse-proxy api-design

我们运行多项服务,为公共API的不同部分提供服务。这些部分实现相同的接口并共享相同的基本路径。

我正在寻找一种实现API网关的好方法,或者重用可以将传入请求路由到相应服务的现有软件(例如反向代理),具体取决于请求路径参数中的ID。

/v1/things/{ID}

ID_1 -> route request to internalIP1/v1/things/{ID}
ID_2 -> route request to internalIP2/v1/things/{ID}

每当在我们的(虚构的)注册服务中创建新的“thing”并生成新的ID_x时,就应该通过API更新路由表。 Afaik,像tyk这样的API网关不支持这个用例。

Nginx Plus提供了一个HTTP API,我们可以动态更新映射,例如发出一个简单的内部请求。然而,Nginx Plus需要花钱。

“常规”Nginx还允许用lua编写的扩展,它可以从某种数据存储中访问这些高级映射,这些映射本身可能不是基于http的(速度和开销),但可能在内存中就像基于redis的共享存储可能是另一种选择。

This related question现在已经四岁了。

0 个答案:

没有答案