【发布时间】:2019-01-31 20:57:39
【问题描述】:
我正在开发一个监听 HTTP 请求的 Web 服务。该服务必须非常快速地响应并处理可能的最大并发请求数。
该服务有一个端点,带有 2 个请求参数(param1 和 param2),用于验证某些信息,然后发送响应。
我预定义了一些信息,用于验证请求参数。例如:
我知道
param1已分配给assign1并具有prop1属性。Param1也被分配给具有prop3属性的assign3。而
param2被分配给assign2并具有prop2属性。
有了这些信息,当我收到一个 HTTP 请求时,我需要验证 param1 是否分配有 assign1 或 assign2,否则,我应该返回一个空响应。
显然,这个想法是为了避免对其进行硬编码,如果我可以在服务器运行时修改该信息,那就太好了。
为了实现这一点,我知道两个现有的解决方案(可能还有更多):
使用
spring boot,并在.yml 文件中设置该信息,以便使用@Value(${param1})等占位符通过spring bean 读取它们。问题是我需要重新加载应用程序如果我想查看该 .yml 文件中所做的更改,那么从技术上讲,我无法在服务器运行时修改缓存的信息。使用像
H2这样的嵌入式数据库,并使用选择获取每个请求的信息。问题是我需要为每个请求进行选择(如果我必须进行任何加入,它会增加响应时间)。但是我可以在服务器运行时修改信息。
我想知道哪个是“缓存”该信息的最佳选择,并让服务非常快,因为每个请求都被阻塞。
我也在使用 Spring Boot 来提供该服务,但如果您知道任何更好的 Web 容器,我愿意尝试。
【问题讨论】:
标签: java spring http spring-boot caching