我的系统是与Messenger集成的聊天机器人,我将升级到集群而不是一台机器,所以我将面临一个问题,当用户开始对话时,将在机器内存中创建一条记录,任何进一步的消息都需要转发到同一台机器,因为机器之间不共享内存。我可以创建在机器之间共享的数据库,但由于性能原因,此解决方案 Not Acceptable 。 有什么建议吗?我使用 ibm websphere 服务器。 我的问题是,我可以在机器之间创建共享内存吗?
最佳答案
作为共享高性能内存选项,您可以使用 Redis
/Memcache
。可能会有一点网络延迟。但是,如果您的服务器与 Redis
的连接持久,则此网络延迟可能可以忽略不计。
如果您想将数据与共享内存状态一起保存在服务器本地内存中,您可以使用 Redis
和 Pub-Sub,因此在此设置中,每个服务器中的实例将在本地维护数据,并将其发布到共享Redis
服务器,所有服务器实例也将订阅到所需的 channel 在Redis
上,以便他们可以与其他服务器实时同步数据。这样您就不必在性能上妥协,并且还可以确保每个服务器实例几乎实时拥有最新的数据。
关于java - 集群配置中的共享内存java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59910099/