溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Ignite上運(yùn)行微服務(wù)

發(fā)布時(shí)間:2021-12-16 16:18:02 來(lái)源:億速云 閱讀:114 作者:iii 欄目:云計(jì)算

本篇內(nèi)容主要講解“怎么在Ignite上運(yùn)行微服務(wù)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么在Ignite上運(yùn)行微服務(wù)”吧!

在Ignite上運(yùn)行微服務(wù):第一部分

從本文開(kāi)始,會(huì)通過(guò)一個(gè)系列的篇幅來(lái)介紹使用Apache Ignite內(nèi)存數(shù)據(jù)組織平臺(tái)來(lái)構(gòu)建容錯(cuò)、可擴(kuò)展的基于微服務(wù)的解決方案。

介紹

當(dāng)前,很多公司都會(huì)將自己的應(yīng)用或者解決方案構(gòu)建于微服務(wù)架構(gòu)之上,這樣做的主要好處是,可以將一個(gè)解決方案拆分為一組松耦合的軟件組件(微服務(wù))。這些軟件組件可能有自己的版本以及生命周期,甚至有自己的開(kāi)發(fā)團(tuán)隊(duì)。此外,這些軟件還可能使用不同的語(yǔ)言和技術(shù)來(lái)開(kāi)發(fā)和維護(hù)。但是因?yàn)樗械奈⒎?wù)都會(huì)是更大的構(gòu)件(軟件或者解決方案)的一部分,所以它們至少需要一個(gè)機(jī)制來(lái)進(jìn)行彼此的交互和數(shù)據(jù)交換。

同時(shí),基于微服務(wù)的解決方案也會(huì)用于高負(fù)載或者需要處理快速增長(zhǎng)的數(shù)據(jù)的場(chǎng)景,因此和不是基于微服務(wù)的應(yīng)用和解決方案一樣,它也會(huì)面臨同樣的問(wèn)題和困難。

  • 面向磁盤的數(shù)據(jù)庫(kù)已經(jīng)無(wú)法跟上快速增長(zhǎng)的數(shù)據(jù)量,這些數(shù)據(jù)需要以并行的方式進(jìn)行存儲(chǔ)和處理,數(shù)據(jù)庫(kù)正在成為整個(gè)應(yīng)用或者解決方案的性能瓶頸;

  • 軟件的高可用性保證作為一個(gè)好功能已經(jīng)成為過(guò)去式,當(dāng)前,應(yīng)用的高可用性已經(jīng)成為事實(shí)上的標(biāo)配。

從本文開(kāi)始,會(huì)通過(guò)一個(gè)系列的篇幅來(lái)一步步地介紹使用Apache Ignite內(nèi)存數(shù)據(jù)組織平臺(tái)來(lái)構(gòu)建容錯(cuò)、可擴(kuò)展的基于微服務(wù)的解決方案。

使用Apache Ignite的基于微服務(wù)的解決方案

下圖會(huì)描述整個(gè)解決方案的主要構(gòu)成,之后會(huì)深入,一個(gè)一個(gè)定義它們的角色。

怎么在Ignite上運(yùn)行微服務(wù)

Ignite集群層

集群有兩個(gè)作用:

首先,作為主要的數(shù)據(jù)存儲(chǔ),它直接在內(nèi)存中保存數(shù)據(jù)集。因?yàn)閿?shù)據(jù)離CPU更近,一個(gè)微服務(wù)不需要從磁盤上獲取數(shù)據(jù),這顯著地提升了整體的性能。從上圖來(lái)看,我們指定了一個(gè)特定的集群組(數(shù)據(jù)節(jié)點(diǎn))來(lái)專門處理這個(gè)問(wèn)題。

一個(gè)數(shù)據(jù)節(jié)點(diǎn)是一個(gè)Ignite服務(wù)端節(jié)點(diǎn),它持有數(shù)據(jù)集的一部分,并且可以執(zhí)行查詢和計(jì)算。另外,有賴于基于對(duì)象序列化的二進(jìn)制格式化技術(shù),一個(gè)數(shù)據(jù)節(jié)點(diǎn)不需要部署模型對(duì)象和計(jì)算的支撐類,這個(gè)叫做對(duì)等類加載機(jī)制,它可以管理從應(yīng)用邏輯節(jié)點(diǎn)(服務(wù)節(jié)點(diǎn))預(yù)加載的計(jì)算類。

其次,集群管理微服務(wù)的生命周期,并且為微服務(wù)配備所有必要的API,比如與其他服務(wù)或者數(shù)據(jù)節(jié)點(diǎn)進(jìn)行通信的API。要達(dá)到這一點(diǎn),一個(gè)基于Ignite集群的解決方案需要包含前述的服務(wù)節(jié)點(diǎn),這些節(jié)點(diǎn)部署有微服務(wù),并且應(yīng)用邏輯也在這里執(zhí)行。一個(gè)服務(wù)節(jié)點(diǎn)可以部署一個(gè)或者多個(gè)微服務(wù),這個(gè)取決于具體的應(yīng)用以及負(fù)載情況。每個(gè)微服務(wù)都需要實(shí)現(xiàn)Ignite的Service接口,它直接就有了容錯(cuò)和訪問(wèn)其他微服務(wù)的能力。

Ignite會(huì)處理在服務(wù)節(jié)點(diǎn)范圍內(nèi),一個(gè)微服務(wù)的一個(gè)或者多個(gè)副本的部署,并且會(huì)自動(dòng)地進(jìn)行容錯(cuò)和負(fù)載平衡。在上述的圖1中,這類微服務(wù)被命名為MS<N>(MS1,MS2等)。在多個(gè)服務(wù)和數(shù)據(jù)節(jié)點(diǎn)間傳播負(fù)載的好處是,如果MS1微服務(wù)改變,不需要重啟整個(gè)集群,所有需要做的就是在部署有MS1微服務(wù)的服務(wù)節(jié)點(diǎn)上更新MS1的相關(guān)類,因此只有所有節(jié)點(diǎn)的一個(gè)子集需要重啟。

所有的節(jié)點(diǎn)(服務(wù)和數(shù)據(jù)節(jié)點(diǎn))都是相互連接的,這使得部署在一個(gè)服務(wù)節(jié)點(diǎn)上的MS1可以與部署在任何其他的或者自身服務(wù)節(jié)點(diǎn)上的微服務(wù)進(jìn)行通信,也可以向任何數(shù)據(jù)節(jié)點(diǎn)獲取和發(fā)送數(shù)據(jù)以及計(jì)算。

持久化存儲(chǔ)層

這一層是可選的,可以用于如下的場(chǎng)景:

  • 在內(nèi)存中持有所有的數(shù)據(jù)是不必要或者不可行的;

  • 需要從基于磁盤的副本中恢復(fù)數(shù)據(jù)集的能力,這時(shí)整個(gè)集群需要停機(jī)或者需要重啟。

要啟用持久化存儲(chǔ)層,只需要簡(jiǎn)單地提供一個(gè)實(shí)現(xiàn)了CacheStore接口的Ignite數(shù)據(jù)緩存就可以了。在默認(rèn)支持的實(shí)現(xiàn)中,有RDBMS,MongoDB以及Cassandra。

外部應(yīng)用層

這是微服務(wù)架構(gòu)應(yīng)用的"用戶",基本上來(lái)說(shuō),這是一個(gè)觸發(fā)調(diào)用一個(gè)一個(gè)微服務(wù)的各種執(zhí)行流程的層次。

這個(gè)層可以使用具體到每個(gè)微服務(wù)的外部協(xié)議來(lái)與微服務(wù)進(jìn)行通信(而在內(nèi)部,微服務(wù)間相互通信可以使用Ignite服務(wù),或者使用Ignite客戶端連接進(jìn)行連接),這方面都很大的靈活性以及多樣化的選擇。

到此,相信大家對(duì)“怎么在Ignite上運(yùn)行微服務(wù)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI