![](/img/trans.png)
[英]Auto failover handling in cluster mode disabled Redis ElastiCache
[英]Redis - Handling Failover and Load Balancing?
我有一個使用Redis Tomcat會話管理器的應用程序,以便連接到Redis服務器以外部化會話。 由於我們的目標是高可用性,因此我們希望以分布式方式運行Redis主從配置。 我們成功地能夠在具有多個主從配置的單個服務器中實現它,我們使用sentinal來實現它。
當我們從單個服務器遷移到多個服務器環境時,我們的問題就出現了,即考慮我們有服務器s1,s2,s3和master在s1中運行,而s2和s3運行從屬進程。 每當s1主機死機時,Sentinal很容易切換,但我們的應用程序完全不知道切換並繼續指向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,甚至不知道我們將如何實現相同的插件。
如有需要,請隨時詢問任何說明。
你可能想看看HAProxy。 幾天前我遇到了類似的情況,在Windows Azure中設置了高可用性Redis服務。 我在這里記錄了如何做到這一點:
干杯
每當s1主機死機時,Sentinal很容易切換,但是我們的應用程序完全不知道切換並繼續指向s1服務器的IP而主機現在是s2
嘗試Redisson它會自動更新Redis拓撲,特別是在您的情況下處理主更改。 它還支持Single / Sentinel / Cluster和AWS Elasticache模式,當然還實現了Tomcat Session Manager 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.