2

我已經在通過SSH管理的Glassfish上構建了一個集羣,其中有2個實例。我部署了一個顯示「會話ID」的應用程序。EC2上的Glassfish集羣中的會話複製

此應用程序在web.config:

<distributable/> 

而在sun-web.xml中:

<session-config> 
    <cookie-properties> 
     <property name="cookieDomain" value="compute.amazonaws.com"/> 
    </cookie-properties> 
</session-config> 

我啓用了 「可用性」 的編輯應用程序。

但是,當我訪問2個Web應用程序版本時,我看到不同的會話ID。 任何人都可以幫助我嗎?

編輯:正如一些用戶注意到,在EC2不支持多播。 Glassfish v3.1.2提供了一個解決方案,允許在不允許組播的情況下(通過列出實例ip或使其自動生成列表)以其他兩種不同方式發現集羣。這裏指定了如何在非多播環境下啓動集羣:Administering Glassfish Server Clusters

+0

AFAIK glassfish底層羣集基礎結構,schoal,**不支持單播**,只有多播,這在EC2或VPC上本機不支持,使得會話同步不可行,但我對這個主題沒有深入的瞭解。 –

+0

我發現資源說這是可能的,但我仍然在努力。希望能儘快更新,謝謝。 Andrea – andreaxi

回答

1

正如一些用戶注意到的,在EC2中不支持多播。 Glassfish v3.1.2提供了一個解決方案,允許在不允許組播的情況下(通過列出實例ip或使其自動生成列表)以其他兩種不同方式發現集羣。下面是在非多播環境中指定如何啓動羣集的示例:Administering Glassfish Server Clusters

+0

您是否確實需要glassfish-web.xml(或sun-web.xml)中的cookie設置?我嘗試了下面這個,並且設置爲使用單個非羣集實例運行的前端應用程序失敗。它在該設置中工作,但沒有人創建了glassfish-web.xml文件或命名了cookie。如果您在此文件中指定Cookie,前端用戶是否必須在其應用中查找不同的Cookie名稱?如果您將此文件和Cookie設置保留,它是否仍會創建會話cookie(如果在java代碼中聲明)? – BillR

1

要嘗試驗證的第一件事情是嘗試驗證組播是否適用於您的設置,請在asadmin命令下使用。

asadmin validate-multicast  

您可以檢出這個簡單的Youtube視頻有關如何做到這一點

http://www.youtube.com/watch?v=sJTDao9OpWA

如果組播不工作,你可能想嘗試支撐在近期發行的非組播選項的Glassfish 3.1.2

發行說明中說,它支持非組播集羣

對非多播羣集的新支持。 GlassFish高可用性 集羣現在可以在多播爲 禁用的環境中使用。

我無法找到任何提供設置非多點傳送羣集步驟的文檔。企業支持客戶可能有一個。

+1

這是可能的,你是對的。以下是如何操作:[管理Glassfish]。(http://docs.oracle.com/cd/E26576_01/doc.312/e24934/clusters。htm#CHDGAIBJ) – andreaxi

+0

感謝您分享文檔鏈接。 –

2

閱讀適用於v3.1.2的高可用性管理指南,具體爲「發現組播傳輸不可用時的羣集」一節。還沒有嘗試過,但期待。乾杯!

+0

我也按照[本文檔]中建議的步驟(http://docs.oracle.com/cd/E26576_01/doc.312/e24934/clusters.htm#CHDGAIBJ),希望能儘快更新問題。謝謝,答: – andreaxi