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