我有一个应用程序,使用Redis Tomcat Session Manager连接到Redis服务器以将会话外部化。由于我们的目标是高可用性,所以我们想要以分布式方式运行Redis主从配置。我们可以在单个服务器上成功地实现多个主从配置,并使用sentinel来完成。
当我们从单个服务器转移到多个服务器环境时,问题就开始了,即假设我们有s1、s2、s3服务器,其中Master在s1上运行,而s2和s3运行从进程。Sentinel很容易在s1主服务器停止运行时进行切换,但我们的应用程序完全不知道切换,并继续指向s1服务器的IP地址,而主服务器现在是s2。如何解决这个问题并如何提高可用性。
我们在Apache Tomcat中所做的配置更改在Server.xml文件中,并且如下:
如何处理这种情况并提高可用性。我阅读了一些与zookeeper相关的插件,但没有Java版本的,甚至不知道如何实现相同的功能。
如果需要任何澄清,请随时提问。
当我们从单个服务器转移到多个服务器环境时,问题就开始了,即假设我们有s1、s2、s3服务器,其中Master在s1上运行,而s2和s3运行从进程。Sentinel很容易在s1主服务器停止运行时进行切换,但我们的应用程序完全不知道切换,并继续指向s1服务器的IP地址,而主服务器现在是s2。如何解决这个问题并如何提高可用性。
我们在Apache Tomcat中所做的配置更改在Server.xml文件中,并且如下:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost" <!-- optional: defaults to "localhost" -->
port="6379" <!-- optional: defaults to "6379" -->
database="0" <!-- optional: defaults to "0" -->
maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) --> />
如何处理这种情况并提高可用性。我阅读了一些与zookeeper相关的插件,但没有Java版本的,甚至不知道如何实现相同的功能。
如果需要任何澄清,请随时提问。