您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么在Ignite上運行微服務”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么在Ignite上運行微服務”吧!
從本文開始,會通過一個系列的篇幅來介紹使用Apache Ignite內存數據組織平臺來構建容錯、可擴展的基于微服務的解決方案。
當前,很多公司都會將自己的應用或者解決方案構建于微服務架構之上,這樣做的主要好處是,可以將一個解決方案拆分為一組松耦合的軟件組件(微服務)。這些軟件組件可能有自己的版本以及生命周期,甚至有自己的開發團隊。此外,這些軟件還可能使用不同的語言和技術來開發和維護。但是因為所有的微服務都會是更大的構件(軟件或者解決方案)的一部分,所以它們至少需要一個機制來進行彼此的交互和數據交換。
同時,基于微服務的解決方案也會用于高負載或者需要處理快速增長的數據的場景,因此和不是基于微服務的應用和解決方案一樣,它也會面臨同樣的問題和困難。
面向磁盤的數據庫已經無法跟上快速增長的數據量,這些數據需要以并行的方式進行存儲和處理,數據庫正在成為整個應用或者解決方案的性能瓶頸;
軟件的高可用性保證作為一個好功能已經成為過去式,當前,應用的高可用性已經成為事實上的標配。
從本文開始,會通過一個系列的篇幅來一步步地介紹使用Apache Ignite內存數據組織平臺來構建容錯、可擴展的基于微服務的解決方案。
下圖會描述整個解決方案的主要構成,之后會深入,一個一個定義它們的角色。
集群有兩個作用:
首先,作為主要的數據存儲,它直接在內存中保存數據集。因為數據離CPU更近,一個微服務不需要從磁盤上獲取數據,這顯著地提升了整體的性能。從上圖來看,我們指定了一個特定的集群組(數據節點)來專門處理這個問題。
一個數據節點是一個Ignite服務端節點,它持有數據集的一部分,并且可以執行查詢和計算。另外,有賴于基于對象序列化的二進制格式化技術,一個數據節點不需要部署模型對象和計算的支撐類,這個叫做對等類加載機制,它可以管理從應用邏輯節點(服務節點)預加載的計算類。
其次,集群管理微服務的生命周期,并且為微服務配備所有必要的API,比如與其他服務或者數據節點進行通信的API。要達到這一點,一個基于Ignite集群的解決方案需要包含前述的服務節點,這些節點部署有微服務,并且應用邏輯也在這里執行。一個服務節點可以部署一個或者多個微服務,這個取決于具體的應用以及負載情況。每個微服務都需要實現Ignite的Service接口,它直接就有了容錯和訪問其他微服務的能力。
Ignite會處理在服務節點范圍內,一個微服務的一個或者多個副本的部署,并且會自動地進行容錯和負載平衡。在上述的圖1中,這類微服務被命名為MS<N>
(MS1,MS2等)。在多個服務和數據節點間傳播負載的好處是,如果MS1微服務改變,不需要重啟整個集群,所有需要做的就是在部署有MS1微服務的服務節點上更新MS1的相關類,因此只有所有節點的一個子集需要重啟。
所有的節點(服務和數據節點)都是相互連接的,這使得部署在一個服務節點上的MS1可以與部署在任何其他的或者自身服務節點上的微服務進行通信,也可以向任何數據節點獲取和發送數據以及計算。
這一層是可選的,可以用于如下的場景:
在內存中持有所有的數據是不必要或者不可行的;
需要從基于磁盤的副本中恢復數據集的能力,這時整個集群需要停機或者需要重啟。
要啟用持久化存儲層,只需要簡單地提供一個實現了CacheStore接口的Ignite數據緩存就可以了。在默認支持的實現中,有RDBMS,MongoDB以及Cassandra。
這是微服務架構應用的"用戶",基本上來說,這是一個觸發調用一個一個微服務的各種執行流程的層次。
這個層可以使用具體到每個微服務的外部協議來與微服務進行通信(而在內部,微服務間相互通信可以使用Ignite服務,或者使用Ignite客戶端連接進行連接),這方面都很大的靈活性以及多樣化的選擇。
到此,相信大家對“怎么在Ignite上運行微服務”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。