1. 程式人生 > >Dubbo-redis3解決負載均衡Session共享

Dubbo-redis3解決負載均衡Session共享

  由於redis3.0在2015年才出穩定版本,所以可能一些文件比較欠缺,如果有什麼疑問可以看一下這個網址。tomcatRedisClusterEnableSessionManager  首先要準備tomcat叢集,並且實現nginx的負載均衡。前期的工作我這裡就不詳細介紹了。還有關於網上一些解決session共享的一些思路,也可以參考一下下面的的部落格 解決nginx負載均衡的session共享問題。下面我只說一下關於redis3.0如何解決session共享的問題。

      一、首先要修改Keepalived-Nginx組成的反向代理叢集中的兩個節點同步增加兩處配置:

   ##web-boss(消費端)

       upstream web_boss{

server 192.168.152.128:8082 weight=1 max_fails=2 fail_timeot=30s

server 192.168.152.129:8082 weight=1 max_fails=2 fail_timeot=30s

}

#web-boss Cluster

location /pay-web-boss{

root html;

index index.html index.htm;

proxy_pass http://web_boss/pay-web-boss

proxy_set_header Host $http_host;

proxy_set_header Cookie$httpv_cookie;

proxy_set_header X-Real-IP $remote_addr_x_forwarded_for;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

client_max_body_size 100m;

}

然後重啟nginx。這樣tomcat叢集建立好了。

但是我們會發現,通過vip節點訪問服務節點的時候,會出現請求失敗這樣的操作,由於請求節點是隨機性的,有可能sessionId存在另一個節點的伺服器上,所以會導致這樣的sessionid不共享的情況。

二、解決session不共享

2.配置redis.properties,叢集中的IP:埠號用英文逗號隔開,開啟Redis叢集模式

注意:此外掛支援單節點的Redis,也支援Redis叢集,只需要在redis.properties中配置即可。

# redis hosts ex: 127.0.0.1:6379, 127.0.0.2:6379, 127.0.0.2:6380, ....

redis.hosts=127.0.0.1:6379, 127.0.0.2:6379, 127.0.0.2:6380, ....

# Redis Password

redis.password=

# set true to enable redis cluster mode

redis.cluster.enabled=true  

配置好後把redis.properties 上傳到Tomcat7中的conf目錄;將自定義的redis.properties替換掉TomcatRedisSessionManager-1.0jar

3.將TomcatRedisSessionManager-1.0.jar上傳到Tomcat中的lib目錄中。

4.在Tomcat7中的conf/context.xml中增加如下兩行配置:

<Value className="com.r.tomcat.seesion.management.commons.SessionHandlerValue"/>

<Manager className="com.r.tomcat.session.management.redis.RedisSessionManager"/>

5.重啟tomcat叢集。最後檢查在請求服務的時候,是否還會出現請求不到的情況。

相關推薦

Dubbo-redis3解決負載均衡Session共享

  由於redis3.0在2015年才出穩定版本,所以可能一些文件比較欠缺,如果有什麼疑問可以看一下這個網址。tomcatRedisClusterEnableSessionManager  首先要準

Nginx+Tomcat+Redis (負載均衡+session共享)完整案例

今天整合了一些資源,做了一個Nginx+Tomcat+Redis的案例,使部署的web專案能夠承載較大的訪問壓力,Nginx實現負載均衡,並使用Redis實現session共享; 如下拓撲圖: 各版本如圖所示 =======================================

負載均衡+session共享(memcached-session-manager實現)

前言   先給大傢伙拜個年,祝大家:新的一年健健康康,平平安安!       本文的形成參考了很多人的部落格,最多的應該是青蔥歲月兄的這篇部落格,大家可以先去看下,熟悉一些內容,因為本文是直接實踐,一些理論性的知識就需要大家自己去補充了。   本文是在我之前環境LVS + keepali

nginx反向代理、負載均衡 + session共享

前幾天我因為工作的需要,自己學習了下找了下各種文件,自己給自己挖了一堆坑,然後又自己慢慢的填!下面我就先介紹下我自己的安裝方式。 一:準備環境: 1.伺服器:centos6.6 2.nginx版本nginx-1.8.0                          

負載均衡-session共享的三種處理方法

方案一、Tomcat 廣播方案(Tomcat Session Clustering) 1.修改 conf 資料夾下面的 server.xml 配置檔案,在 Engine 模組下新增如下程式碼 <Engine name="Catalina" defaultHost="localhost">

spring session+redis解決負載均衡下的session共享問題

java web專案,不依賴於web容器,實現負載均衡,必須解決session共享問題。 spring-session +redis是最方面快捷的,不用重複造輪子,且不用修改專案的程式碼,並且使專案使用的session與web容器解耦, 完全由容器的httpsession轉為

轉 tomcat+nginx+redis實現均衡負載session共享(二)

gin cnblogs session 實現 負載 div tom nginx html http://www.cnblogs.com/zhrxidian/p/5491285.html http://www.cnblogs.com/zhrxidian/p/54328

tomcat+nginx+redis實現均衡負載session共享(二)

ota location 目錄 可能 調度任務 end 登錄頁面 開發 介紹 今天我們接著說上次還沒完成session共享的部分,還沒看過上一篇的朋友可以先看下上次內容,http://www.cnblogs.com/zhrxidian/p/5432886.html。 轉載

Linux下Nginx+Resin負載均衡,session問題解決例項

                     Linux下Nginx+Resin負載均衡,session問題解決例項   轉載:http://blog.chinaunix.ne

nginx 負載均衡session複製解決方案

nginx 負載均衡,必定要用到分散式叢集方案,只要涉及分散式,session共享必定是一個大問題,不僅僅是nginx的問題。我們用nginx做負載均衡,同一個請求不一定會被分配到哪個伺服器中,那麼我們下一個請求可能又被分到了其他的伺服器,這種情境下,就會造成s

負載均衡session會話保持方法

比較 服務器 mem 用戶 www 負載不均 home 特點 不同的 負載均衡時,為了保證同一用戶session會被分配到同一臺服務器上,可以使用以下方法:1.使用cookie將用戶的session存入cookie裏,當用戶分配到不同的服務器時,先判斷服務器是否存在該用戶的

dubbo容錯,負載均衡,協議

帶來 為什麽 div 字符 廣播 cache lib 基於 調用 8.負載均衡 dubbo提供4種負載均衡方式: Random,隨機,按權重配置隨機概率,調用量越大分布越均勻,默認是這種方式 RoundRobin,輪詢,按權重設置輪詢比例,如果存在比較慢的機器容易在這臺

深入Dubbo 原始碼解析 — 負載均衡LoadBalance

技術點 面試中Dubbo負載均衡常問的幾點 常見負載均衡演算法簡介 Dubbo 官方文件介紹 Dubbo 負載均衡的策略 Dubbo 負載均衡原始碼解析 面試中Dubbo負載均衡常問的幾點 負載均衡演算法 最小活躍數 一致性雜湊演算法

31、dubbo支援哪些負載均衡、高可用以及動態代理的策略?

1、面試題 dubbo負載均衡策略和叢集容錯策略都有哪些?動態代理策略呢? 2、面試官心裡分析 繼續深問吧,這些都是用dubbo必須知道的一些東西,你得知道基本原理,知道序列化是什麼協議,還得知道具體用dubbo的時候,如何負載均衡,如何高可用,如何動態代理。 說白了,就是看你對du

thinkphp3.2.3用redis3.0.7做session共享

<?php /** * +---------------------------------------------------------------------- * | ThinkPHP [ WE CAN DO IT JUST THINK IT ] * +--------------

Nginx負載均衡session會話保持方法

負載均衡時,為了保證同一使用者session會被分配到同一臺伺服器上,可以使用以下方法: 1.使用cookie 將使用者的session存入cookie裡,當用戶分配到不同的伺服器時,先判斷伺服器是否存在該使用者的session,如果沒有就先把cookie裡面的ses

ftp上傳下載解決負載均衡上傳下載問題

注意問題: 首先linux安裝ftp伺服器 http://jingyan.baidu.com/article/7908e85c988b23af481ad2ae.html 上傳路徑要是: 1:建立ftp使用者的家目錄,使用sudo mkdir /home/ftp命令 2:設定

Nginx學習: 負載均衡session會話保持方法

負載均衡時,為了保證同一使用者session會被分配到同一臺伺服器上,可以使用以下方法: 1.使用cookie 將使用者的session存入cookie裡,當用戶分配到不同的伺服器時,先判斷伺服器是否存在該使用者的session,如果沒有就先把cookie裡面的ses

解決北京pk10平臺搭建負載均衡session共享問題

mys 響應時間 最好的 因此 存在 設備 技術 pass sso 之前有寫過ubuntu環境下搭建北京pk10平臺搭建環境,今天來談一下nginx session共享問題,查了一些資料,看了一些別人寫的文檔,總結如下,實現nginx session的共享服務器有多臺,用n

解決asp.net負載均衡Session共享的問題

     每個客戶端在訪問網站時,都會建立相應的Session,用來儲存客戶的狀態資訊,網站如果做了負載均衡,session共享是要做的,IIS對於session的儲存有五種模式 一、ASP.Net session儲存方式 1、InProc模式(程序內模式) 。為預設設定