Spring Boot微服務是一種安全的SOA
微服務是面向服務架構(SOA)的變體,使用各種相互依賴的模組來標識它們之間的相互關係,並可衡量每個模組之間的松耦合程度。
基於微服務的架構主要關注:
- 自然地強制執行模組化結構。
- 適用於持續交付軟體開發過程。
- 對應用程式的一小部分進行更改只需要重建和重新部署一個或少量服務
- 堅持諸如此類的原則
- 細粒度介面(可獨立部署的服務)
- 業務驅動的開發(例如域驅動設計)
- 雲應用程式架構
- 多語言程式設計和永續性
- 輕量級容器部署
- 分散的持續交付
- DevOps提供全面的服務監控
將單個App開發為一套小型服務,每個小型服務都在自己的流程中執行,並與輕量級機制(通常是HTTP資源API)進行通訊。這些服務圍繞業務功能構建,可透過全自動部署機制獨立部署。這些服務至少集中管理,可以用不同的程式語言編寫,並使用不同的資料儲存技術。
微服務的優點包括
- 新技術和流程適應變得更加容易。您可以使用我們建立的新微服務來嘗試新技術。
- 更快的釋出週期。
- 可擴充套件到雲。
應用和團隊的兩個方面的功能分解是構建成功的微服務架構的關鍵。這樣才能實現松耦合(REST介面)和高內聚(多個服務可以相互組合以定義更高階別的服務或應用程式)。功能分解提供了敏捷性,靈活性,可伸縮性和其他功能,但業務目標仍然是建立應用程式。
聚合器微服務設計模式
第一種,也許是最常見的是聚合器微服務設計模式。在最簡單的形式中,聚合器可能就是一個簡單的網頁,它呼叫多個服務來實現應用程式所需的功能。由於使用輕量級REST機制公開了每個服務(服務A,服務B和服務C),因此網頁可以檢索資料並相應地處理/顯示資料。
代理微服務設計模式
代理微服務設計模式是聚合器的變體。在這種情況下,不需要在客戶端上進行聚合,但可以根據業務需要呼叫不同的微服務。
鏈式微服務設計模式
鏈式微服務設計模式對請求產生單個合併響應。在這種情況下,來自客戶端的請求由服務A接收,服務A然後與服務B通訊,服務B又可以與服務C通訊。所有服務可能使用同步HTTP請求/響應訊息傳遞。
共享資料微服務設計模式
微服務的設計原則之一是自治。這意味著該服務是全棧並且可以控制所有元件 - UI,中介軟體,永續性,事務。這允許服務是多語言,並使用正確的工具來完成正確的工作。例如,如果可以使用NoSQL資料儲存,則更合適,在SQL資料庫中會干擾資料獨立性。
在這種設計模式中,一些在鏈條中的微服務可能共享快取和資料庫儲存。這隻有在兩個服務之間存在強耦合時才有意義。有些人可能認為這是一種反模式,但在某些情況下可能需要業務需求來遵循這一點。對於基於微服務設計的綠地應用來說,這肯定是一種反模式。
非同步訊息微服務設計模式
雖然REST設計模式非常普遍,並且很好理解,但它具有同步的限制,因此阻塞。可以實現非同步,但這是以特定於應用程式的方式完成的。由於這一點,一些微服務架構可能會選擇使用訊息佇列而不是REST請求/響應。
Spring Boot :
Spring Boot是一個旨在簡化新服務建立的框架。對於最簡單的用例,所需的庫已經捆綁在所謂的Spring starter配件組合和版本中。我們不必將應用程式部署到應用伺服器中,而是獨立執行我們的應用程式或在Docker容器中執行,因為應用已經包含伺服器。Spring Boot可用於設定基於REST的微服務。
Spring Boot針對大多數用例簡化了構建基於Java的微服務。與Dropwizard等框架不同,它更易於使用,並提供更豐富的功能集。Spring Boot提供了大量額外的庫和整合,如Ribbon,Zuul,Hystrix,與MongoDB,Redis,GemFire,Elasticsearch,Cassandra或Hazelcast等資料庫的整合。
藉助Maven和Gradle,Java開發人員可以支援功能強大且受到廣泛支援的構建系統,這些構建系統比Play Framework等框架的專用構建系統更常見,更易於整合到現有結構中。與傳統的Web應用程式相比,Spring Boot很精簡。對於大多數專案,向專案新增依賴項足以從頭開始獲得良好專案起步,無需調整預設配置。
相關文章
- Soa: 一個輕量級的微服務庫微服務
- 面試官靈魂三問:什麼是SOA?什麼是微服務?SOA和微服務有什麼區別?面試微服務
- Spring Boot十種安全措施Spring Boot
- SOA架構和微服務架構的區別是什麼?架構微服務
- 利用Spring Boot實現微服務的配置中心Spring Boot微服務
- 一起玩轉微服務(10)——spring boot介紹微服務Spring Boot
- 一文秒懂Restful、SOAP、RPC、SOA、微服務的區別RESTRPC微服務
- spring cloud + spring boot + springmvc+mybatis微服務雲架構CloudSpring BootSpringMVCMyBatis微服務架構
- Spring Cloud Spring Boot mybatis分散式微服務雲架構CloudSpring BootMyBatis分散式微服務架構
- 構建Spring Boot應用的微服務服務動態路由Spring Boot微服務路由
- 利用Spring Boot實現微服務的鏈路追蹤Spring Boot微服務
- Trampoline視覺化監控你的Spring Boot微服務視覺化Spring Boot微服務
- IBM觀點:SOA與微服務區別?IBM微服務
- SOA架構和微服務架構的區別架構微服務
- 在國外是如何用Spring Boot、Spring Cloud、Docker實現微服務系統架構Spring BootCloudDocker微服務架構
- Spring Cloud實戰系列(八) - 微服務監控Spring Boot AdminCloud微服務Spring Boot
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- 構建Spring Boot應用的微服務服務監控與告警Spring Boot微服務
- 使用Kafka Streams和Spring Boot微服務中的分散式事務 - PiotrKafkaSpring Boot微服務分散式
- Spring Boot的微服務分散聚集模式教程與原始碼 - vinsguruSpring Boot微服務模式原始碼
- 利用Spring Boot實現微服務的API閘道器統一日誌Spring Boot微服務API
- 基於Istio/gRPC/Redis/BigQuery/Spring Boot/Spring Cloud和Stackdriver的微服務案例RPCRedisSpring BootCloud微服務
- Serverless與微服務探索(一)- 如何用serverless實踐Spring boot專案Server微服務Spring Boot
- 叢集、分散式、SOA、微服務、webService等思想的整理分散式微服務Web
- spring cloud + spring boot + springmvc+mybatis分散式微服務雲架構CloudSpring BootSpringMVCMyBatis分散式微服務架構
- Spring Boot 切面的一種的測試方法Spring Boot
- Spring Boot 實現定時任務的 4 種方式Spring Boot
- 利用Spring Boot實現微服務的API閘道器統一限流與熔斷Spring Boot微服務API
- Spring Boot實現DDD的貨運Cargo微服務案例原始碼Spring BootCargo微服務原始碼
- Spring Boot微服務中的十二因子方法論(12Factor) - BaeldungSpring Boot微服務
- 使用Spring Boot實現微服務架構的開源專案Spring Boot微服務架構
- 微服務架構 spring boot 那些最基礎的知識點微服務架構Spring Boot
- 微服務下 Spring Boot Maven 工程依賴關係管理微服務Spring BootMaven
- 微服務架構(一):什麼是微服務微服務架構
- 在spring boot中整合微服務閘道器係統Spring Cloud ZuulSpring Boot微服務CloudZuul
- 「萌新指南」SOA vs. 微服務:What’s the Difference?微服務
- 在微服務中引入ESB使SOA重獲新生微服務
- 9、Spring Boot安全Spring Boot