構建伺服器叢集感知的Java應用程式

來源:互聯網
上載者:User

如今,許多公司專屬應用程式程式都由一組合作的分布式進程和伺服器交付。例如,可向幾乎所有流行的 Java 企業伺服器的 Web 請求提供伺服器叢集功能,這些伺服器還可以提供有限的配置選項,如伺服器權重和配置重新載入。

雖然大多 數 Java 企業伺服器具有叢集的內建支援,但對於自訂用例來說,在應用程式級並沒有現成提供這種支援。作為軟體開發 人員,我們應該如何管理涉及分布式任務協調或支援多租戶應用程式的用例?(多租戶應用程式 是要求執行個體在整體伺服器 叢集或組的子集上被隔離的應用程式。)對於這些類型的用例,我們必須找到一種方法,使得組協調功能在應用程式軟體層 上可用,最好能在進階別的抽象層上提供。

在本文中,我們提供了將群組成員和管理功能融合到分布式 Java 應用程 序中的指南。我們將從一個基於 Spring Integration 的類比 Java 應用程式開始,利用基於兩個開源項目(Apache ZooKeeper 和 LinkedIn 的 Project Norbert)的伺服器叢集抽象層來進行構建。

伺服器叢集概述

伺服器集 群感知的應用程式通常至少需要以下功能:

具有狀態維護和查詢功能的群組成員:需要即時群組成員,以便在一組活動的伺服器上分發處理。為了管理群組成員,應用程 序必須能夠建立一個進程/伺服器組,並跟蹤該組中所有伺服器的狀態。當某台伺服器停機或上線時,它還必須能夠通知活 動的伺服器。該應用程式將只在叢集中的活動伺服器之間對服務要求執行路由和負載平衡,從而協助確保實現高可用的服務 。

主要進程或領袖進程:這是一個在叢集中的進程,負責維護整個伺服器叢集的同步狀態的協調功能。選擇領袖進程的機 制是被稱為分布式共識 的一組更廣泛的問題中的一個特例。(兩階段交易認可和三階段提交是眾所周知的分布式共識問題。)

任務協調和動態領袖伺服器選舉:在應用程式層級,領袖伺服器 負責任務協調,通過叢集中的其他(跟隨者)伺服器 之間分發任務來做到這一點。擁有一台領袖伺服器,可以消除伺服器之間潛在的爭用,否則爭用將需要某種形式的互斥或鎖 定,才可以使符合資格的任務運行(例如,伺服器對來自公用資料存放區的任務進行輪詢)。正是動態領袖選舉使得分布式處 理變得可靠;如果領袖伺服器崩潰,可以選舉新的領袖繼續處理應用程式任務。

組通訊:在一個叢集感知的應用程式中的應用程式應該能夠在整個伺服器叢集中促進結構化資料和命令的高效交換。

分布式鎖和共用資料:如果有需要,分布式應用程式應該能夠訪問的特性包括分布式鎖和共用資料結構,如隊列和映射 。

樣本:Spring Integration

我們的代表示例是一個企業應用程式整合 (EAI) 情境,我們將利用基於 Spring Integration 的類比應用程式處理該情境。該應用程式具有以下特徵和要求:

一個類比源應用程式產生與整合相關的事件和訊息作為其日常交易處理的一部分,並將它們儲存在一個資料存放區中。

整合事件和訊息由一組分布式 Java 進程(一個伺服器叢集)進行處理,這些進程可以在同一台伺服器上運行,也可以 分布在由一個高效能網路連接的多台電腦上。需要伺服器叢集來實現可擴充性和高可用性。

每個整合事件只由任一叢集成員(即特定的 JVM)處理一次。輸出訊息通過 Intranet 或 Internet 被傳遞給夥伴 應用程式(如果適用)。

圖 1 顯示了整合事件和從類比源應用程式出站的訊息處理流。

圖 1. 基於 Spring Integration 的樣本應用程 序示意圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.