Java 设计会话过期服务

Java 设计会话过期服务,java,performance,architecture,software-design,Java,Performance,Architecture,Software Design,我已与视频流提供商集成。流程如下:用户请求一个流url,接下来我们代表用户从流提供者请求并返回给用户。接下来,我们应该每10秒延长一次流id(会话)。为了最大限度地减少与客户端的交互,并且由于网络速度较慢,我们希望代表用户执行此会话延长。比如说,用户每2-5分钟触发一个请求,同时服务器每10秒触发一个会话延长请求 问题在于这种服务的可能设计。除了周期性地迭代所有可用的会话密钥和呼叫延长服务之外,我还没有找到更好的解决方案。 但这种方法有缺点,当用户数量非常大时,它可能会减慢处理速度。而且,这种方

我已与视频流提供商集成。流程如下:用户请求一个流url,接下来我们代表用户从流提供者请求并返回给用户。接下来,我们应该每10秒延长一次流id(会话)。为了最大限度地减少与客户端的交互,并且由于网络速度较慢,我们希望代表用户执行此会话延长。比如说,用户每2-5分钟触发一个请求,同时服务器每10秒触发一个会话延长请求

问题在于这种服务的可能设计。除了周期性地迭代所有可用的会话密钥和呼叫延长服务之外,我还没有找到更好的解决方案。
但这种方法有缺点,当用户数量非常大时,它可能会减慢处理速度。而且,这种方法很难扩展


也许你有办法克服这个问题?或者请提出一个更好的解决方案

我将把keep alive作为一段独立的代码编写,它将在结束前的y段时间内每隔x秒调用keep alive,其中x、y和keep alive端点是启动参数

每次用户触发请求时,在后台启动其中一个。如何打包取决于您的部署环境,以及您打算如何管理向外扩展(后台线程、新进程、无服务器功能等)


出于管理目的,您可能需要在缓存中维护一些状态信息(如果已经在运行,则不要启动新的状态信息、挂起的进程状态等)。

“但这种方法有缺点,当用户数非常大时,可能会减慢处理速度。”我怀疑在您的请求成为瓶颈之前,您的视频流的带宽就已经用完了。视频流实际上使用了流提供商的带宽。这不是我们的服务,所以我们只返回流url,仅此而已