使用 Resttemplate 作为简单的 API 网关

Using Resttemplate as a simple API gateway

我正在使用 Resttemplate 在 spring-boot 项目中构建一个简单的 API 网关。当我的网关收到来自客户端的请求时,它通过 RESTful 调用将请求分派给另一个服务,然后将响应传回给客户端。

我的代码片段如下:

@RestController
@RequestMapping("api/v1/message")
public class GatewayController {

    @PostMapping
    public ResponseEntity<Response> dispatchRequest(@RequestBody Request request) {
        validateInput(request);         

        Response response = restTemplate.post(URL_OF_ANOTHOER_SERVICE, request, ...);

        return ResponseEntity.ok(response);
    }
}

我每秒大约有100多个请求,我知道Resttemplate是线程安全的。

我的问题:

  1. Resttemplate可以做这样的工作吗?会不会成为瓶颈?
  2. 还有其他建议吗?

非常感谢。

你可以试试Spring Cloud Gateway or Spring Cloud Netflix.

除非您愿意,否则您不需要从头开始构建网关。即使你愿意,你也可以考虑安全性、成熟度和维护等方面

SpringCloud Netflix 的一些模块 已进入维护模式,因此,Spring Cloud Gateway 可能是一个不错的选择,因为 GJohannes 已引用