更新時間:2022-04-18 09:53:53 來源:動力節點 瀏覽4995次
Spring Boot 是用于編寫微服務的流行 Java 框架。它提供了 Spring Cloud 下的各種擴展項目來構建全棧微服務。Spring Boot 允許通過從許多協作組件開始簡單的架構來構建大規模系統。它可用于構建小型和大型系統。由于控制反轉,Spring boot 很容易與其他流行的框架集成。
數據管理——Spring 有各種模塊可以輕松地與流行的數據庫集成。Spring JDBC、Spring JPA、Spring MongoDB、Spring Apache Cassandra 是少數擴展。
處理失敗的策略——Spring boot 可以很容易地與 Resilience4J 集成。它提供了各種功能來處理分布式系統中的故障。斷路器、重試、超時、速率限制器、后備處理程序、隔板等。
可觀察性——Spring Boot Actuator 功能強大,它提供健康檢查、查看日志、Metrix。
溝通方式——Spring具有構建反應式應用程序的能力。在 Spring MVC 的幫助下構建 rest API 非常容易。Spring 很容易與 MQ 集成以構建異步風格的服務。Spring 也有構建基于 SOAP 的應用程序的模塊。
中間層集成——借助各種模塊 Spring 提供抽象以與 Apache Kafka、任何 AMQP、RabbitMQ、ActiveMQ 集成
與工具集成— Consul、Prometheus、Jaeger、Grafana
云原生支持——易于在 Docker、Kubernetes、OpenTracing、Etcd、DevOps 上部署
安全性——Spring Security,對 OAuth2 的良好支持,會話管理,可以構建有狀態和無狀態服務。密鑰庫、網關模式
分布式配置管理——Spring Cloud Config
服務發現——客戶端、服務器端
性能— 捕獲支持、負載平衡、使用 Spring Cloud Cluster 進行集群
通信數據格式——JSON、XML
測試— Spring 測試模塊、Mocking、Profiling
學習曲線——模塊化易于學習
Eclipse 基金會的另一個流行的微服務服務框架。該框架支持多種語言。因此,如果任何組織都擁有 Java 和 Kotlin,那么 JavaScript 開發人員這個微服務框架應該是他們的理想選擇。Vertx 是一個用于構建在 JVM 上運行的反應式微服務的工具包。
Eclipse Vert.x 是事件驅動且非阻塞的。這意味著您的應用程序可以使用少量內核線程來處理大量并發。Vert.x 讓您的應用程序以最少的硬件擴展。
Vert.x 提供的一些很酷的功能
Vert.x 是輕量級的——Vert.x 核心大小約為 650kB。
Vert.x很快。這里有一些獨立的數字。
Vert.x不是應用服務器。沒有用于部署應用程序的單一 Vert.x 實例。您只需在任何您想運行的地方運行您的應用程序。
Vert.x 是模塊化的——當您需要更多位時,只需添加您需要的位,僅此而已。
Vert.x簡單但不簡單。Vert.x 允許您簡單地創建功能強大的應用程序。
Vert.x 是創建輕量級、高性能的微服務的理想選擇。
Vert.x 提供各種組件/庫來構建微服務應用程序。其中一些列在這里。
Vert.x 服務發現
該組件允許您發布、查找和綁定到任何類型的服務。
Vert.x 斷路器
該組件提供了 Vert.x 斷路器模式的實現
Vert.x Config
該組件提供了一種可擴展的方式來配置 Vert.x 應用程序。
集群和可擴展性
Vert.x 支持開箱即用的集群和 HA。集群組管理在可插拔的集群管理器中實現。默認集群管理器使用 Hazelcast。但是你也有像 Apache Zookeeper、Ignite 這樣的選項。
可觀察
性 Vert.x 健康檢查組件提供了一種公開健康檢查的簡單方法。運行狀況檢查用于以非常簡單的術語表達應用程序的當前狀態:UP 或 DOWN。健康檢查可以單獨使用,也可以與 Vert.x Web 或事件總線結合使用。
測試
Vertx 單元旨在使用多語言 API 編寫異步單元測試并在 JVM 中運行這些測試。Vertx Unit Api 借鑒了 JUnit 或 QUnit 等現有測試框架,并遵循 Vert.x 實踐。
gRPC 支持
Vert.x gRPC 是一個模塊,它將 Google gRPC 的編程風格與 Vert.x 風格保持一致。
服務代理
當您編寫一個 Vert.x 應用程序時,您可能希望在某處隔離一個功能并使其可供應用程序的其余部分使用。這是服務代理的主要目的。它允許您在事件總線上公開服務,因此,任何其他 Vert.x 組件都可以使用它。
Devops
Vert.x 提供了各種組件來讓您的 Vert.x 應用程序在生產中運行時保持正常運行,例如 Micrometer、Dropwizard。
Vert.x 比 Spring boot 有一個很大的優勢,Vert.x 是 Polyglot。
Oracle 開發的 Helidon 微服務框架。Helidon 是一組用于編寫微服務的 Java 庫。有兩種變體,Helidon MP 和 Helidon SE。如果我們將 Helidon 與 Spring Boot 進行比較,Spring Boot 執行了許多功能。Helidon 是相當新的,目前沒有很多可用的文檔,有時很難在 stackoverflow 上找到解決方案。
Helidon MP 是 MicroProfile 規范的實現。這使它成為 Java EE 開發人員的不錯選擇。
Helidon SE 是一個緊湊的工具包,包含最新的 Java SE 功能:反應式流、異步和函數式編程,以及流式 API。Helidon SE 支持GraalVM 原生鏡像,可實現小尺寸和輕快的快速啟動。Helidon SE 的 REST 框架是 Helidon WebServer。它建立在 Netty 之上,并使用直接的請求路由 API。
這些是構建微服務應用程序的幾個 Helidon MP 功能
云原生
Helidon 庫與來自云原生空間的流行工具互操作:
Docker和 Kubernetes
普羅米修斯, OpenTracing和Etcd
gRPC Support
Helidon gRPC Server 提供了一個用于創建 gRPC 應用程序的框架。
分布式配置管理
配置組件提供了一個 Java API 以將鍵/值形式的配置屬性加載和處理到一個配置對象中,應用程序可以使用該對象來檢索配置數據。
運行狀況檢查和跟蹤
運行狀況檢查以公開由外部工具(例如 Kubernetes 等協調器)定期收集的運行狀況。Helidon 支持通過 OpenTracing API 進行跟蹤。跟蹤與 WebServer、gRPC 服務器和安全性集成。
安全
支持認證、授權和審計。
Go Micro 是一個基于 RPC 的可插拔庫,它提供了在 Go 中編寫微服務的基本構建塊。它使用 consul 實現服務發現、通過 http 進行通信以及使用 proto-rpc 或 json-rpc、Pub/Sub 進行編碼。
Go Micro 解決了構建可擴展系統的關鍵要求。它采用微服務架構模式并將其轉換為一組充當平臺構建塊的工具。Micro 處理分布式系統的復雜性,并提供開發人員已經理解的簡單抽象。
技術在不斷發展。基礎設施堆棧總是在變化。Micro 是一個解決這些問題的可插拔工具包。插入任何堆棧或底層技術。使用 micro 構建面向未來的系統。
特征
運行時由以下功能組成:
API 網關:微 api 通過發現和可插入處理程序提供強大的路由,以服務于 http、grpc、websockets、發布事件等。
交互式 CLI: CLI 為您提供了您希望了解微服務正在發生什么的所有命令。
Service Proxy:基于Go Micro和MUCP協議構建的透明代理。將服務發現、負載平衡、消息編碼、中間件、傳輸和代理插件卸載到一個位置。獨立運行或與您的服務一起運行。
服務模板:生成新的服務模板以快速入門。Micro 提供了用于編寫微服務的預定義模板。始終以相同的方式開始,構建相同的服務以提高生產力。
SlackOps Bot:在您的平臺上運行的機器人,可讓您從 Slack 本身管理您的應用程序。微型機器人支持 ChatOps,并讓您能夠通過消息傳遞與您的團隊一起做任何事情。
Web 儀表板: Web 儀表板允許您探索您的服務、描述它們的端點、請求和響應格式,甚至直接查詢它們。
Molecular 是一個有趣的微服務框架。隨著 NodeJS 越來越流行,如果您是 JavaScript 開發人員,這個框架是最好的選擇。Moleculer 是一個快速、現代且功能強大的 NodeJS 微服務框架。它可以幫助您構建高效、可靠和可擴展的服務。
幾個主要特點
支持具有平衡的事件驅動架構
內置服務注冊和動態服務發現
負載平衡的請求和事件(循環、隨機、cpu 使用、延遲、分片)
許多容錯功能(斷路器、隔板、重試、超時、回退)
內置緩存解決方案(Memory、MemoryLRU、Redis)
可插拔記錄器(Console、File、Pino、Bunyan、Winston、Debug、Datadog、Log4js)
內置記者指標功能
導出器的內置跟蹤功能(Console、Datadog、Event、Jaeger、Zipkin)
這個框架非常新,非常適合 Kubernetes 愛好者。Quarkus 是 Red Hat 的云原生容器優先框架,用于編寫 Java 應用程序。Quarkus 是為 GraalVM 和 HotSpot 量身定制的 Kubernetes 原生 Java 框架,采用同類最佳的 Java 庫和標準制作而成。Quarkus 的目標是使 Java 成為 Kubernetes 和無服務器環境中的領先平臺,同時為開發人員提供統一的反應式和命令式編程模型,以優化處理更廣泛的分布式應用程序架構。
Micronaut 是一個現代的、基于 JVM 的全棧微服務框架,旨在構建模塊化、易于測試的微服務應用程序。
Micronaut 由 Grails 框架的創建者開發,并從多年來使用 Spring、Spring Boot 和 Grails 構建從單體應用程序到微服務的實際應用程序的經驗教訓中汲取靈感。
Micronaut 旨在提供構建功能齊全的微服務應用程序所需的所有工具,包括:
依賴注入和控制反轉(IoC)
合理的默認值和自動配置
配置與配置共享
服務發現
HTTP 路由
具有客戶端負載平衡的 HTTP 客戶端
同時,Micronaut 旨在通過提供以下功能來避免 Spring、Spring Boot 和 Grails 等框架的缺點:
快速啟動時間
減少內存占用
最少使用反射
最少使用代理
簡單的單元測試
Lagom 是一個開源框架,用于在 Java 或 Scala 中構建反應式微服務系統。Lagom 建立在Akka和Play的基礎上,這些經過驗證的技術已在當今一些最苛刻的應用程序中投入使用。
Lagom 的集成開發環境使您可以專注于解決業務問題,而不是將服務連接在一起。一個命令即可構建項目,開始支持組件和您的微服務,以及 Lagom 基礎設施。當它檢測到對源代碼的更改時,構建會熱重新加載。
使用 Lagom 創建的大小合適的服務能夠:
更好地定義開發職責——提高敏捷性
更頻繁的發布,風險更小——以縮短上市時間
具有反應特性的系統:響應性、彈性、可擴展性和彈性——充分利用現代計算環境并滿足苛刻的用戶期望
Axon 提供了一種統一、高效的 Java 應用程序開發方式,無需從單體架構到事件驅動微服務的重大重構即可發展。
Axon 包括一個編程模型和專門的基礎設施,為編程模型提供企業就緒的運營支持——尤其是用于擴展和分發關鍵任務業務應用程序。編程模型由流行的 Axon Framework 提供,而 Axon Server 是 Axon 的基礎設施部分,全部開源。
Axon Framework 是一個 Java 微服務框架,可幫助您構建符合領域驅動設計 (DDD) 原則的微服務架構。
除了 DDD,Axon 框架還允許您實現微服務模式,例如命令-查詢-責任-分離 (CQRS) 和事件驅動架構。
Axon 已準備好滿足最苛刻的企業需求,例如最有效地擴展事件存儲、安全性、集群、負載平衡、服務發現、全球分布式數據中心、第三方集成、指標和監控。
Ballerina 不是一個框架,它是一種用于編寫分布式應用程序的分布式編程語言。它是從頭開始構建的,用于編寫解耦的服務。編寫網絡應用程序非常容易。Ballerina 是一種開源編程語言和平臺,供云時代應用程序程序員輕松編寫有效的軟件。
還有更多的特性,比如線程、流、安全和對微服務的原生支持,我在這里沒有提到。
總體而言,芭蕾舞女演員提供:
專門用于消費和提供網絡服務的語言結構。
與序列圖密切對應的并發和網絡交互的抽象和語法,可實現 Ballerina 源代碼在文本和圖形表示之間的雙向映射。
一種結構類型系統,它比傳統的靜態類型語言更靈活并且允許更松散的耦合。
設計以適應現代開發生命周期,包括使用持續集成和持續交付 (CI/CD) 工具,例如 Jenkins、Travis 和 Codefresh;可觀察性工具,例如 Prometheus、Zipkin 和 Honeycomb;以及 Kubernetes 等云編排系統。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習