SpringCloud概述

目錄

一、概念

1.1 微服務架構

1.2 SpringCloud概念

1.3 核心價值

1.4 能力邊界

1.5 微服務總體架構圖

二、生態圈

2.1 不同生態圈組件對比

2.2 組件介紹

2.2.1 服務發現與注冊

2.2.2 配置管理

2.2.3 API網關

2.2.4?容錯與熔斷

2.2.5?客戶端負載均衡

2.2.6?服務調用

2.2.7?消息驅動

2.2.8?分布式追蹤

2.2.9?分布式事務

2.3 技術選型建議

2.4 拓展:Service Mesh


一、概念

1.1 微服務架構

核心思想:將大型應用拆分為一系列小型、自治的服務。

單體架構到微服務架構的演進:

階段核心特征優勢挑戰與劣勢適用場景
1. 單體架構
(Monolithic)
- 所有功能模塊(如UI、業務邏輯、數據訪問)打包在一個應用程序中。
- 通常使用單一技術棧和單一數據庫。
- 部署時作為一個整體單元進行部署和擴展。
-?開發簡單:項目初期,結構簡單,易于開發、測試和部署。
-?部署簡單:只需打包和部署一個WAR/JAR文件。
-?性能可能更優:本地方法調用,無網絡開銷。
-?維護成本高:代碼庫龐大,耦合嚴重,難以理解和修改。
-?技術棧僵化:難以引入新的框架或語言。
-?擴展性差:無法按需縮放特定功能,必須整體擴展,成本高。
-?發布周期長:一個小的修改需要重新部署整個應用,風險高。
-?可靠性差:一個模塊的Bug可能導致整個系統崩潰。
- 項目初期,業務簡單,團隊規模小。
- 需要快速驗證想法(MVP)。
- 內部工具或小型應用。
2. 垂直架構
(也稱“煙囪式架構”)
- 將一個大單體按業務/功能拆分成多個獨立的、不互聯的單體應用。
- 每個應用都包含自己的前端、后端和數據庫。
-?一定程度上解決了擴展性問題:可以針對訪問量大的應用單獨進行擴展。
-?技術選型更靈活:不同的應用可以采用不同的技術棧。
-?團隊可拆分:不同的團隊可以負責不同的應用。
-?數據孤島:應用之間數據不互通,難以進行關聯業務處理。
-?大量重復代碼:每個應用都需要實現用戶管理、登錄等通用功能,重復造輪子。
-?資源浪費:每個應用都需要獨立的服務器資源。
- 業務線之間關聯度極低的場景(如公司內部HR系統和外部官網)。
- 作為從單體向分布式架構演進的過渡階段。
3. SOA架構
(面向服務架構)
- 將應用拆分為可重用的、松耦合的服務,通過ESB(企業服務總線)?進行集成和通信。
- 強調服務復用集成
-?系統集成能力強:ESB作為中樞,能有效集成不同來源的異構系統。
-?服務可復用:通用功能(如用戶服務)可以被多個系統調用,避免重復開發。
-?松耦合:服務之間通過ESB交互,依賴關系減弱。
-?ESB可能成為性能和單點故障的瓶頸:所有通信都經過ESB,使其變得臃腫且復雜。
-?架構重量級:通常需要復雜的標準(如SOAP/WS-*)和昂貴的商業軟件。
-?部署和管理復雜
- 大型企業需要整合大量遺留系統(Legacy Systems)。
- 需要實現跨部門、跨技術的復雜業務集成。
4. 微服務架構
(Microservices)
-?徹底的組件化與服務化:業務被拆分為一組小而自治的服務。
-?去中心化:輕量級通信(如HTTP/REST, gRPC),智能端點與啞管道,無需ESB。
-?每個服務擁有獨立的數據存儲,并可獨立部署和擴展。
-?基礎設施自動化(CI/CD、容器化、DevOps文化)。
-?高可擴展性:每個服務可按需獨立伸縮。
-?技術多樣性:每個服務可用最合適的技術棧實現。
-?高可靠性:一個服務故障不會導致整個系統癱瘓。
-?敏捷開發:小團隊可獨立開發、部署和迭代自己的服務,交付速度更快。
-?易于理解和維護:每個服務功能單一,代碼庫小。
-?分布式系統復雜性:需要處理網絡延遲、故障容錯、分布式事務等難題。
-?運維 overhead 高:需要強大的CI/CD、監控、日志聚合和服務治理能力。
-?數據一致性挑戰:需要最終一致性模式,而非強一致性。
-?接口調整和測試更復雜:服務間API的變更需要謹慎管理。
- 大型復雜應用,需要快速迭代和頻繁交付。
- 團隊規模較大,需要獨立開發和部署能力。
- 業務場景復雜,需要不同的技術棧支持。

微服務的優點:技術異構、彈性、獨立部署、可擴展性

微服務的挑戰:分布式復雜性、網絡延遲、數據一致性、運維成本

1.2 SpringCloud概念

Spring Cloud 是一個基于 Spring Boot 的微服務架構開發工具集,它為分布式系統(如配置管理、服務發現、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、領導選舉、分布式會話和集群狀態)的開發提供了一套全面的解決方案。

簡單來說,Spring Boot 讓你能快速開發一個單體應用,而 Spring Cloud 則幫你將多個單體應用(微服務)?有機地整合和管理起來,構建成一個健壯、彈性的分布式系統。

核心理念:

  • 約定優于配置:它提供了默認的、開箱即用的配置,大大減少了搭建分布式系統所需的基礎工作量。

  • 集成與封裝:它并沒有重復造輪子,而是將 Netflix、HashiCorp 等公司久經考驗的成熟服務治理組件(如 Eureka, Hystrix, Zuul 等)通過 Spring Boot 的風格進行封裝和集成,提供了統一、簡單的編程模型。

  • 一站式解決方案:它提供了一整套微服務架構的解決方案,涵蓋了服務治理的方方面面。

1.3 核心價值

Spring Cloud 的核心價值在于它提供了一套快速構建分布式系統(尤其是微服務架構)中常見模式的工具集。它致力于簡化分布式系統基礎設施的開發,讓開發者可以專注于業務邏輯,而無需花費大量精力去搭建和集成那些復雜的基礎設施組件。

主要解決了以下四大類問題:

  • 服務治理與發現 (Service Discovery & Registration)

    • 問題:?在微服務架構中,服務實例是動態變化的(擴縮容、故障、更新),客戶端如何準確地找到所需服務的可用實例?

    • 解決:?提供了服務注冊中心(如 Eureka、Consul、Zookeeper 集成),服務啟動時向注冊中心注冊自己的元數據(如IP、端口、服務名),消費者通過注冊中心發現服務實例列表,并結合客戶端負載均衡器(如 Ribbon)進行調用。

  • 分布式配置管理 (Distributed Configuration)

    • 問題:?成百上千個微服務,每個都有大量配置(如數據庫連接、第三方API密鑰、業務參數),如何實現集中化、動態化的管理?修改配置后如何避免逐個服務重啟?

    • 解決:?提供了 Spring Cloud Config,將配置存儲在 Git、SVN 等版本庫中。客戶端在啟動時或通過 Webhook 動態地從配置服務器拉取配置,實現配置的集中管理和動態刷新。

  • 服務的容錯與保護 (Resilience & Fault Tolerance)

    • 問題:?在分布式環境中,服務調用失敗是常態(網絡波動、服務超載、宕機)。如何防止一個服務的故障導致整個系統雪崩?如何實現快速失敗、服務降級和自動恢復?

    • 解決:?提供了?Spring Cloud Circuit Breaker(抽象層,支持 Hystrix、Resilience4j 等實現)來實現熔斷器模式,以及?Spring Cloud Gateway?/?Zuul?集成這些功能來實現限流、熔斷和降級。

  • 智能路由與API網關 (Intelligent Routing & API Gateway)

    • 問題:?所有服務直接對外暴露,客戶端需要知道所有服務的地址,這帶來了復雜性、安全性和耦合性問題。如何為外部客戶端提供一個統一的入口,并處理跨切面關注點(如認證、鑒權、監控、路由)?

    • 解決:?提供了?Spring Cloud Gateway(新一代)和?Netflix Zuul(老一代),作為API網關,負責請求路由、組合、協議轉換、安全認證、流量控制等。

其他交叉關注點 (Other Cross-Cutting Concerns):

  • 分布式跟蹤 (Tracing):?集成 Sleuth 和 Zipkin,為請求分配唯一ID,跟蹤一個請求在分布式系統中的完整路徑,用于性能分析和故障排查。

  • 客戶端負載均衡 (Client-side Load Balancing):?通過 Ribbon 或 Spring Cloud LoadBalancer,在客戶端實現軟負載均衡,從服務列表中選擇合適的實例進行調用。

  • 消息驅動 (Messaging):?通過 Spring Cloud Stream 抽象,簡化消息中間件(如 Kafka, RabbitMQ)的使用。

1.4 能力邊界

  • 它是一個開發工具框架,而非運行時平臺:

    • Spring Cloud 幫助你開發微服務應用,但它本身不負責這些應用的部署、調度和管理。這是?Kubernetes (K8s)?等容器編排平臺的核心領域。你可以將用 Spring Cloud 開發的應用打包成 Docker 鏡像,然后在 K8s 上運行。

  • 服務網格 (Service Mesh) 的崛起:

    • Spring Cloud 將很多分布式能力(如服務發現、負載均衡、熔斷)以?SDK(庫)?的形式嵌入到每個應用程序中。這帶來了侵入性、升級困難、多語言支持差等問題。

    • 服務網格(如 Istio, Linkerd)?通過?Sidecar 模式(如 Envoy 代理)將這些能力從應用中剝離,作為基礎設施層統一處理,實現了與業務代碼的完全解耦、無侵入性和對多語言的完美支持。Spring Cloud 的很多功能正逐漸被 Service Mesh 所替代或補充。

  • 并非所有微服務問題都能解決:

    • 數據一致性:?Spring Cloud 提供了分布式事務的集成(如通過 Seata),但分布式事務本身極其復雜,框架只能提供工具,最終方案需要根據業務場景精心設計(如 Saga 模式)。

    • 安全性:?雖然提供了與 Spring Security 和 OAuth2 的集成,但復雜的身份認證和授權體系仍需自行設計和實現。

    • 監控與告警:?提供了與監控系統的集成(如 Micrometer),但完整的監控、告警、日志分析平臺需要依靠 Prometheus、Grafana、ELK 等專業工具。

1.5 微服務總體架構圖

二、生態圈

2.1 不同生態圈組件對比

功能類別Spring Cloud Netflix (第一代, 已停止功能更新)Spring Cloud Alibaba (中國主流, 活躍)Spring Cloud Official (新一代, 趨勢)服務網格 (Service Mesh - 下一代趨勢)
服務注冊與發現Eureka?(AP系統)Nacos?(AP/CP切換)Consul?(CP系統) /?ZookeeperIstio (Pilot)?/?Linkerd
客戶端負載均衡Ribbon?(已進入維護模式)Ribbon?/?Nacos LBSpring Cloud LoadBalancer?(官方新推薦)Envoy (Sidecar)
API 網關Zuul 1.x?(阻塞IO,性能一般)Spring Cloud Gateway?(官方組件)Spring Cloud Gateway?(非阻塞,WebFlux,性能強)Istio (Ingress Gateway)
熔斷器/容錯Hystrix?(已停止更新)Sentinel?(功能豐富,流量控制、熔斷、系統保護)Spring Cloud Circuit Breaker?(抽象層,支持?Resilience4j)Envoy (內置)?/?Istio (故障注入)
配置中心Spring Cloud Config?(需配合 Bus 刷新)Nacos?(配置管理+服務發現二合一,動態刷新更簡單)Spring Cloud Config通常不直接解決此問題,可與原有配置中心共存
分布式跟蹤Sleuth + ZipkinSleuth + Zipkin?/?SkyWalking?(國產優秀APM)Sleuth + ZipkinIstio (Jaeger集成)?/?鏈路追蹤是核心能力
消息驅動-Spring Cloud Stream?+ RocketMQSpring Cloud Stream?(抽象層,支持 Kafka, RabbitMQ)不直接解決
認證授權Spring Security OAuth2Spring Security OAuth2Spring Security OAuth2Istio (Citadel)?提供服務間mTLS認證

生態選擇建議:

  • 新項目/技術選型:?強烈推薦?Spring Cloud Alibaba?或?Spring Cloud Official?的新一代組件(如 LoadBalancer, Gateway, CircuitBreaker)。它們更現代、性能更好、社區更活躍。

  • 老項目維護:?可能仍在使用?Spring Cloud Netflix?體系,需考慮逐步遷移。

  • 大規模、多語言、高要求集群:?考慮采用?Kubernetes + Service Mesh (Istio)?的方案。Spring Cloud 開發的微服務可以完美運行在 Service Mesh 環境中,兩者是互補而非替代關系。Spring Cloud 處理業務能力,Service Mesh 處理通信基礎設施。

2.2 組件介紹

2.2.1 服務發現與注冊

微服務實例的動態注冊和查找。

解決方案

  • Eureka?(Netflix):服務實例的動態注冊和發現。特點:AP架構,保證高可用。曾因其簡單易用而流行。已進入維護模式(2018年宣布),不再添加新功能。新項目不推薦使用

  • Nacos?(Alibaba):同時支持服務發現和分布式配置管理,是兩者的一體化解決方案。特點:支持AP和CP模式切換,具有動態權重調整、灰度發布、健康檢查等功能,性能較高(可達10萬+ QPS),并提供友好的控制臺。社區活躍,是當前國內Spring Cloud生態中的首選推薦之一

  • Consul:服務發現、配置管理,并提供強大的多數據中心能力和一致性協議。特點:CP設計,保證強一致性,與Docker等集成良好。穩定可靠,適合需要強一致性和多數據中心場景。

2.2.2 配置管理

實現分布式系統中配置的集中化和動態管理。

解決方案

  • Spring Cloud Config:提供分布式系統的外部配置支持。特點:配置信息可用Git、SVN等版本庫存儲,支持配置加密、解密。配合Spring Cloud Bus可實現配置的動態刷新。功能完善但略顯繁瑣(需自行集成Bus刷新),無開箱即用的可視化控制臺許多開發者轉向更現代化的替代品

  • Nacos Config:提供配置管理和服務發現的一體化解決方案。特點:支持配置的實時推送、版本管理、灰度發布、權限管理(1.2.0+)等,所有操作可通過控制臺完成。功能強大且易用,是當前非常流行的選擇

  • Apollo?(攜程):提供分布式配置的集中管理、熱發布、灰度發布等功能。特點:功能非常豐富,提供完善的權限管理、發布審核、灰度規則、客戶端配置監控等企業級特性。在企業級應用中非常受歡迎,尤其在配置管理要求精細復雜的場景

2.2.3 API網關

作為系統的統一入口,負責路由、過濾、鑒權、限流等。

解決方案

  • Zuul:API路由、過濾。特點:基于Servlet的阻塞IO模型,在高并發下性能一般1.x已停止發展,Zuul 2.x未大規模應用且前景不明。新項目強烈不推薦使用

  • Spring Cloud Gateway:提供一種簡單有效的方式來路由到API,并為它們提供橫切關注點,如:安全性,監控/指標和彈性。特點:基于?Spring WebFlux 響應式編程模型(非阻塞IO),性能更高,支持動態路由,完美集成Spring Cloud生態。Spring Cloud官方主力開發的網關,是目前絕對的主流和首選推薦

2.2.4?容錯與熔斷

防止分布式系統中的故障蔓延,提供服務降級、熔斷能力。

解決方案

  • Hystrix?(Netflix):通過斷路器模式實現服務容錯,防止服務雪崩。特點:提供了線程隔離、熔斷、降級等功能以及近實時的監控儀表盤(Hystrix Dashboard)。已進入維護模式(2018年宣布)。新項目不推薦使用

  • Resilience4j:輕量級的容錯庫,是Hystrix的現代化替代品。特點:輕量級、函數式編程,提供熔斷器、限頻器、重試、艙壁隔離(Bulkhead)等多種容錯機制,模塊化設計。社區活躍,是Spring Cloud官方推薦的容錯庫之一尤其適合函數式編程和響應式編程場景

  • Sentinel?(Alibaba):以流量為切入點,提供流量控制、熔斷降級、系統自適應保護等功能。特點:功能豐富,支持多種流控效果(預熱、排隊等),可視化控制臺非常強大,可以實時查看監控數據和管理規則。社區活躍,功能強大,在國內非常流行,是許多Java開發者的首選

2.2.5?客戶端負載均衡

將網絡請求分散到多個服務實例上。

解決方案

  • Ribbon?(Netflix):客戶端負載均衡。特點:集成于服務消費者一端,提供多種負載均衡算法(如輪詢、隨機、響應時間加權等)。已進入維護模式新項目不推薦直接使用

  • Spring Cloud LoadBalancer:為客戶端的服務間通信提供負載均衡,是Ribbon的替代品。特點:提供了更簡潔的 API 和響應式編程支持。是Spring Cloud當前默認的負載均衡器,推薦在新項目中使用

2.2.6?服務調用

聲明式的服務調用客戶端。

  • 解決方案

    • OpenFeign聲明式的REST客戶端,使編寫Web服務客戶端變得更簡單。特點:通過注解和接口定義即可實現服務調用,默認集成了Ribbon(未來是LoadBalancer)實現負載均衡,以及可集成Hystrix或Sentinel實現熔斷是目前進行HTTP服務調量的主流和推薦方式

2.2.7?消息驅動

通過統一抽象層簡化消息中間件的使用,實現應用與消息中間件的解耦。

解決方案

  • Spring Cloud Stream:簡化消息中間件(如Kafka, RabbitMQ)的使用,提供統一的編程模型,實現應用與具體消息中間件的解耦。特點:通過Binder抽象連接不同中間件,支持發布-訂閱、消費者組、消息分區等模式。在需要消息驅動的場景中依然是Spring Cloud生態內的標準解決方案

2.2.8?分布式追蹤

追蹤一個請求在分布式系統中的完整路徑,用于性能分析和故障排查。

解決方案

  • Spring Cloud Sleuth + Zipkin提供了在分布式系統中追蹤請求的解決方案,可視化展示調用鏈路。特點:Sleuth負責在日志中生成追蹤ID和跨度ID,Zipkin負責存儲和展示這些追蹤數據。功能成熟,是Spring Cloud中實現分布式追蹤的經典組合。此外,SkyWalking(國產優秀APM)也是一個功能非常強大的替代或增強方案,提供更豐富的指標監控和可視化功能。

2.2.9?分布式事務

在微服務架構中處理跨服務的數據一致性。

解決方案

  • Seata?(Alibaba):高性能的分布式事務解決方案。特點:提供了AT、TCC、SAGA和XA等多種事務模式,以應對不同的業務場景。是Java微服務生態中處理分布式事務的事實標準之一,社區活躍,廣泛應用

2.3 技術選型建議

  • 新項目啟動

    • 建議直接采用?Spring Cloud Alibaba?結合?Spring Cloud Official?的新一代組件,例如?Nacos?(服務發現/配置) +?Spring Cloud Gateway?(網關) +?Sentinel?(容錯) +?OpenFeign?(調用) +?Seata?(分布式事務,如果需要)。這套組合功能全面、社區活躍,并且非常契合國內開發者的需求和習慣。

  • 老項目維護

    • 如果使用的是?Spring Cloud Netflix?套件(Eureka, Hystrix, Zuul),短期內可穩定運行,但長遠看需評估遷移至新組件的成本和風險。

  • 更高要求與未來趨勢

    • 對于大規模、多語言、云原生環境,Kubernetes (K8s)?內置的服務發現、配置管理等功能已成為基礎設施。服務網格(Service Mesh)?如?Istio?或?Linkerd?將服務間通信的復雜性(流量管理、可觀測性、安全性)下沉到基礎設施層,實現了對應用代碼的無侵入和解耦,是微服務架構演進的重要方向。Spring Cloud 應用可以很好地運行在 K8s 和 Service Mesh 之上,兩者是互補與合作的關系。

2.4 拓展:Service Mesh

特性維度阿里巴巴傳統微服務框架 (如Dubbo, Spring Cloud)Service Mesh (以阿里云ASM為例)
核心架構集中式SDKSidecar代理
服務治理能力(如服務發現、負載均衡、熔斷)通過SDK集成到應用中,與應用邏輯耦合服務治理能力下沉到獨立Sidecar代理(如Envoy),對應用透明,實現與業務邏輯的解耦
通信方式點對點直接調用通過Sidecar代理間接通信
服務發現強依賴特定注冊中心兼容并蓄
通常依賴Nacos、ZooKeeper等特定注冊中心。支持接管傳統注冊中心(如Nacos、ZooKeeper、Eureka)的服務,并能統一管理Kubernetes原生服務,實現異構環境互通
服務治理治理能力由SDK決定基礎設施統一賦能
治理能力(如路由、限流)內置于SDK,不同語言需開發不同SDK,多語言支持弱通過控制平面(如Istio)下發配置至Sidecar,統一實現流量管理(金絲雀、A/B測試)、安全(mTLS)、可觀測性對應用語言無要求
技術棧支持主要支持Java技術棧支持多語言技術棧
Dubbo和Spring Cloud框架主要面向Java應用Sidecar模式解耦了通信與業務邏輯天然支持任何語言開發的應用,方便集成遺留系統或引入新技術棧。
性能與資源相對較低的額外延遲和資源開銷一定的性能開銷和資源占用
通信通常是點對點直接調用,延遲相對較低。通信需經Sidecar代理轉發,會增加少量延遲。同時,每個Pod需部署Sidecar容器占用額外CPU和內存資源
部署與運維應用與SDK協同升級基礎設施獨立運維
升級服務治理能力通常需要升級所有應用的SDK,并重啟應用,運維成本較高。Sidecar代理可獨立升級和管理服務治理能力升級無需修改應用代碼或重啟應用。但需運維控制平面和數據平面Sidecar,初期有學習成本。
平滑遷移-支持漸進式遷移
產品如阿里云ASM提供了多種方案,支持傳統微服務(Dubbo, Spring Cloud)無需修改代碼或少量配置即可接入Mesh,實現從傳統到Mesh架構的無縫過渡
通用性與特定開發框架和協議綁定更通用和標準化的通信層
大規模實踐在阿里巴巴等企業有豐富的大規模實踐驗證。在超大規模落地時,需應對控制平面推送壓力、Sidecar資源消耗等挑戰。阿里云ASM等產品為此進行了諸多優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/97937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/97937.shtml
英文地址,請注明出處:http://en.pswp.cn/web/97937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

光伏電站環境監測儀—專為光伏電站設計的氣象監測設備

光伏電站環境監測儀是專為光伏電站設計的氣象監測設備,通過實時采集關鍵環境參數,為光伏系統的發電效率評估、運維決策和安全預警提供數據支撐。監測參數太陽輻射采用高精度總輻射表,測量水平面總輻射和傾斜面輻射,精度達 2% 以內…

Node.js ≥ 18 安裝教程

Windows 安裝 下載安裝包:訪問 Node.js官網,下載最新的 LTS 版本(確保版本 ≥ 18)運行安裝程序:雙擊下載的安裝文件,按照向導完成安裝驗證安裝:打開命令提示符或PowerShell,輸入以下…

電腦 hdmi 沒有聲音問題解決

問題現象:電腦耳機聲音正常輸出,使用hdmi連接電視后,沒有聲音輸出。(正常會通過hdmi 在電視上播放視頻和聲音)解決方案:出現該情況很可能原因是 顯卡的驅動不對。網上找了各種方法都沒有解決,最后系統升級后…

學習日記-XML-day55-9.14

1.xml基本介紹知識點核心內容重點XML定義可擴展標記語言,用于數據存儲和傳輸與HTML的區別(HTML用于展示,XML用于結構化數據)XML用途1. 配置文件(Spring的beans.xml、Tomcat的server.xml);2. 數據交換&#…

【系統架構設計(27)】信息安全技術集成

文章目錄一、本文知識覆蓋范圍二、信息安全基礎要素詳解1、機密性保障技術2、完整性驗證技術3、可用性保障技術4、可控性管理技術5、可審查性追溯技術三、網絡安全威脅與防護策略1、非授權訪問防護2、拒絕服務攻擊防護3、惡意軟件傳播防護四、加密技術體系與應用1、對稱加密技術…

什么是 SaaS 安全?

什么是 SaaS 安全? SaaS 安全專注于保護云中的數據、應用程序和用戶身份。它旨在應對基于云的軟件所面臨的挑戰,以確保信息的安全性和可用性。SaaS 安全致力于降低未授權訪問、數據泄露等風險,同時增強 SaaS 應用程序的安全性。 SaaS 安全不僅…

mysql和postgresql如何選擇

h5打開以查看 簡單來說: MySQL:更像是一個“快速、可靠的工匠”,注重速度、簡單和穩定性,尤其在讀操作密集的Web應用中是經典選擇。 PostgreSQL:更像是一個“功能強大的學者”,追求功能的完備性、標準的符…

Redis最佳實踐——安全與穩定性保障之數據持久化詳解

Redis 在電商應用的安全與穩定性保障之數據持久化全面詳解一、持久化機制深度解析 1. 持久化策略矩陣策略觸發方式數據完整性恢復速度適用場景RDB定時快照分鐘級快容災備份/快速恢復AOF實時追加日志秒級慢金融交易/訂單關鍵操作混合模式RDBAOF同時啟用秒級中等高安全要求場景無…

Data Augmentation數據增強

目錄 數據增強是什么 為什么數據增強 數組增強分類 有監督數據增強 無監督數據增強 數據增強是什么 數據增強又稱數據擴增,是一種通過應用合理且隨機的變換(例如圖像位移、旋轉)來增加訓練集多樣性的技術。讓有限的數據產生等價于更多數…

OpenCV:特征提取

目錄 一、特征提取核心概念:什么是圖像特征? 二、實戰 1:Harris 角點檢測 1.1 角點的物理意義 1.2 Harris 算法原理 1.3 OpenCV 實戰代碼與解析 1.4 結果分析 三、實戰 2:SIFT 特征提取 3.1 SIFT 算法核心優勢 3.2 SIFT…

MySQL的查找加速器——索引

文章目錄 目錄 前言 一、基礎概念:什么是 MySQL 索引? 二、底層數據結構:為什么 InnoDB 偏愛 B 樹? B 樹的結構特點(以短鏈接表short_link的short_code索引為例): B 樹的優勢&#xff1a…

【Vue2手錄11】Vue腳手架(@vue_cli)詳解(環境搭建+項目開發示例)

一、前言:為什么需要 Vue 腳手架? 手動搭建 Vue 項目存在諸多痛點(原筆記提及): 依賴管理復雜:需手動下載 Vue、Babel、Webpack 等工具,處理版本兼容性。配置繁瑣:Webpack 配置、E…

自簽發、CA機構簽發、SSH、SCP、RSYNC,SUDO詳解

一、為什么? 1. 自建CA為什么比Lets Encrypt強? 不能把CA放公網!Lets Encrypt是給公網服務用的(比如10.0.0.30的Web服務),但內網服務(比如OpenVPN)必須用自簽CA。 CA私鑰必須物理隔…

【Python】Python解決阿里云DataWorks導出數據1萬條限制的問題

【Python】Python解決阿里云DataWorks導出數據1萬條限制的問題一、前言二、腳本功能概述三、核心代碼解析**1. 環境配置與安全設置****2. 用戶配置區****3. 數據清洗函數****4. 核心邏輯**四、完整代碼演示五、總結一、前言 在日常數據分析工作中,團隊經常需要從阿…

計算機網絡(一)基礎概念

本篇文章為計算機網絡相關知識點整理及擴展 基于B站計算機網絡課程:https://www.bilibili.com/video/BV1p69tYZEvN/?spm_id_from333.1007.top_right_bar_window_history.content.click 如有錯誤,還望大家不吝指正 URL(統一資源定位符&…

Git的工作區域和文件結構

Git的工作區域和文件結構 1. Git的工作區域2. Git的文件結構 打開.git文件,.git的文件結構如下: objects 存放已經提交的文件,也就是使用 git commit 進行操作后的文件。 index 存放已暫存的文件,也就是使用了 git add 進行操作后…

前端開發易錯易忽略的 HTML 的 lang 屬性

前言本文主要記錄:前端開發中,一個本人錯了好幾年,看似無關緊要的小錯誤:HTML 的 lang 屬性設置。正文HTML 的 lang 屬性在HTML中,lang屬性用于指定文檔的語言。這對于搜索引擎優化(SEO)、屏幕閱…

【GD32】 GPIO 超詳細總結 (江科大風格課件版)

GD32 GPIO 超詳細總結 (江科大風格課件版)第一部分:GPIO 是什么? 名稱:GPIO General Purpose Input/Output (通用輸入輸出口)作用:MCU與外部世界交互的橋梁。通過程序控制引腳輸出高、低電平,或者讀取引腳的電平狀態。…

《嵌入式硬件(八):基于IMX6ULL的點燈操作》

一、IMX6ULL啟動代碼.global _start_start:ldr pc, _reset_handlerldr pc, _undefine_handlerldr pc, _svc_handlerldr pc, _prefetch_abort_handlerldr pc, _data_abort_handlerldr pc, _reserved_handlerldr pc, _irq_handlerldr pc, _fiq_handler_undefine_handler:ldr pc, …

Spring Boot 調度任務在分布式環境下的坑:任務重復執行與一致性保證

前言在實際業務開發中,調度任務(Scheduled Task) 扮演著重要角色,例如:定時同步第三方數據;定時清理過期緩存或日志;定時發送消息或報告。Spring Boot 提供了非常方便的 Scheduled 注解&#xf…