從互聯網到云計算再到 AI 原生,百度智能云數據庫的演進

1 數據庫行業發展概述

如果說今年科技圈什么最火,我估計大家會毫不猶豫選擇 ChatGPT。ChatGPT 是 2022 年 11 月 30 日由 OpenAI 發布的聊天應用。它創造了有史以來用戶增長最快的紀錄:自 11 月 30 日發布起,5 天就擁有了 100 萬活躍用戶,兩個月就達到了一億用戶。對比其他熱門應用,同樣達到一億用戶量級,TikTok 花了九個月,而像 Instagram ,Whatsapp 等應用則超過了兩年時間。

ChatGPT 的爆火,瞬間點燃了整個 AIGC 賽道。最關鍵的原因在于,它讓大家看到了弱人工智能向強人工智能的跨越式發展。英偉達 CEO?黃仁勛對此評價:ChatGPT 相當于 AI 界的 iPhone 時刻。

現在業界統一的共識是,AIGC 會改變 IT 行業的方方面面。那 AIGC 對數據庫會帶來哪些變化,AIGC 和數據庫又會碰撞出哪些火花,這是一個值得我們去思考和回答的問題。

在回答 AIGC 對數據庫的變革和影響之前,讓我們先回顧下數據庫發展歷史。它可以分為六個階段。

第一階段是上世紀五十年代。這個時候數據庫還在雛形階段,以層狀數據庫和網狀數據庫為主,基礎設施以大型機為主,主要用于國防和科學研究。

第二階段是上世紀七十年代。關系型數據庫出現,硬件也變成了小型機,這也奠定了數據庫發展的方向。主要應用在金融,交通等關鍵行業。這時的代表數據庫是 Oracle 和 DB2 等。

第三階段是上世紀九十年代。PC 機已經得到了普及,數據庫除了關系型數據庫,也有了 PC 單機數據庫。為解決企業 BI 應用訴求,數倉開始出現。數據庫的應用也更多樣化起來,進一步應用到企業 BI、個人辦公、娛樂等場景。

第四階段是本世紀的前十年。隨著互聯網開始繁榮,數據處理的需求逐漸增加,開始出現企業數據中心。業務也變成了媒體、搜索、電子商務、社交等互聯網業務。由于傳統數據庫如 Oracle 因為價格較貴,互聯網廠商大量使用開源數據庫如MySQL、Redis、MongoDB 等。整個開源數據庫生態開始逐漸繁榮。數據庫的種類,廠家也逐漸變多。

第五階段就是我們今天所處的云計算時代。典型應用包括新媒體、各種移動 APP、物聯網、娛樂、短視頻等。典型的數據庫有 RDS、Aurora 等云數據庫,以及 Oceanbase、CockroachDB 等分布式數據庫。百度也有對應的產品,云原生數據庫?GaiaDB 以及我們自研的緩存類數據庫 PegaDB 等。

第六個階段是自 2023 年開始的 AI 時代。底層基礎設施變成了 GPU 和 AI 能力。應用也變成了 AI 原生應用,如海外比較火的 Jasper、Midjourney,微軟的 Copilot 等。在數據庫行業我們看到至少兩個方向,一個是 AI4DB,其中包括阿里的 DAS、百度的 DSC 等,主要是通過 AI 的能力去改進原有數據庫的自動化能力。另外一個方向就是 DB4AI,目前主要是向量數據庫。向量數據庫在解決大模型幻覺等方面,有非常不錯的效果,是一個有潛力的細分賽道,頭部公司估值已經達到 10 億美元。

以上就是數據庫 70 年波瀾壯闊的發展史。我們可以看到,每隔一段時間數據庫就會在基礎設施、應用場景、以及數據庫本身,都有不斷地變更和創新。

上面我們簡單回顧了數據庫發展的六個階段。在這個過程中,我們還可以以 2000年做分界線。在 2000 年前,國內數據庫基本上被 Oracle 等海外數據庫主導。而從 2000 年之后,隨著互聯網業務的發展,國內多個互聯網廠商如阿里、騰訊、百度便開始嘗試使用開源數據庫,實現了從最早的運維、到提交?patch、再到最后完全自研數據庫的跨越式發展。

這背后從量變到質變的過程是一個典型基礎軟件發展過程。一個基礎軟件真正得到長足發展,需要一大批高素質的技術人員,也需要深度場景的使用才能不斷完善產品。另外豐富的場景和不斷發展的業務,也能長期養活這批技術人員,進而形成正循環。所以說數據庫的發展依賴于技術和業務的雙輪驅動。從 2000 年開始,我們看到三波浪潮——互聯網,云計算和 AI 原生。我們接下來會分別來講一下每一波浪潮為數據庫行業帶來的創新和變化,以及百度智能云數據庫在這個過程中的關鍵技術和代表產品。

2?百度智能云數據庫發展史

互聯網業務特點是贏家通吃,所以互聯網業務用戶數規模通常比較大。因此天然要求數據庫支持大規模、高可用、高可靠性、低成本以及高性能,這對數據庫提出了非常大的挑戰。

在第一波互聯網業務的發展中,業務的挑戰催熟了一系列開源數據庫如 MySQL、Redis、MongoDB,又從中孵化出了分布式數據庫。

接下來我們來看下百度在互聯網時代的數據庫發展歷程,這里有幾個關鍵節點:

第一個是自 2005 年開始使用 MySQL 數據庫,這也是國內最早使用 MySQL 的企業之一。第二個是 2014 年百度推出公有云服務,百度數據庫的能力通過百度智能云開始賦能給外部企業。第三個是 2020 年發布了云原生數據庫 GaiaDB。百度也成為了國內少數幾個具備自研云原生數據庫云廠商之一。截至目前,百度積累了 18 年的數據庫研發經驗,承載著內部 PB 級數據。10 萬+ 的節點至今零故障零損失。通過百度智能云輸出的一站式產品,覆蓋 RDS、NoSQL、OLAP、工具等領域,同時具備公共云、私有云、邊緣云等軟件版本多形態。

前面我們提到了互聯網的一大特點,就是規模大。單點肯定處理不了,所以需要引入分布式技術,也催生了分布式數據庫的誕生。

百度在該領域也有非常成熟的技術,講兩個實際的案例:第一個是百度網盤。百度網盤有 8 億用戶,整個數據庫中單表最大超過 10 萬億條記錄。整體集群超過 3000 臺服務器,是國內最大的數據庫集群之一。第二個是金融行業。大家都知道金融行業對一致性、數據準確性有非常高的要求。度小滿金融有 3 億用戶,年度結算金額超過萬億,其底層使用的就是百度智能云分布式數據庫 GaiaDB-X。尤其值得一提的是在 2019 年春晚紅包業務中,整體交易的峰值是 12 萬筆/秒。數據庫的分布式能力、性能、一致性、準確性都得到了充分驗證。除了度小滿,百度智能云的數據庫還在多家國有大行、股份制銀行和城商行中穩定運行。

互聯網業務除了規模外,對性能、并發等也提出了很高的要求,因此誕生了一系列 NoSQL 數據庫。不同的 NoSQL 數據庫從不同層面解決互聯網垂直場景的問題,今天我們講其中的代表 Redis。

百度智能云的 Redis服務經歷十幾年的技術積累和業務打磨。從規模上來看,節點規模超過 30w,其中單集群最大規模節點數達到 2700。從業務支持上看,百度 Redis 覆蓋支撐了百度內部全場景業務,其中包括搜索廣告、手百、地圖、小度等一系列億級用戶體量的產品,為業務提供 4 個 9 以上高可用性以及微秒級請求時延服務,始終為客戶提供穩定、高效、彈性可擴展的智能緩存服務。

Redis???????直接使用內存,但內存帶來高性能的同時成本是比較貴的。因此一款能兼顧性能和成本的 Redis 產品是客戶迫切需要的。考慮到業務中大量的數據是可以根據場景分出冷熱的。比如視頻直播、新聞/內容平臺、電商場景中,隨著時間的推移,數據的價值和使用頻率都在下降。所以可以將部分數據自動遷移到磁盤中,從而降低存儲的整體成本。

為了解決性能和成本的平衡問題,百度智能云自研了?PegaDB。PegaDB 是在開源基礎上自研的容量型 Redis 產品,相比內存型產品最多節省超過 90% 的存儲成本。在成本下降的同時,PegaDB 也兼容了 Redis 豐富的數據類型和命令,讓用戶做到無縫遷移,兼顧了用戶體驗和性能優勢。除此之外,PegaDB 還有兩個殺手锏功能:一是支持在線彈性伸縮,單個集群最大規模可達 PB 級別。對用戶來說不用估計使用量,只要傻瓜式即開即用即可。第二個是支持 CRDT 同步的組件,支持異地多活和多節點同時訪問、自動進行沖突合并等功能。這就讓客戶專注于實現業務邏輯,其他的都交給底層的數據庫,完全不用操心可用性問題。

隨著云業務的誕生,讓數據庫的價值進一步放大。為了賦能千行百業,全托管等形態的 RDS 順利成章的誕生了。它解決了客戶最直接的安裝、運維、管理等問題,因此全托管的 RDS 就逐漸推廣開來。

但單體 RDS 通常有比較明顯上限,在一些對性能、成本、彈性有一定要求的復雜業務中,就需要一個更強大的數據庫來解決這些問題。因此,存算分離的云原生數據庫就自然而然誕生了。百度智能云的云原生數據庫 GaiaDB 是其中的代表之一。

RDS全托管的產品形態代表了云計算從軟件到服務的理念轉變。云原生數據庫極大地提高了 MySQL 數據庫的上限能力,是云數據庫劃代的產品。

云原生數據庫最早的產品是 AWS 的 Aurora。AWS Aurora 提出來的 The log is the database 的理念,通過把大量的日志操作放到后臺異步處理,實現了存儲獨立擴展和存儲計算分離,從而解決了 MySQL 數據庫單庫的數據量不能太大的最大痛點。

而云原生數據庫在存儲層面實現了擴展的同時,又保留了計算層面的不變和兼容。這種兼容 + 擴展的能力,受到了客戶的極大歡迎,一下子就讓云原生數據庫成為各個廠商的發展重點。云數據庫技術也標志著云廠商的產品能力開始和傳統數據庫廠商、開源產品開始拉開差距。

百度智能云的?GaiaDB?在 2020 年首次推出,除了具備云數據庫的優點之外,GaiaDB 還有很多獨特的技術能力,接下來我來分享其中 5 個代表能力:

第一個是共識協議。一般使用 Raft/Paxos 分布式協議的數據庫,單次 I/O 需要至少兩次網絡往返,而且無法并行。這也就導致了分布式數據庫時延很高,長尾問題更突出。

針對這個問題 GaiaDB 創新采用了 Raft 和 Quroum 結合的協議。其中 Raft 負責控制流,Quorum 負責數據流,進而減少網絡往返。同時核心鏈路上的同步 I/O 變成異步 I/O,在保證分布式一致性的前提下,吞吐提升了 40%,時延降低了 30%。

第二個是高性能智能網絡。存算分離在帶來分布式和彈性的同時,也引入了網絡 I/O 的消耗,因此網絡 I/O 的性能和效率直接影響整個系統的表現。GaiaDB?采用高性能智能網絡,這個網絡有幾個關鍵技術能力:

  • 網絡超時重定向機制。當遠程 I/O 超時,會自動嘗試其他副本,從而抑制單節點長尾問題。
  • 網絡支持用戶態協議。該協議減少了內核態 TCP 和用戶態 TCP 的數據庫拷貝。通過對網絡的優化,平均時延從毫秒級別降低到微秒級別,提升 20 倍以上。

第三個是提供了三副本對等存儲能力。由于采用了 Quorum 分布式共識協議,相比傳統的 Raft 模型,每個節點都可以獨立提供讀寫服務,沒有單點故障。

第四個是多地多活。GaiaDB?是目前業界唯一可以做到多地多活的云原生數據庫???????是。在多地部署的時候,GaiaDB 模塊的自適應就近訪問策略可以感知元數據的變化,并根據這些變化及時切換訪問路線。這種策略可以有效地應對各種故障和異常情況,確保數據的可靠性和可用性。

第五個是使用通用硬件,對硬件要求低。GaiaDB?生于云,但同時 GaiaDB 的架構對硬件的依賴度非常低。我們和很多廠商使用高性能硬件的思路不同,我們認為云的價值是普惠,所以一定要讓通用服務器能發揮專業數據庫的能力。因此,不同于很多云原生數據庫需要依賴底層高性能的硬件,GaiaDB 從設計初就堅持使用通用服務器。因此在私有云場景下,三個節點就可以進行部署,讓我們的客戶可以低價享受到云上云下一套架構。

接下來我們來看一個 GaiaDB的實際案例——百度地圖。

百度地圖是國民級別應用,日活用戶 5.6 億,PB 級數據。這對數據庫也提出了如下的挑戰:

  • 為了保證高可用,需要多地多活的能力。
  • 節假日地圖搜索,導航流量會出現十倍的上漲。這就要求在節假日需要非常順滑的擴縮容的能力。

大規模數據量、異地多活、彈性擴縮容要求,這些要求對數據庫是極大的考驗。在實際使用過程中,GaiaDB提供 4 個 9 的可用性,RTO 切換小于 3s,RPO=0,整體 QPS 超過百萬級別,給業務實現超過 60% 的資源成本節省。總的來說,GaiaDB成功幫助百度地圖實現了極致的彈性和成本。

云上數據庫和線下數據庫相比,一個較大差異就是生態能力強。相比傳統線下軟件只有 1~2 款產品,線上有多種數據庫與多種使用環境,因此數據庫矩陣更豐富,這帶來了對數據庫工具的訴求。

百度智能云有豐富的數據庫工具,包括數據傳輸?DTS、數據庫智能駕駛艙 DSC 等產品。我們先講其中的代表 DTS。百度智能云的 DTS 采取了中間抽象的數據格式,通過中間格式的翻譯和轉換,可以輕松做到異構遷移能力。同時 DTS 在吞吐上可以做到每秒 15 萬行,延遲做到毫秒級別,基本等于網絡的延遲的性能,讓客戶可以放心使用 DTS 來做數據庫的遷移和同步。

3 AI 原生時代的百度智能云數據庫

在 AI 原生時代,數據庫和 AI 的結合主要有 DB4AI 和 AI4DB。

首先是 AI4DB,就是利用 AI 技術賦能數據庫。常見場景有智能運維、智能客服、參數優化等等,剛剛提到的百度智能駕駛艙就是該領域的代表。另外一個方向是 DB4AI,通過數據庫賦能 AI 產品。當前最火的就是向量數據庫。向量數據庫二次的翻紅主要原因是向量數據庫在解決大模型幻覺、知識更新不及時有很大作用,讓向量數據庫的想象空間一下子變大了。

AI4DB 在工業界一直有研究。相比傳統機器學習算法,大模型讓 AI4DB 真正走進實用時代。利用大模型的能力,百度智能云數據庫發布新服務:數據庫智能駕駛艙。

數據庫智能駕駛艙利用最新的大模型能力,實現數據庫智能化的洞察、評估和優化。根據我們的實際測試效果,優化效果非常顯著:

  • 數據庫故障洞察方面,相比傳統的人工定位提升 80%。
  • 領先的智能評估系統,相比傳統的方法提前一個月發現數據庫的容量瓶頸,規避相應的風險。
  • AI 驅動的 SQL 優化方面,可以帶來 40% 以上的提升。

相比傳統基于規則的算法,大模型帶來了更好的優化效果和更少的開發時間。大模型帶來的切實提升讓 AI4DB 走向真正的實用時代,也讓數據庫自感知、自修復、自優化、自運維成為現實。

下面我們來看下數據庫智能駕駛艙內置的一個能力——智能問答。

這個功能可以幫助用戶診斷產品問題并回答各種疑問,降低人工投入。這里面用到了大模型通用知識的能力,同時也利用 RAG 技術,把云產品文檔、數據庫的官方文檔、內部積累的知識庫進行向量化并存在向量數據庫中。

在查詢的時候,結合大模型和向量數據庫的能力,可以給出相當準確有效的答案。目前數據庫智能駕駛艙經過驗證,對歷史客戶工單中真實問題進行回答然后由人工進行打分,整體回復平均超過 4 分,基本可以媲美普通售后工程師的水平。

接下來我們實際來看下智能問答的一個 demo。

左邊的例子是詢問知識庫里面已有的例子,比如怎么購買,怎么實現一個讀寫分離的配置等。智能駕駛艙都總結得比較好,回答也非常準確。右邊的例子是詢問知識庫中沒有的例子。我們可以發現,智能駕駛艙利用大模型的能力,可以舉一反三,把解決問題的步驟給出來。我們人工去檢查也會發現,這個步驟還是相對比較合理的。所以現在智能駕駛艙的智能問答可以做到:有資料的問題準確回答,無資料的問題也可以給出相對清晰的解法。百度智能云內部已上線了該功能,大大節省了人力。

DB4AI 的典型代表就是向量數據庫。向量檢索并不是一個新技術,2017年 Meta 就開源了相似度檢索庫 FAISS,算是向量化檢索的開山鼻祖。

傳統數據庫解決的是結構化數據的存儲和檢索,非結構化數據需要先用 AI 算法 Embedding 成向量數據。需要查找的時候,把需要查找的數據的向量帶過來,然后在庫里面進行相似度檢索。

而向量數據庫核心能力就是支持向量數據存儲,以及支持不同的查找算法和索引實現相識度查找。當前業界有兩種不同的實現方式,一種是在傳統數據庫中增加插件或者功能支持向量的查找,比如 PG,Redis 都支持向量索引。這種實現相對來說容易一些,但同時性價比會差一些,通常會占用更多內存。另外一種是專業的向量數據庫,專門為向量重新設計的存儲和索引結構,能實現更高的性價比和彈性。

傳統應用也有不少向量場景。典型場景有平安城市視頻檢索、電商領域以圖搜圖等。由于傳統場景比較垂直,因此一直沒有一個大的向量數據庫,更多的是耦合在業務系統中。而在大模型時代,萬物皆可向量化。而且當前大模型主要問題有知識更新不及時、精確性問題、數據權限管理等問題,都需要向量數據庫來補充。向量數據庫也因此成為大模型的標配,也在大模型時代二次翻紅。

百度智能云自研的專業向量數據庫目前在內測階段,根據我們內部實際測算,在成本、規模、高性能算法、內置 Embedding 模型、向量 + 標量的聯合查詢方面,相比業界有很大的提升。

前面我們介紹了關鍵的產品,最后簡單回顧一下百度智能云產品矩陣。

百度智能云數據庫完整支持 RDS、NoSQL、云原生數據庫,OLAP 等產品。相比業界其他云廠商,百度智能云數據庫有兩個顯著特點:

  • 百度智能云的數據庫產品可以做到一套架構,云上云下客戶享受同等的產品能力。
  • 支持國內最全的產品形態,包括公共云、私有云、邊緣節點、LCC 等多種形態,可以服務各類訴求的客戶。

前面我們盤點了數據庫在互聯網、云計算,AI 原生 3 個階段的發展。除了技術之外,我們認為云數據庫未來還要堅持兩個重要的理念。

第一個是體驗優先。一個好的數據庫不能只是性能、成本這些方面。體驗好的產品,可以讓用戶做到自服務。體驗優先這一點在海外 SaaS 產品中體現得更為明顯。在國內,這一理念也逐漸取得從業者的認可。因此,在過去的半年里面,我們從文檔、控制臺、產品功能各個層面進行了深度優化:

  • 文檔:文檔是用戶使用和理解產品的重中之重,因此我們做了包括優化結構、補充用戶場景、刷新細小的優化點在內的大量工作,目的就是讓用戶在使用過程中可以更方便找到自己所需要的內容。
  • 控制臺:在控制臺優化上,我們優化了整體結構,讓用戶可以更簡單找到想用的功能,總共優化點超過 100 處,讓用戶更容易上手。
  • 產品功能:我們針對數據庫的產品功能系統性安排測試定期的盲測、新員工使用等,僅僅上半年就優化了 50+ 個突出的易用性問題。

我們對體驗的理解就是從用戶視角入手、堅持細節、系統性的進行優化,只有通過這種深度,全方位的持續改進,才能把體驗做到實處。

第二個是開放生態。豐富的生態是吸引客戶、解決客戶多樣訴求的關鍵。也只有開放的生態,才能讓更多的廠商一起服務好客戶。

生態方面,百度秉承更開放的心態和第三方廠商合作。上半年我們和工具領域知名創業公司 NineData 正式合作,接下來會馬上官宣另外一個合作廠商。

相比其他廠商,我們合作的過程也不只是簡單的云市場合作。我們會和合作伙伴一起進行產品共建、優先推薦合適客戶給合作伙伴、首頁曝光和聯合的品牌活動,增加合作方的知名度。

通過一系列的手段和措施,我們希望給到合作伙伴的是切實效果。百度智能云合作的理念就是更開放,讓利合作伙伴。歡迎更多的合作伙伴和百度聯系,一起服務好我們的客戶。

總的來說,一個體驗優先,生態開放的云,一定是客戶最需要的云,也是真誠服務客戶的云。

4 數據庫未來的趨勢展望

站在當前看未來,數據庫當前有四個關鍵發展趨勢

  • AI Native。像大家比較頭疼的 Oracle 轉 MySQL 或者 PG,隨著 AI 改寫的到來,整個過程預計會變得很簡單。
  • Serverless。已經是海外云數據庫的默認選項了,預計 1~2 年之后,serverless 就會在國內變得更普及。各個廠商也都會推出 serverless 數據庫產品,這也是未來云產品的終極形態。
  • 內置 HTAP。HTAP 前段時間很火,不過我們判斷 HTAP 很難成為一個單獨的賽道,更多的是會成為各個 TP 數據庫的內置能力。
  • 湖倉一體。湖倉一體預計會成為數據倉庫的主要形態,不支持湖的數倉可能會很難生存,只有支持湖才能解決更多的數據問題,才能降低存儲的成本。

技術和產業發展都很快,百度智能云數據庫持續跟進最新的技術趨勢,用優質的產品和真誠的服務回報我們的客戶。

歡迎大家了解數據庫產品

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

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

相關文章

靜態HTTP和動態HTTP的混合使用:最佳實踐

在當今的互聯網環境中,靜態HTTP和動態HTTP各有其優勢和局限。靜態HTTP具有速度快、安全性高和易于維護的特點,而動態HTTP則能夠實現動態交互和處理大量動態數據。為了充分利用兩者的優勢,越來越多的網站開始采用靜態HTTP和動態HTTP混合使用的…

計算機的存儲規則

計算機存儲 計算機采用二進制來存儲數據和程序 原因主要有: (1) 物理上容易實現 (2) 運算規則非常簡單 (3) 可靠性強 (4) 易于實現邏輯運算和邏輯判斷 計算機中存儲器的分類及特點 根據存儲器在計算機系統中所起的作用 分為內存儲器和外存儲器 (1) 內存用來…

大數據畢業設計之前端02:架構布局和aside的設計

前言 上一篇主要講了我學習前端的一個經歷,以及為什么選擇BuildAdmin作為深入前端學習的原因.同事也大致聊了一下學習前端需要使用哪些技術棧。 本篇文章來拆解一下BuildAdmin的前端代碼結構,和布局實現的細節。 前端代碼結構 必須先了解項目的結構&…

leetcode每日一題37

92.反轉鏈表II 這道題需要1.找到位置left 2.在位置left開始,一前一后兩個指針反轉鏈表,代碼同206.反轉鏈表,直到后一個指針指向right 3.把反轉后的頭節點鏈接到left-1后面,把反轉后的鏈表尾節點指向right1位置的節點 因為可能會反…

數據結構——二叉樹的鏈式結構

個人主頁:日刷百題 系列專欄:〖C語言小游戲〗〖Linux〗〖數據結構〗 〖C語言〗 🌎歡迎各位→點贊👍收藏??留言📝 ? 一、二叉樹的創建 這里我們使用先序遍歷的思想來創建二叉樹,這里的內容對于剛接觸二…

iClient3D 加載天地圖服務

1 對國家天地圖,通過TiandituImageryProvider影像服務提供者加載地圖; var TiandituimageryLayernew Cesium.TiandituImageryProvider({ mapStyle: Cesium.TiandituMapsStyle[value],token: "4a00a1dc5387b8ed8adba3374bd87e5e"})viewer.imag…

nginx 的概念、高并發處理及詳細參數配置

NGINX是一個開源的高性能Web服務器,負載均衡器和反向代理服務器。它特別適用于高并發的Web應用,能夠有效地處理數千并發連接,同時具備低資源消耗和高性能的特點。在這里,我將重點介紹NGINX的高并發處理能力和參數配置。 高并發處…

云原生(Cloud Native)——概念,技術,背景,優缺點,實踐例子

云原生(Cloud Native)是一種構建和運行應用程序的方法,這些應用程序充分利用云計算的優勢。云原生應用程序通常設計為在現代、動態的環境中運行,如公共云、私有云和混合云。這種方法強調微服務架構、容器化、自動化、易于管理和可…

QT 信號與槽 connect 三種寫法

先看下示例: QPushButton *btn new QPushButton;// 方式一:老式寫法connect(btn, SIGNAL(clicked()), this, SLOT(close()));// 方式二:Qt5后新寫法connect(btn, &QPushButton::clicked, this, &MainWindow::close);// 方式三&#…

Word插件-好用的插件-一鍵設置字體--大珩助手

常用字體 整理了論文、公文常用字體 整理了常用的論文字體,可一鍵設置當前節或選擇的文字的字體 字體設置 包含字體選擇、字體顏色 特殊格式 包含首字下沉、段落分欄、統一寬度、雙行合一、上標切換、下標切換、轉為全角、轉為半角、挖詞填空、當前日期、大寫金…

LabVIEW開發遠程結構健康監測系統

LabVIEW開發遠程結構健康監測系統 工程師依賴于振動監測來評估建筑物、橋梁和其他大型結構的完整性。傳統的振動監測工具在數據收集上存在限制,無法長時間收集高保真波形。隨著內存存儲、處理器速度和寬帶無線通信技術的進步,出現了對能夠長時間收集并實…

Navicat 技術指引 | 適用于 GaussDB 分布式的查詢功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

深入了解對象與內置構造函數

1. 深入對象 1.1 創建對象的三種方式 1.2 構造函數 語法約定: 總結 構造函數可以快速創建多個對象大寫字母開頭的函數使用new關鍵字將對象實例化構造函數不需要返回值自動返回新的對象 new實例化的執行過程 創建空對象this指向對象執行代碼,追加新…

使用wire重構商品微服務

一.wire簡介 Wire 是一個輕巧的Golang依賴注入工具。它由Go Cloud團隊開發,通過自動生成代碼的方式在編譯期完成依賴注入。 依賴注入是保持軟件 “低耦合、易維護” 的重要設計準則之一。 此準則被廣泛應用在各種開發平臺之中,有很多與之相關的優秀工…

使用pyftpdlib組件實現FTP文件共享

目錄 一、引言 二、技術背景 三、實現邏輯 1、創建FTP服務器: 2、實現文件共享: 3、設置用戶權限: 4、處理異常: 5、優化與擴展: 四、代碼實現 五、測試與評估 測試用例: 評估方法:…

React/Vue/Svelte 前端項目中開始使用TailwindCSS

背景 TailwindCSS 近年來在前端圈非常流行,它擺脫了原有的CSS限制,以靈活實用為賣點,用戶通過各種class組合即可構建出漂亮的用戶界面。對于初學者而言,可能需要一些上手成本,一旦掌握實用技巧后,Tailwind…

Unity中Batching優化的GPU實例化整理總結

文章目錄 前言一、GPU Instancing的支持1、硬件支持2、Shader支持3、腳本支持 二、我們來順著理一下GPU實例化的使用步驟1、GPU實例化前的C#代碼準備2、在 appdata 和 v2f 中定義GPU實例化ID3、在頂點著色 和 片元著色器 設置GPU Instance ID,使實例化對象頂點位置正…

Docker的資源控制

Docker的資源控制: 對容器使用宿主機的資源進行限制。 CPU 內存 磁盤I/O(讀寫性能) docker使用linux自帶的功能cgroup control groups是linux內核系統提供的一種可以限制,記錄,隔離進程組所使用的物理資源的一種機制。 docker借助這個機制…

go grpc高級用法

文章目錄 錯誤處理常規用法進階用法原理 多路復用元數據負載均衡壓縮數據 錯誤處理 gRPC 一般不在 message 中定義錯誤。畢竟每個 gRPC 服務本身就帶一個 error 的返回值,這是用來傳輸錯誤的專用通道。gRPC 中所有的錯誤返回都應該是 nil 或者 由 status.Status 產…

如何克服微服務測試的挑戰,并最大化收益

多年來,微服務一直是行業趨勢,但組織卻未能從該方法中獲益,并因發布失敗而苦苦掙扎。這些失敗通常歸結為測試服務之間的接口以獲得預期的質量、安全性和性能的困難。 最終,未能以足夠穩健的方式測試這些 API。一線希望是遺留 SOA…