集群配置中的共享内存 java

Shared memory java in cluster configuration

我的系统是集成了messenger的聊天机器人,我将升级到集群而不是一台机器,所以我会遇到一个问题,当用户开始对话时,机器内存中会创建一条记录,任何进一步的消息都需要转发到同一台机器,因为机器之间不共享内存。我可以创建要在机器之间共享的数据库,但由于性能原因,此解决方案是不可接受的。 有什么建议吗?我使用 ibm websphere 服务器。 我的问题是,我可以在机器之间共享内存吗?

作为共享高性能内存选项,您可以使用 Redis / Memcache。可能会有一点网络延迟。但是,如果您的服务器与 Redis 的连接是 持久,则此网络延迟可能 可忽略不计

如果你想要将数据与共享内存状态一起保存在服务器本地内存中,你可以使用 Pub-SubRedis,所以在这个设置服务器中的每个实例都将在本地维护数据,并将发布它到共享Redis服务器,所有服务器实例也将订阅Redis 上所需的频道,以便他们可以与其他服务器实时同步数据。这样您就不必在性能上做出妥协,并且还将确保每个服务器实例几乎实时.[= 都有最新的数据。 16=]