我已经在Heroku上部署了一个Java Web应用程序。
现在,我想改变后端以便通知连接的用户特定事件。我认为我可以使用服务器发送事件来实现这一点,我认为它的工作方式如下:
1.当用户打开前端时,它将建立服务器发送事件的连接。
2.当后端收到这样的请求时,它将创建这样的连接(基本上是一个EventOutput)并将其存储在某个地方,同时还会存储用户的ID(比如说在内存中的Map)。
3.当出现新事件时,后端将找到需要通知的用户,根据他的ID检索他的连接并向他发送通知。
当只有一台机器处理请求时,这样做非常好。
但是,当我想扩展我的应用程序并引入更多机器时,我的问题就开始了。然后,我就不能再在一台机器的内存中存储这些连接了,我需要使用一些集中的位置。但是,集中式位置需要进行序列化/反序列化连接,这意味着它不再是同一个连接!
你通常如何做这样的事情?
现在,我想改变后端以便通知连接的用户特定事件。我认为我可以使用服务器发送事件来实现这一点,我认为它的工作方式如下:
1.当用户打开前端时,它将建立服务器发送事件的连接。
2.当后端收到这样的请求时,它将创建这样的连接(基本上是一个EventOutput)并将其存储在某个地方,同时还会存储用户的ID(比如说在内存中的Map)。
3.当出现新事件时,后端将找到需要通知的用户,根据他的ID检索他的连接并向他发送通知。
当只有一台机器处理请求时,这样做非常好。
但是,当我想扩展我的应用程序并引入更多机器时,我的问题就开始了。然后,我就不能再在一台机器的内存中存储这些连接了,我需要使用一些集中的位置。但是,集中式位置需要进行序列化/反序列化连接,这意味着它不再是同一个连接!
你通常如何做这样的事情?