簡體   English   中英

客戶端攔截器和外部負載平衡架構

[英]Client side interceptor and external load balancing architecture

我正在公司中實施一個新的應用程序,並且正在尋找進行集群的方法。 根據此處的jboss文檔,可以使用兩種類型的體系結構。

  1. 客戶端攔截器
  2. 外部負載平衡

問題1:在客戶端攔截器體系結構中。 客戶端具有代理對象,並且它知道將消息路由到哪個服務器。 誰是這里的客戶 我知道Java腳本/ HTML無法保存代理對象。 它是節點前面的spring / servlet層嗎?

問題2:外部負載平衡器是否了解有關節點可以包含的代碼和服務的任何信息,還是僅使用算法將請求委托給誰?

對於1-客戶端,是遠程EJB動態代理和/或應用程序客戶端容器(桌面應用程序)

對於2-外部負載平衡器對代碼一無所知。 (我看到此解決方案的使用遠遠超過問題1中的方案)

有很多方法可以配置群集,具體取決於您的負載平衡和容錯目標。 例如,您可以在未集群的應用程序服務器之間進行負載平衡。 由於沒有會話復制,因此容錯性較小,性能更快。

這里是有關數字1的更多詳細信息。

假設問題1中有一個分布式應用程序。 假設一個Web應用程序和在應用程序服務器上運行的EJB,我希望調用另一個應用程序服務器的一些EJB。

當您調用遠程EJB時,應用程序服務器會生成一個類,該類將被傳輸到調用服務器。 這是動態代理,它包含所有網絡通信內容。

在應用服務器市場上,我們通常會看到兩種配置形式:(1)動態代理類,該類可感知群集並調用其他節點;(2)CORBA URL,其中包含節點列表,即corbaloc :: nodeA。 host.com,nodeB.host.com / ...

這是關於數字2的更多細節。

第二種情況通常是我們向“外部”世界的調用者提供基於HTTP的服務,WebUI,REST,SOAP等。

帶有mod_jk插件的Apache HTTPD是此處 JBoss文檔中的示例

可以將請求發送到其他服務器以解決負載或故障。 HTTP會話對象在節點之間復制。 (JBoss中的JGroups庫可以處理此問題,IP多播也是一種常見技術)

因此,負載平衡器/反向代理不需要知道它只知道將請求轉發到的URL的代碼,集群中的應用程序服務器將協作以獲取會話信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM