【Dubbo專欄 01 】深入探索:dubbo的架構是什么?

文章目錄

  • Dubbo:深入解析分布式服務框架的核心概念與實現
  • 01 Dubbo簡介
  • 02 Dubbo核心概念
    • 2.1 服務提供者(Provider)
    • 2.2 服務消費者(Consumer)
    • 2.3 注冊中心(Registry)
    • 2.4 負載均衡(Load Balancing)
    • 2.5 容錯處理(Fault Tolerance)
    • 2.6 通信協議(Communication Protocol)
    • 2.7 序列化( Serialization )
  • 03 Dubbo工作原理
  • 04 Dubbo關鍵特性
  • 05 Dubbo示例代碼
    • 5.1 服務提供者(Provider)
    • 5.2 服務消費者(Consumer)
  • 06 總結

Dubbo:深入解析分布式服務框架的核心概念與實現

在分布式系統中,服務框架扮演著至關重要的角色,它們幫助開發者簡化服務間的通信和治理。Dubbo是一個廣受歡迎的Java RPC框架,被廣泛應用于微服務架構和分布式系統中。本文將詳細解析Dubbo的核心概念、工作原理、關鍵特性以及示例代碼,幫助讀者深入理解Dubbo并掌握其使用方法。

01 Dubbo簡介

Dubbo是一個高性能、輕量級的Java RPC框架,由阿里巴巴開發并開源。它提供了服務注冊與發現、負載均衡、容錯處理、通信協議與序列化等核心功能,幫助開發者快速構建穩定、可擴展的分布式應用。Dubbo的設計理念是簡單、可擴展和可靠,它遵循了面向對象的設計原則,使得開發者能夠靈活地擴展和定制框架的功能。

02 Dubbo核心概念

2.1 服務提供者(Provider)

服務提供者是Dubbo中的服務實現方,它負責將服務暴露給消費者。服務提供者通過注冊中心將自己的服務信息注冊,以便消費者能夠發現并調用。在Dubbo中,服務提供者通常是一個獨立的進程或應用,可以部署在多個節點上以實現高可用性和負載均衡。

2.2 服務消費者(Consumer)

服務消費者是Dubbo中的服務調用方,它從注冊中心訂閱所需的服務,并通過遠程調用獲取服務提供者的響應。服務消費者可以是Web應用、后臺服務或其他類型的分布式系統組件。Dubbo支持多種調用方式,包括同步調用、異步調用和單向調用等。

2.3 注冊中心(Registry)

注冊中心是Dubbo中的服務注冊與發現組件,它負責維護服務提供者和消費者的信息。服務提供者將服務信息注冊到注冊中心,而服務消費者則從注冊中心獲取服務提供者的地址列表。Dubbo支持多種注冊中心實現,如Zookeeper、Nacos、Etcd等。注冊中心通過長連接機制保持與服務提供者和消費者的實時通信,確保服務列表的實時性和準確性。

2.4 負載均衡(Load Balancing)

在分布式系統中,負載均衡是一個至關重要的概念。Dubbo,作為一個廣泛使用的Java RPC框架,為服務消費者提供了多種負載均衡策略,以確保服務調用的均衡和性能優化。

負載均衡(Load Balancing)的主要目標是將網絡請求或其他形式的負載“均攤”到不同的機器上,從而避免集群中部分服務器壓力過大,而其他服務器相對空閑的情況。通過負載均衡,每臺服務器都能獲取到適合自己處理能力的負載,既避免了資源浪費,又提高了系統的整體性能。

Dubbo支持多種負載均衡策略,這些策略可以在服務提供者或服務消費者一方進行配置。以下是Dubbo中內置的幾種負載均衡策略:

  1. 隨機調用(Random LoadBalance):這是Dubbo的默認負載均衡策略。在這種策略下,服務消費者會按照概率設置權重的方式隨機選擇一個服務提供者進行調用。權重可以根據服務提供者的性能、處理能力等因素進行設置,以實現更精細的負載均衡。
  2. 輪詢法(RoundRobin LoadBalance):這種策略會按照順序循環選擇服務提供者,確保每個服務提供者都有機會處理請求。這種策略適用于服務提供者性能相近的場景。
  3. 最少活躍調用(LeastActive LoadBalance):這種策略會選擇當前活躍調用數最少的服務提供者進行調用。活躍調用數是指正在處理的請求數。這種策略有助于將請求分發到相對較空閑的服務提供者上。
  4. 一致性Hash算法分配(ConsistentHash LoadBalance):這種策略基于一致性Hash算法進行服務提供者的選擇。它通過計算服務接口的Hash值和服務提供者的Hash值,將請求分配到相應的服務提供者上。這種策略適用于需要保持請求順序一致性的場景。

除了內置的負載均衡策略外,Dubbo還支持自定義負載均衡策略。開發者可以根據實際業務場景和需求,實現自己的負載均衡算法,并通過配置的方式將其應用到Dubbo框架中。

在配置負載均衡策略時,開發者可以在服務提供者或服務消費者一方進行配置。配置方式可以是基于注解的配置,也可以是基于XML或配置文件的配置。具體配置方式取決于使用的Dubbo版本和配置風格。

總之,Dubbo的負載均衡策略是其分布式服務框架中的重要組成部分。通過選擇合適的負載均衡策略并合理配置權重等參數,開發者可以實現服務的均衡調用和性能優化,從而構建穩定、可擴展的分布式應用。

2.5 容錯處理(Fault Tolerance)

Dubbo的容錯處理機制詳解

在分布式系統中,容錯處理是確保系統高可用性和穩定性的關鍵。Dubbo作為一款優秀的分布式服務框架,提供了多種容錯處理策略,幫助開發者在調用遠程服務時應對各種異常情況。

容錯處理的主要目標是在服務調用過程中發生異常時,能夠采取合適的措施來確保系統的正常運行。Dubbo提供了多種容錯策略,每種策略都適用于不同的場景和需求。

以下是Dubbo中內置的幾種容錯策略:

  1. Failover(故障轉移策略):這是Dubbo的默認容錯策略。當某個服務提供者調用失敗時,會嘗試重新調用其他服務提供者。重試次數可以通過retries參數進行配置。這種策略通常適用于讀操作或冪等性寫操作,但重試可能會增加服務延遲,并可能加重下游服務的負載。
  2. Failfast(快速失敗策略):當服務調用失敗時,立即報錯并返回異常結果,不進行任何重試。這種策略通常適用于非冪等性寫操作,如新增記錄。它可以減少系統資源的浪費,但可能會增加系統的異常率。
  3. Failsafe(失敗安全策略):當服務調用失敗時,直接忽略異常并返回空結果或默認值。這種策略通常用于執行相對不太重要的服務,如寫入審計日志。它不會對上層用戶產生影響,但可能會丟失部分數據。
  4. Failback(失敗自動恢復策略):當服務調用失敗時,將失敗請求記錄在失敗隊列中,并由一個定時線程池定時重新發送這些請求。這種策略通常用于實時性要求不太高的服務,如消息通知。它可以在系統恢復后自動重試失敗的請求,提高系統的可用性。
  5. Forking(并行調用策略):同時調用多個服務提供者,只要其中一個成功就立即返回結果。這種策略通常用于實時性要求較高的讀操作。它可以提高系統的可用性和響應速度,但會浪費較多服務器資源。
  6. Broadcast(廣播調用策略):廣播調用所有服務提供者,任意一個服務提供者報錯則報錯。這種策略通常用于通知所有服務提供者更新緩存或日志等本地資源信息。

除了內置的容錯策略外,Dubbo還支持自定義容錯策略。開發者可以根據實際業務場景和需求,實現自己的容錯處理算法,并通過配置的方式將其應用到Dubbo框架中。

在配置容錯策略時,開發者可以在服務提供者或服務消費者一方進行配置。配置方式可以是基于注解的配置、基于XML或配置文件的配置。具體配置方式取決于使用的Dubbo版本和配置風格。

總之,Dubbo的容錯處理機制是其分布式服務框架中的重要組成部分。通過選擇合適的容錯策略并合理配置相關參數,開發者可以確保在調用遠程服務時能夠應對各種異常情況,提高系統的可用性和穩定性。

2.6 通信協議(Communication Protocol)

Dubbo是一個高性能、輕量級的分布式服務框架,它支持多種通信協議和序列化方式,以滿足不同場景和需求。下面將詳細介紹Dubbo的通信協議和序列化機制。

Dubbo框架支持多種通信協議,包括但不限于以下幾種:

  1. Dubbo協議:Dubbo框架自帶的通信協議,用于服務之間的調用。它基于Netty作為底層通信框架,具有高性能、高吞吐量的特點。Dubbo協議支持請求響應模型、單向請求模型和廣播模型等多種通信模式。
  2. Hessian協議:輕量級遠程調用協議,基于HTTP傳輸。Hessian協議使用二進制格式進行數據編碼,具有較高的傳輸效率。它適用于跨語言、跨平臺的遠程服務調用。
  3. Thrift協議:跨語言、跨平臺的服務接口定義和序列化協議,基于Tcp傳輸。Thrift協議使用自定義的數據格式進行序列化,支持多種編程語言,并且具有良好的擴展性。
  4. gRPC協議:Google開發的高性能、開源、通用的RPC框架,基于TCP傳輸。gRPC協議使用Protocol Buffers作為接口描述語言,支持多種編程語言和平臺,具有強大的功能和靈活性。

除了上述幾種協議外,Dubbo還支持其他通信協議,如Apache Zookeeper、Redis、MQTT等。這些協議的選擇取決于具體的使用場景和需求,開發者可以根據實際情況進行選擇和配置。

2.7 序列化( Serialization )

序列化是將對象狀態轉換為可存儲或傳輸的格式的過程,反序列化則是將其還原為對象的過程。Dubbo支持多種序列化方式,以適應不同的使用場景和性能要求。

  1. Hessian序列化:Hessian是一種輕量級的二進制序列化協議,它使用緊湊的二進制格式表示對象,具有較高的序列化和反序列化性能。Hessian序列化適用于跨語言、跨平臺的遠程服務調用。
  2. Kryo序列化:Kryo是一個高性能的Java序列化框架,它使用自定義的序列化算法和數據結構,能夠實現比Java默認序列化更高的性能。Kryo序列化適用于對性能要求較高的場景。
  3. FST序列化:FST(Fast Serialization)是一種基于Java的快速對象序列化庫,它使用一種緊湊的二進制格式表示對象,具有高性能和低內存消耗的特點。FST序列化適用于對序列化性能有較高要求的場景。

除了上述幾種序列化方式外,Dubbo還支持其他序列化協議,如Java默認序列化、JSON序列化等。序列化方式的選擇取決于具體的使用場景和需求,開發者可以根據實際情況進行選擇和配置。

總之,Dubbo的通信協議和序列化機制是其分布式服務框架中的重要組成部分。通過選擇合適的通信協議和序列化方式,開發者可以實現高性能、高可用性的分布式服務調用和數據傳輸。

03 Dubbo工作原理

Dubbo 是一個高性能、輕量級的分布式服務框架,主要用于 Java 應用。它基于 RPC(遠程過程調用)協議,使得服務消費者可以像調用本地方法一樣調用遠程服務。Dubbo 的工作原理可以分為以下幾個關鍵部分:

  1. 服務注冊與發現:Dubbo 使用注冊中心(如 Zookeeper、Nacos 等)來維護服務提供者和消費者的信息。服務提供者在啟動時將自己的服務信息注冊到注冊中心,而服務消費者在啟動時從注冊中心訂閱所需的服務信息。這樣,消費者就能夠找到并調用相應的服務提供者。
  2. 負載均衡:當有服務調用請求時,Dubbo 會根據配置的負載均衡策略選擇一個合適的服務提供者。常見的負載均衡策略包括隨機調用、輪詢法、最少活躍調用等。這樣可以確保請求被均勻地分發到各個服務提供者,避免單個服務提供者過載。
  3. RPC 調用:一旦確定了目標服務提供者,Dubbo 會使用 RPC 協議進行遠程調用。Dubbo 支持多種通信協議,如 Dubbo 協議、RMI 協議、HTTP 協議等。默認情況下,Dubbo 使用自定義的 Dubbo 協議,基于 TCP 長連接和 NIO 異步通信。在調用過程中,Dubbo 會將請求對象序列化為字節流,并通過網絡發送給服務提供者。
  4. 服務執行與響應:服務提供者收到請求后,會反序列化字節流為請求對象,并執行相應的業務邏輯。執行完成后,服務提供者會將結果對象序列化為字節流,并通過網絡發送回服務消費者。服務消費者收到響應后,會反序列化字節流為結果對象,并繼續執行后續的業務邏輯。
  5. 容錯處理與異常處理:在整個調用過程中,Dubbo 提供了多種容錯處理策略,如故障轉移、快速失敗、失敗安全等。當某個服務提供者出現故障或異常時,Dubbo 會根據配置的容錯策略進行相應的處理。同時,Dubbo 也支持異常處理機制,服務消費者可以通過捕獲 RpcException 異常來處理服務調用過程中出現的錯誤。

總之,Dubbo 的工作原理可以概括為服務注冊與發現、負載均衡、RPC 調用、服務執行與響應以及容錯處理與異常處理這幾個關鍵步驟。通過這些機制,Dubbo 實現了高性能、高可靠性的分布式服務調用。

04 Dubbo關鍵特性

  1. 高性能:Dubbo使用Netty作為底層通信框架,提供了高性能、高吞吐量的服務調用能力。同時,Dubbo協議本身也經過精心設計,具有緊湊、高效的特性,能夠減少網絡傳輸開銷。
  2. 輕量級:Dubbo的設計非常簡潔,核心代碼量較少,易于理解和擴展。它遵循了面向對象的設計原則,提供了清晰的API和擴展點,使得開發者能夠輕松定制和擴展框架的功能。
  3. 可擴展性:Dubbo的架構采用插件化設計,各個模塊之間解耦良好,方便開發者根據需求進行擴展。例如,開發者可以自定義負載均衡策略、容錯策略、通信協議等,以滿足特定場景的需求。
  4. 服務治理:Dubbo提供了完善的服務治理功能,包括服務注冊與發現、動態配置、路由規則等。這些功能使得開發者能夠靈活管理分布式系統中的服務,實現服務間的解耦和自治。
  5. 豐富的監控與統計:Dubbo內置了強大的監控和統計功能,可以實時收集服務調用的性能指標,如調用次數、響應時間、成功率等。這些統計數據可以幫助開發者分析系統性能瓶頸,優化服務調用。
  6. 廣泛的兼容性:Dubbo支持多種注冊中心、通信協議和序列化方式,可以與不同的分布式系統組件和框架無縫集成。這使得Dubbo在實際應用中具有廣泛的兼容性和適應性。

此外,Dubbo 還具有良好的連通性、健壯性、伸縮性和升級性。通過合理的配置和擴展,Dubbo 可以適應各種復雜的分布式場景,提高系統的可用性和穩定性。

05 Dubbo示例代碼

下面是一個簡單的Dubbo服務提供者和消費者的示例代碼:

5.1 服務提供者(Provider)

// 服務接口
public interface GreetingService {String sayHello(String name);
}// 服務實現類
public class GreetingServiceImpl implements GreetingService {@Overridepublic String sayHello(String name) {return "Hello, " + name + "!";}
}// 服務配置
@Service(version = "1.0.0")
public class GreetingServiceProvider {@Autowiredprivate GreetingService greetingService;public GreetingService getGreetingService() {return greetingService;}
}

5.2 服務消費者(Consumer)

// 服務接口
public interface GreetingService {String sayHello(String name);
}// 服務配置
@Configuration
public class GreetingServiceConsumerConfig {@Reference(version = "1.0.0")private GreetingService greetingService;public GreetingService getGreetingService() {return greetingService;}
}// 服務調用
@Autowired
private GreetingServiceConsumerConfig greetingServiceConsumerConfig;public void callGreetingService() {String result = greetingServiceConsumerConfig.getGreetingService().sayHello("Dubbo");System.out.println(result); // 輸出:Hello, Dubbo!
}

上述示例代碼展示了如何使用Dubbo注解來配置服務提供者和消費者。服務提供者通過@Service注解暴露服務,而服務消費者通過@Reference注解引用服務。這種方式簡化了配置過程,使得服務調用更加便捷。

06 總結

Dubbo是一個強大而靈活的分布式服務框架,它提供了服務注冊與發現、負載均衡、容錯處理、通信協議與序列化等核心功能。通過簡單的配置和代碼編寫,開發者可以快速構建穩定、可擴展的分布式應用。同時,Dubbo的開源特性使得社區可以共同參與框架的開發和維護,進一步推動了其技術的發展和應用范圍的擴大。希望本文能夠幫助讀者深入理解Dubbo并掌握其使用方法。

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

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

相關文章

如何對用OpenCV開發的API進行測試 (Google Test 版本)

如何對用OpenCV開發的API進行測試 (Google Test 版本) 如何對用OpenCV開發的API進行測試斷言介紹斷言基礎的斷言數值比較字符串比較 如何對用OpenCV開發的API進行測試 假設你想測試一個使用OpenCV開發的圖像處理API,例如一個圖像濾波函數。以…

SWC Runnable

runnable概念 runnable是編寫應用程序行為邏輯的 SWC 的一部分。Runnable 類似于 C 中的函數,類似RTOS中的task,程序運行的實體,swc的靈魂。在 AUTOSAR 中,我們在配置期間在 SWC 中創建 Runnable,并且 在 SWC 的相應源文件中生成Runnable 或函數骨架。骨架函數的名稱與我…

【硬件工程師面經整理15_低通/高通/帶通濾波器】

低通/高通/帶通濾波器 1.1 低通濾波器1.2 高通濾波器1.3 帶通濾波器 1.1 低通濾波器 【定義】電感阻止高頻信號通過而允許低頻信號通過,電容的特性卻相反。信號能夠通過電感的濾波器、或者通過電容連接到地的濾波器對于低頻信號的衰減要比高頻信號小,稱…

第二篇【傳奇開心果系列】Python的自動化辦公庫技術點案例示例:深度解讀Pandas金融數據分析

傳奇開心果博文系列 系列博文目錄Python的自動化辦公庫技術點案例示例系列 博文目錄前言一、Pandas 在金融數據分析中的常見用途和功能介紹二、金融數據清洗和準備示例代碼三、金融數據索引和選擇示例代碼四、金融數據時間序列分析示例代碼五、金融數據可視化示例代碼六、金融數…

軟考高級:DNS欺騙相關知識和例題

一、AI 解析 DNS欺騙,又稱DNS緩存投毒,是一種網絡攻擊技術。攻擊者通過篡改DNS服務器的緩存數據,使得DNS查詢的結果指向一個惡意的IP地址,從而引導用戶訪問到釣魚網站或者惡意軟件下載頁面,對用戶的信息安全造成威脅。…

后臺組件-IO定義

<groupId>org.qlm</groupId><artifactId>qlm-io</artifactId><version>1.0-SNAPSHOT</version> 該組件定義了前端和后臺微服務直接通訊結構以及返回值定義。 RequestInfo&#xff1a;請求結構 ResponseResult&#xff1a;非分頁的返回結…

最新版風車IM通訊iosapph5三端源碼及視頻教程

最新版風車IM通訊iosapph5三端源碼及視頻教程 1.寶塔環境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 Redis 7 2.放行端口如下&#xff1a; 666 6600 6700 7000&#xff08;用作前端&#xff09; 7001&#xff08;用作后端&#xff09; 3.寶塔數據庫添加數據庫旁邊有個ro…

Sqli-labs靶場第21、22關詳解[Sqli-labs-less-21、22]自動化注入-SQLmap工具注入|sqlmap跑base64加密

Sqli-labs-Less-21、22 由于21/22雷同&#xff0c;都是需要登錄后&#xff0c;注入點通過Cookie值進行測試&#xff0c;值base64加密 修改注入數據 選項&#xff1a;--tamperbase64encode #自動化注入-SQLmap工具注入 SQLmap用戶手冊&#xff1a;文檔介紹 - sqlmap 用戶手冊 由…

MySql行子查詢

目錄 行子查詢數據準備 行子查詢 子查詢返回的結果是一行(可以是多列)&#xff0c;這種子查詢稱為行子查詢。 常用的操作符&#xff1a; 、<> 、IN 、NOT IN 案例&#xff1a;查詢與"韋一笑"的入職日期及職位都相同的員工信息 可以拆解為兩步進行&#xff1…

框架漏洞-->Struts2 Docker_Vulnhub搭建

來淺淺的講一下Struts2漏洞 目錄 1.Docker_Vulnhub搭建 2.Struts2 3.Struts2的框架特征 4.S2-029-->Remote Code Execution 5.漏洞復現 1.RCE 2.Getshell 1.Docker_Vulnhub搭建 因為我用的是Linux&#xff0c;所以我選擇直接搭個docker&#xff0c;這里我建議先換個…

在Ubuntu22.04安裝Fcitx5中文輸入法教程(十分詳細)

前言 書接上回&#xff0c;一時興起將主力機的 Ubuntu 20.04 LTS 升級至了剛剛發布的 22.04 LTS。從 X 切換到 Wayland 、GNOME 從 3.36 升級至 42、Python 默認為 3.10 等等……使用太新的軟件包反而暫時帶來了麻煩&#xff0c;部分原有的軟件和插件都不可用了。這其中就包括…

【AI Agent系列】【MetaGPT多智能體學習】7. 剖析BabyAGI:原生多智能體案例一探究竟(附簡化版可運行代碼)

本系列文章跟隨《MetaGPT多智能體課程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并實踐多智能體系統的開發。 本文為該課程的第四章&#xff08;多智能體開發&#xff09;的第五篇筆記。今天我們拆解一個之前提到…

Docker之數據卷

文章目錄 一、什么是數據卷二、自定義鏡像 一、什么是數據卷 1.1Docker 數據管理 在生產環境中使用 Docker &#xff0c;往往需要對數據進行持久化&#xff0c;或者需要在多個容器之間進行 數據共享&#xff0c;這必然涉及容器的數據管理操作 1.2操作 將宿主機的目錄與容器的目…

飛槳(PaddlePaddle)數據預處理教程

文章目錄 飛槳&#xff08;PaddlePaddle&#xff09;數據預處理教程1. 安裝飛槳2. 了解飛槳的數據預處理方法3. 應用單個數據預處理方法4. 組合多個數據預處理方法5. 在數據集中應用數據預處理5.1 在框架內置數據集中應用5.2 在自定義數據集中應用 6. 總結 飛槳&#xff08;Pad…

使用DockerFile構建Tomcat鏡像

1、準備鏡像文件tomcat壓縮包&#xff0c;jdk的壓縮包 tomcat鏈接&#xff1a;https://pan.baidu.com/s/1Xpecb-BSGR2sdxSL7FDtBw?pwd1234 提取碼&#xff1a;1234 jdk鏈接&#xff1a;https://pan.baidu.com/s/1mQHInn27j1I9uuuicBsyAA?pwd1234 提取碼&#xff1a;1234 …

惠普GT5810打印機報錯E9的處理方法

當打印機檢測到供墨系統需要維護時&#xff0c;將會出現 E9 錯誤。 吳中函 打印出的帶錯誤的供墨系統維護頁包含解決該錯誤的說明。 出現 E9 警告時維持 HP Ink Tank 打印機的打印質量&#xff0c;出現 E9 警告時如何維持 HP Ink Tank 打印機的打印質量。 惠普5810報錯E9通常…

冒泡排序(C語言詳解)

原理&#xff1a;從左到右一次比較&#xff0c;如果左側數字比右側數字大&#xff08;小&#xff09;&#xff0c;則兩數交換&#xff0c;否則比較下一 組數字&#xff0c;每一次大循環比較可以將亂序的最右側數字改為最大&#xff08;最小&#xff09;&#xff0c…

機房運維管理的全面優化:動環監控與IT基礎設施的深度融合

隨著信息技術的飛速發展&#xff0c;機房作為支撐企業信息化建設的核心樞紐&#xff0c;其運維管理的重要性日益凸顯。機房不僅要確保IT基礎設施的高可用性&#xff0c;還需應對日益復雜的安全挑戰和不斷變化的業務需求。因此&#xff0c;構建一個集動環監控、工單管理、資產管…

MySQL運維實戰之備份和恢復(8.2)xtrabackup備份到云端(OSS)

作者&#xff1a;俊達 xtrabackup工具中有一個xbcloud程序&#xff0c;可以將數據庫直接備份到S3對象存儲中&#xff0c;本地不落盤。這里介紹將數據庫直接備份到OSS的一種方法。 具體方法如下&#xff1a; 1、準備OSS 我們使用ossutil工具上傳備份文件。 下載ossutil工具&…

jupyter 一鍵快捷啟動方法研究

1.效果 首先打開dat 文件&#xff0c;同意賦予管理員 輸入序號1 成功啟動 2.Bat代碼 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&e…