我有一个 Spring Boot Web 应用程序(使用 Tomcat),提供 HTTP API。有多个客户端,每个客户端都有自己的一组 API(例如,Foo
客户端只能调用/api/foo/**
API)。
为了将每个客户端与其他客户端隔离,我希望为每个客户端设置专用的线程池,这样,例如,如果Foo
客户端的 API 调用突然激增,其他客户端就不会受到限制。
我搜索了很多解决方案,但找不到一个干净的解决方案。
例如,一种解决方案是为每个客户端创建一个这行不通,至少根据我在中看到的情况Filter
,Executor
并将每个请求分派到相应的Executor
。但我不确定这样做是否是个好主意。CoyoteAdapter
。
我还考虑过Executor
为 Tomcat编写一个自定义委托,Connector
它有多个子Executor
进程,并决定哪个子进程应该执行 API 调用。但我不确定是否有可能做到这一点。
我发现的唯一干净的解决方案是多连接器设置,这使得应用程序可以监听多个端口,并且如果可能的话,我想避免额外的复杂性,因为它会泄漏到基础设施级别。
我在这里看到了类似的问题,但略有不同,希望能为我提供解决方案。
最好的方法是什么?有没有一种简单干净的本地方法来做到这一点?
谢谢。