KrakenD API网关POST端点对接多个POST后端的可行性问询
问题解答
完全可以,KrakenD原生支持单个POST端点对接多个POST后端服务,这个能力属于它自带的请求聚合功能范畴,不需要额外安装第三方插件即可实现。
实现核心逻辑
- 你只需要在KrakenD的端点配置中,给对应的POST端点绑定多个后端POST服务地址,同时开启
proxy相关配置即可 - 客户端向KrakenD的公共POST端点发送一次请求后,KrakenD会自动复制请求体转发给所有绑定的后端服务,支持按需选择聚合所有后端的响应返回,或者仅返回指定后端的响应结果
注意:如果不同后端要求的请求体格式、参数不一致,你可以配合KrakenD的请求转换能力,给每个后端单独配置参数映射、请求体修改规则。
基础配置示例
你可以参考如下配置片段调整你自己的KrakenD配置文件:
{ "endpoint": "/public/submit-data", "method": "POST", "output_encoding": "json", "backend": [ { "url_pattern": "/api/v1/business/save", "method": "POST", "host": ["http://business-service:8080"] }, { "url_pattern": "/api/v1/log/record", "method": "POST", "host": ["http://log-service:8000"] }, { "url_pattern": "/api/v1/analysis/push", "method": "POST", "host": ["http://analysis-service:8090"] } ], "extra_config": { "proxy": { "parallel": true } } }
- 配置里的
parallel: true表示KrakenD会并行向所有后端发起请求,无需等待前一个请求返回再发起下一个,性能更高 - 如果你的多个后端调用有先后依赖关系,可以把
parallel替换为sequential: true,KrakenD会按配置顺序依次调用后端,还支持把前一个后端的返回值作为参数传入下一个后端的请求中
典型适用场景
- 同一份POST提交数据需要同时写入业务库、日志系统、大数据分析平台,无需客户端发起多次请求,仅调用一次KrakenD端点即可完成
- 单次客户端操作需要同时触发多个后端的业务流程的场景
内容的提问来源于stack exchange,提问作者prerit96
相关产品推荐
相关产品推荐

