這篇文章主要介紹了Java微服務框架和工具有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Netflix開放源碼軟件中心是基于 Java的微服務開放源碼項目最流行和最廣泛使用的開放源碼軟件。世界上最成功的視頻租賃服務依賴于它。Netflix已經(jīng)有超過 4000萬用戶,他們在全球各地使用其服務。Netflix是一個純粹的基于云平臺的解決方案,在微服務架構(gòu)的基礎上開發(fā)??梢哉f,每當有人談到微服務時,Netflix都是進入你腦海的第一個名字。讓我們討論它提供的各種工具。在開發(fā)示例 OTRS應用程序時,我們已經(jīng)討論了其中的很多工具。然而,有幾個工具我們還未探討過。在這里,我們將只對每個工具進行概述,而不是詳細講解。這將給你帶來微服務架構(gòu)的實際特點和它在云平臺中使用的總體思路。
Netflix Nebula是一種使你更容易使用 Gradle(類似Maven的構(gòu)建工具)來生成微服務的 Gradle插件集合。對于我們的示例項目,由于我們已使用了 Maven,因此我們沒有機會在本書中詳細探討 Nebula。然而,研究它會很有趣。對于開發(fā)人員來說,最重要的 Nebula功能是消除 Gradle生成文件中的許多樣板代碼,這使得開發(fā)人員能夠把重點放在編碼上面。
有一個很好的構(gòu)建環(huán)境,尤其是 CI/CD(持續(xù)集成和持續(xù)部署)是微服務開發(fā)和與敏捷開發(fā)保持一致必備的。Netflix Nebula使你的構(gòu)建過程更輕松、更高效。
一旦你生成的軟件已準備就緒,你會想要將此軟件移動到亞馬遜網(wǎng)絡服務( Amazon Web Services,AWS)EC2中。Aminator使用亞馬遜機器映像( Amazon Machine Image, AMI)的形式來創(chuàng)建生成的軟件并將其打包成映像文件。 Spinnaker然后將這些 AMI部署到 AWS。
Spinnaker是高速并高效地發(fā)布代碼更改的持續(xù)交付平臺。 Spinnaker還支持其他云服務,例如 Google Computer Engine和 Cloud Foundry。
你想要將最新的微服務軟件部署于類似 EC2的云環(huán)境中, Spinnaker和Aminator可以幫助你自動地完成這件事。
正如我們已在本書中探討的,Eureka提供了負責微服務注冊和發(fā)現(xiàn)的服務。最重要的是,Eureka也用于中間層(承載不同的微服務的進程)負載均衡。 Netflix也使用 Eureka以及其他工具,像 Cassandra或 memcached,以提高其整體可用性。
服務注冊和發(fā)現(xiàn)是微服務架構(gòu)所必備的。Eureka的用途就是這個。請參閱《Java微服務》第 4章獲取有關(guān) Eureka的詳細信息。
如果沒有進程間或服務間的通信,微服務架構(gòu)就沒有用。功能區(qū)應用程序提供該功能。 Ribbon與 Eureka結(jié)合實現(xiàn)負載均衡,與 Hystrix結(jié)合實現(xiàn)容錯或電路斷路器操作。
除HTTP之外,Ribbon還支持 TCP和 UDP協(xié)議。它對這些協(xié)議同時提供了異步和反應式模型的支持,它還提供緩存和批處理的功能。
因為你的項目中將會有很多微服務,你需要一種使用進程間或服務間通信的方法來處理信息。Netflix公司為此提供了 Ribbon工具。
Hystrix工具用來執(zhí)行電路斷路器操作,也就是,容忍延遲和容錯。因此,Hystrix會停止連鎖故障。Hystrix執(zhí)行實時的服務監(jiān)控和屬性更改操作,并支持并發(fā)。
電路斷路器或容錯,是用于任何項目,包括微服務的一個重要概念。一個微服務的故障不應停止你的整個系統(tǒng);Netflix Hystrix的任務是防止這一點,并在出故障時,向用戶提供有意義的信息。
Zuul是邊緣服務器或代理服務器,它用來為外部應用程序如 UI客戶端、Android/iOS應用程序或任何產(chǎn)品或服務提供的第三方使用者的 API發(fā)出的請求提供服務。從概念上講,它是一扇面向外部應用程序的門。
Zuul允許動態(tài)路由和監(jiān)控請求。它還執(zhí)行安全操作,如身份驗證??梢源_定每個資源的身份驗證要求,并拒絕任何不能滿足這些要求的請求。
你需要為微服務提供邊緣服務器或 API網(wǎng)關(guān)。Netflix Zuul提供此功能,請參閱《Java微服務》第 5章獲取詳細信息。
Atlas是一個業(yè)務監(jiān)控工具,它提供了接近實時的高維時間序列數(shù)據(jù)的信息。它捕獲業(yè)務智能,提供目前在系統(tǒng)內(nèi)發(fā)生的情況的概況。它提供內(nèi)存中的數(shù)據(jù)存儲,這使它能非??斓厥占蛨蟾娲罅康闹笜?。目前,它為 Netflix處理 13億個指標。
Atlas是一個可擴展的工具。這就是為什么它從幾年前處理 100萬個指標到現(xiàn)在可以處理 13億個指標的原因。 Atlas系統(tǒng)不僅提供了讀取數(shù)據(jù)方面的可擴展性,還將它作為一部分集成到圖形請求中。
Atlas使用 Netflix Spectato庫記錄高維時間序列數(shù)據(jù)。
一旦你在云環(huán)境中部署微服務,你就需要有一個監(jiān)控系統(tǒng)來跟蹤和監(jiān)控所有微服務。Netflix Atlas為你做這份工作。
在云環(huán)境中,沒有單個的組件可以保證 100%正常運行時間。因此,成功的微服務架構(gòu)要求,使整個系統(tǒng)在單個云組件出現(xiàn)故障的情況下可用。 Netflix公司開發(fā)了一個叫 Simian Army(猿猴軍隊)的工具,以避免系統(tǒng)故障。 Simian Army保證云環(huán)境的安全、可靠和高可用性。為了實現(xiàn)高可用性和安全性,它使用各種服務(猴子)在云中產(chǎn)生各類故障,檢測異常情況并測試云在這些挑戰(zhàn)下的生存能力。它使用取自 Netflix博客的以下服務(猴子):
混沌猴子是一種服務,它確定系統(tǒng)組并隨機終止某個組中的一個系統(tǒng)。這個服務以受控制的時間和時間間隔運作?;煦绾镒又辉跔I業(yè)時間運行,它希望工程師將收到警報并能夠做出反應。
看守猴子是一種在 AWS云中運行的服務,它尋找可以清理的未使用的資源,它可以擴展用于其他云提供商和云資源。服務的時間表是可配置的??词睾镒油ㄟ^對某個資源應用一組規(guī)則,確定它是否應當成為被清理的候選者。如果任何規(guī)則確定某資源是被清理的候選者,看守猴子就對此資源做標記,并安排時間去清理它。特殊情況下,當你想要把未使用的資源保留更長的時間,在看守猴子刪除資源前,資源的所有者將在清理時間前幾天收到通知,天數(shù)是可配置的。
符合猴子是一種在 AWS云中運行的服務,它尋找不符合最佳做法的預定義規(guī)則的實例。它可以擴展來用于其他云提供商和云資源。這個服務的時間表是可配置的。如果確定該實例不符合任何一條規(guī)則,猴子就向?qū)嵗乃姓甙l(fā)送電子郵件通知??赡茉谟械睦馇闆r下,對于某些應用程序要忽略關(guān)于符合特定規(guī)則的警告。
安全猴子監(jiān)控策略的更改并對某個 AWS賬戶上沒有安全感的配置進行提醒。安全猴子的主要目的是保證安全性,但它也是用于跟蹤潛在問題的有用工具,因為它本質(zhì)上是一個更改跟蹤系統(tǒng)。
成功的微服務架構(gòu)可以確保你的系統(tǒng)始終是運行的,并且單個云組件失敗不會停止整個系統(tǒng)。Simian Army使用許多服務來實現(xiàn)高可用性。
在云環(huán)境中,沒有什么是靜態(tài)的。例如,虛擬宿主機實例經(jīng)常發(fā)生變化,通常情況下, IP地址可以由各種應用程序重復使用,防火墻或相關(guān)的變化也可能發(fā)生。
Edda是跟蹤這些動態(tài)的 AWS資源的服務。 Netflix將其命名為 Edda(即北歐神話故事),它記錄云管理和部署的故事。Edda使用 AWS API輪詢 AWS資源并記錄結(jié)果。這些記錄允許搜索和查看云已經(jīng)隨著時間的推移發(fā)生了哪些變化。例如,如果任何 API服務器的主機正在造成任何問題,你需要找出此主機是什么,哪支團隊要為它負責。
它提供了這些功能:
動態(tài)查詢:Edda提供 REST API,并且它支持矩陣參數(shù)并提供讓你僅檢索所需的數(shù)據(jù)的字段選擇器。
歷史的變化:Edda維護所有
AWS資源的歷史記錄。此信息可幫助你分析資源中斷的原因和影響。Edda還可以提供有關(guān)資源的當前和歷史信息的不同視圖。在撰寫本文時,它在MongoDB中存儲信息。
配置:Edda支持多個配置選項。一般情況下,可以從多個賬戶和多個區(qū)域輪詢信息,還可以使用賬戶的組合和這些賬戶指向的區(qū)域。同樣的,它提供AWS、Crawler、 Elector和 MongoDB的不同配置。
如果采用 AWS來承載基于微服務的產(chǎn)品,那么 Edda可用于對 AWS資源進行監(jiān)控。
Vector是一個靜態(tài)的 web應用程序,在 web瀏覽器內(nèi)運行。它可以用來監(jiān)控安裝了 Performance Co-Pilot(PCP)的主機的性能。Vector支持 PCP 3.10及以上版本。PCP收集各種指標并提供給 Vector。
它根據(jù)需要提供高分辨率的正確指標。這可以幫助工程師了解系統(tǒng)的行為和正確地解決性能問題。
可幫助你監(jiān)控遠程主機的性能監(jiān)控工具。
Archaius是一個分布式的配置管理工具,它允許你執(zhí)行以下操作:
使用動態(tài)和類型化的屬性。
執(zhí)行線程安全的配置操作。
使用輪詢框架檢查屬性更改。
在有序的層次結(jié)構(gòu)的配置中使用回調(diào)機制。
使用 JConsole檢查屬性并對其執(zhí)行操作,因為 Archaius提供了JMX MBean。
當你有一個基于微服務的產(chǎn)品時,需要有一個良好的配置管理工具。Archaius可以幫助在一個分布式的環(huán)境中配置不同類型的屬性。
Fenzo是用 Java編寫的用于 Apache Mesos框架的一個調(diào)度程序庫。 Apache Mesos框架查找匹配的資源,并將其配到掛起的任務上。其主要特點如下:
支持長時間運行的服務風格的任務和批處理。
可以基于資源需求自動縮放執(zhí)行主機集群。
支持插件,可以基于需求創(chuàng)建它們。
可以監(jiān)控資源分配的故障,允許調(diào)試故障根源。
Ice從成本和使用的角度提供云資源的全景圖。它提供調(diào)配云資源分配到不同團隊的最新信息,為云計算資源的最優(yōu)利用增加價值。
Ice是一個圣杯項目。用戶與 Ice UI組件交互,后者顯示通過 Ice閱讀器組件發(fā)送的信息。閱讀器從 Ice處理器組件所生成的數(shù)據(jù)中提取信息。 Ice處理器組件從詳細的云計費文件中讀取數(shù)據(jù)信息,并將它轉(zhuǎn)換成 Ice閱讀器組件可讀的數(shù)據(jù)。
除了Security Monkey,Netflix開放源碼軟件也使用 Scumblr和完全集成的防御操作(Fully Integrated Defense Operation,F(xiàn)IDO)工具。
為了跟蹤你的微服務,并保護它不受經(jīng)常的威脅和攻擊,你需要以自動化的方式來對你的微服務進行保護和監(jiān)控。Netflix Scumblr和FIDO為你做這份工作。
Scumblr是一個基于 Ruby on Rails的 web應用程序,它允許你執(zhí)行定期搜索并對識別的結(jié)果執(zhí)行存儲/采取行動?;旧?,它會利用全互聯(lián)網(wǎng)有針對性的搜索來收集情報,從而揭露特定安全問題用于調(diào)查。
Scumblr利用可以流程化的寶貴信息,允許對不同類型的結(jié)果設置靈活的工作流。 Scumblr利用稱為 Search Providers(搜索提供程序)的插件進行搜索,它會檢查類似以下的異常。因為它是可擴展的,可以根據(jù)需要添加任意多的檢查項目:
泄露的憑據(jù)
黑客漏洞/討論
攻擊討論
社交媒體上的安全相關(guān)討論
FIDO是一種安全業(yè)務流程框架,用于分析事件和自動化事件響應。它通過評價、評估和應對惡意軟件來使事件的響應過程變得自動化。FIDO的主要目的是處理評估來自當今安全棧的威脅和它們所生成的大量警報所需要的大量手動工作。
作為業(yè)務流程平臺,F(xiàn)IDO通過大幅減少檢測、通知和應對網(wǎng)絡攻擊所需要的手動工作,可以更高效、更準確地使用現(xiàn)有的安全工具。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java微服務框架和工具有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
當前題目:Java微服務框架和工具有哪些-創(chuàng)新互聯(lián)
文章鏈接:http://chinadenli.net/article36/desdsg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站策劃、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設、小程序開發(fā)、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)