主頁 >  其他 > 開源云原生大潮下的訊息和流系統演進

開源云原生大潮下的訊息和流系統演進

2022-02-12 09:23:54 其他

云原生的誕生是為了解決傳統應用在架構、故障處理、系統迭代等方面的問題,而開源則為企業打造云原生的架構貢獻了中堅力量,本文作者在全身心投入開源以及每日參與云原生的程序中,對開源行業和云原生流系統解決方案有了不一樣的思考與實踐,

作者 | 李鵬輝 責編 | 唐小引
出品 | 新程式員

隨著業務與環境的變化,云原生的趨勢越來越明顯,現在正是企業從云計算向云原生轉型的時代,云原生理念經過幾年落地實踐的打磨已經得到了企業的廣泛認可,云上應用管理更是成為企業數字化轉型的必選項,可以說,現在的開發者,或正在使用基于云原生技術架構衍生的產品和工具,或正是這些產品和工具的開發者,

本文出自《新程式員·云原生和全面數字化實踐》

在這里插入圖片描述

云原生成為基礎戰略

那么,什么是云原生?每個人都有不同的解釋,我認為,首先,云原生就是為了在云上運行而開發的應用,是對于企業持續快速、可靠、規模化地交付業務的解決方案,云原生的幾個關鍵詞,如容器化、持續交付、DevOps、微服務等無一不是在詮釋其作為解決方案的特性與能力,而Kubernetes更以其開創性的宣告式API和調節器模式,奠定了云原生的基礎,

其次,云原生是一種戰略,云原生的誕生是為了解決傳統應用在架構、故障處理、系統迭代等方面存在的問題,從傳統應用到云,與其說是一次技術升級,不如說將其視為戰略轉型,企業上云面臨應用開發、系統架構、企業組織架構,甚至商業產品的全面整合,是否加入云原生大潮一次是將從方方面面影響企業長期發展的戰略性決策,

搭配開源底色的云原生

近幾年誕生的與架構相關的開源專案大部分采用云原生架構設計,開源為企業打造云原生的架構貢獻了中堅力量,

開源技術與生態值得信任,云可以給用戶帶來好的伸縮性,降低資源浪費,云原生和開源的關系也可以從以CNCF為主的開源基金會持續推進云原生的發展中略窺一二,許多開源專案本身就是為云原生架構而生的,這是用戶上云會優先考慮的基礎軟體特點,

以Apache軟體基金會為例,它是一個中立的開源軟體范訓和治理平臺,Apache軟體基金會在長期的開源治理中,總結出的Apache之道(Apache Way)被大家奉為圭臬,其中“社區大于代碼”廣為流傳,即沒有社區的專案是難以長久的,一個社區和代碼保持高活躍度的開源專案,經過全世界開發者在多種場景的打磨,可以不斷完善、頻繁地升級迭代,并誕生豐富的生態以滿足不同的用戶需求,云原生大潮與當前開源大環境兩種因素疊加,就會使那些伴隨技識訓境不斷升級的優秀技術推陳出新、脫穎而出,不適應時代的技識訓漸漸落后,甚至被淘汰,正如我之前所說,云原生是戰略性決策,企業的戰略性決策必定會首選最先進、最可靠的技術,

為云而生的訊息流資料系統

前文講述了云原生環境下開源的重要性,那么一個云原生的開源專案需要如何去設計、規劃和演進?云原生時代的企業數字化轉型應如何選擇訊息和流系統?在本文中,我將以自己全身心投入的開源云原生訊息和流資料系統Apache Pulsar的設計和規劃為例進行剖析,希望能夠為大家提供參考思路,并為尋求訊息和流資料系統解決方案帶來啟發,

回顧歷史:訊息與流的雙軌制

訊息佇列通常用于構建核心業務應用程式服務,流則通常用于構建包括資料管道等在內的實時資料服務,訊息佇列擁有比流更長的歷史,也就是開發者們所熟悉的訊息中間件,它側重在通信行業,常見的系統有RabbitMQ和ActiveMQ,相對來說,流系統是一個新概念,多用于移動和處理大量資料的場景,如日志資料、點擊事件等運營資料就是以流的形式展示的,常見的流系統有Apache Kafka和AWS Kinesis,

由于之前的技術原因,人們把訊息和流分為兩種模型分別對待,企業需要搭建多種不同的系統來支持這兩種業務場景(見圖1),由此造成基礎架構存在大量“雙軌制”現象,導致資料隔離、資料孤島,資料無法形成順暢流轉,治理難度大大提升,架構復雜度和運維成本也都居高不下,

在這里插入圖片描述

圖1 企業搭建不同的系統支持業務場景導致的“雙軌制”

基于此,我們亟須一個集成訊息佇列和流語意的統一實時資料基礎設施,Apache Pulsar由此而生,訊息在Apache Pulsar主題上存盤一次,但可以通過不同訂閱模型,以不同的方式進行消費(見圖2),這樣就解決了傳統訊息和流“雙軌制”造成的大量問題,
在這里插入圖片描述

圖2 Apache Pulsar集成訊息佇列與流語意

實作天然云原生的關鍵要素

上文提到,云原生時代帶給開發者的是能夠快速擴縮容、降低資源浪費,加速業務推進落地,有了類似Apache Pulsar這種天然云原生的訊息和流資料基礎設施,開發者可以更好地聚焦在應用程式和微服務開發,而不是把時間浪費在維護復雜的基礎系統上,

為什么說Apache Puslar是“天然云原生”?這與在當初設計原型的底層架構有關,存盤計算分離、分層分片的云原生架構,極大地減輕了用戶在訊息系統中遇到的擴展和運維困難,能在云平臺以更低成本給用戶提供優質服務,能夠很好地滿足云原生時代訊息系統和流資料系統的需求,

生物學有一個結論,叫“結構與功能相適應”,從單細胞原生生物到哺乳動物,其生命結構越來越復雜,具備的功能也越來越高級,基礎系統同理,“架構與功能相適用”體現在Apache Pulsar上有這樣幾點:

  • 存盤計算分離架構可保障高可擴展性,可以充分發揮云的彈性優勢,

  • 跨地域復制,可以滿足跨云資料多備的需求,

  • 分層存盤,可充分利用如AWS S3等的云原生存盤,有效降低資料存盤成本,

輕量化函式計算框架Pulsar Functions,類似于AWS Lambda平臺,將FaaS引入Pulsar,而Function Mesh是一種Kubernetes Operator,助力用戶在Kubernetes中原生使用Pulsar Functions和連接器,充分發揮Kubernetes資源分配、彈性伸縮、靈活調度等特性,

基礎架構:存盤計算分離、分層分片

上文說到,Pulsar在誕生之初就采用了云原生的設計,即存盤計算分離的架構,存盤層基于Apache軟體基金會開源專案BookKeeper,BookKeeper是一個高一致性、分布式只追加(Append-only)的日志抽象,與訊息系統和流資料場景類似,新的訊息不斷追加,剛好應用于訊息和流資料領域,

Pulsar架構中資料服務和資料存盤是單獨的兩層(見圖3),資料服務層由無狀態的Broker節點組成,資料存盤層則由Bookie節點組成,服務層和存盤層的每個節點對等,Broker僅負責訊息的服務支持,不存盤資料,這為服務層和存盤層提供了獨立的擴縮容能力和高可用能力,大幅減少了服務不可用時間,BookKeeper中的對等存盤節點,可以保證多個備份被并發訪問,也保證了即使存盤中只有一份資料可用,也可以對外提供服務,
在這里插入圖片描述

圖3 Pulsar架構

在這種分層架構中,服務層和存盤層都能夠獨立擴展,提供靈活的彈性擴容,特別是在彈性環境(如云和容器)中能自動擴縮容,動態適應流量峰值,同時,顯著降低集群擴展和升級的復雜性,提高系統的可用性和可管理性,此外,這種設計對容器也非常友好,

Pulsar將主題磁區按照更小的分片粒度來存盤(見圖4),這些分片被均勻打散,將會分布在存盤層的Bookie節點上,這種以分片為中心的資料存盤方式,將主題磁區作為一個邏輯概念,分為多個較小的分片,并均勻分布和存盤在存盤層中,這樣的設計可以帶來更好的性能、更靈活的擴展性和更高的可用性,
在這里插入圖片描述

圖4 分片存盤模型

從圖5可見,相比大多數訊息佇列或流系統(包括Apache Kafka)均采用單體架構,其訊息處理和訊息持久化(如果提供了的話)都在集群內的同一個節點上,此類架構設計適合在小型環境部署,當大規模使用時,傳統訊息佇列或流系統就會面臨性能、可伸縮性和靈活性方面的問題,隨著網路帶寬的提升、存盤延遲的顯著降低,存盤計算分離的架構優勢變得更加明顯,

在這里插入圖片描述

圖5 傳統單體架構vs存盤計算分層架構

讀寫區別

接著上述內容,我們來看一下訊息的寫入、讀取等方面的區別體現在哪里,

首先看寫入,圖6左側是單體架構的應用,資料寫入leader,leader將資料復制到其他follower,這是典型的存盤計算不分離的架構設計,在圖6右側則是存盤計算分離的應用,資料寫入Broker,Broker并行地往多個存盤節點上寫,假如要求3個副本,在選擇強一致性、低延遲時兩個副本回傳才算成功,如果Broker有leader的角色,就會受限于leader所在機器的資源情況,因為leader回傳,我們才能確認訊息成功寫入,

在這里插入圖片描述

圖6 單體架構與分層架構寫入對比

在右側對等的分層架構中,三個中任意兩個節點在寫入后回傳即為成功寫入,我們在AWS上進行性能測驗時發現,兩種結構在刷盤時的延遲也會有幾毫秒的差距:在單機系統中落在leader上的topic會有延遲,而在分層架構中受到延遲影響較小,

在實時資料處理中,實時讀取占據了90%的場景(見圖7),在分層架構中,實時讀取可以直接通過Broker的topic尾部快取進行,不需要接觸存盤節點,能夠在很大程度上提升資料讀取的效率和實時性,

在這里插入圖片描述

圖7 單體架構與分層架構讀取實時資料對比

架構也導致了讀取歷史資料時的區別,從圖8可見,在單體架構中,回放訊息時直接找到leader,從磁盤上讀取訊息,在存盤計算分離的架構上,需要將資料加載到Broker再回傳客戶端,以此保證資料讀取的順序性,當讀取資料對順序性沒有嚴格要求時,Apache Pulsar支持同時并行從多個存盤節點讀取資料段,即使是讀取一個topic的資料也可以利用多臺存盤節點的資源提升讀取的吞吐量,Pulsar SQL也是利用這種方式來讀取的,
在這里插入圖片描述

圖8 單體架構與分層架構讀取歷史資料對比

IO隔離

BookKeeper內部做了很好的資料寫入和讀取的IO隔離,BookKeeper可以指定兩類存盤設備,圖9左側是Journal盤存放writeheadlog,右側才是真正存盤資料的地方,即使在讀取歷史資料時,也會盡可能地保證寫入的延遲不會受到影響,

在這里插入圖片描述

圖9 BookKeeper的IO隔離

如果利用云平臺的資源,Pulsar的IO隔離可以讓用戶選擇不同的資源型別,由于Journal盤并不需要存放大量的資料,很多云用戶會根據自己的需求配置來達到低成本、高服務質量的目的,如Journal盤使用低存盤空間、高吞吐低延遲的資源,資料盤選擇對應吞吐可以存放大量資料的設備,

擴縮容

存盤計算分離允許Broker和BookKeeper分別進行擴縮容,下面為大家介紹擴縮容topic的程序,假設n個topic分布在不同的Broker上,新的Broker加入能夠在1s內進行topic ownership的轉移,可視為無狀態的topic組的轉移,這樣,部分topic可以快速地轉移至新的Broker,

對于存盤節點來說,多個資料分片散布在不同的BookKeeper節點上,擴容時即新加入一個BookKeeper,并且這種行為不會導致歷史資料的復制,每一個topic在經歷一段時間的資料寫入后,會進行分片切換,即切換到下一個資料分片,在切換時會重新選擇Bookies放置資料,由此達到逐漸平衡,如果有BookKeeper節點掛掉,BookKeeper會自動補齊副本數,在此程序中,topic不會受到影響,

跨云資料多備

Pulsar支持跨云資料多備(見圖10),允許組成跨機房集群來進行資料的雙向同步,很多國外用戶在不同的云廠商部署跨云集群,當有一個集群出現問題時,可以快速切換到另外的集群,異步復制只會產生細微的資料同步缺口,但可以獲得更高的服務質量,同時訂閱的狀態也可以在集群間同步,
在這里插入圖片描述

圖10 跨云資料多備

進入無服務器架構時代

Pulsar Functions與Function Mesh讓Pulsar跨入了無服務器架構時代,Pulsar Functions是一個輕量級的計算框架,主要是為了提供一個部署和運維都能非常簡單的平臺,Pulsar Functions主打輕量、簡單,可用于處理簡單的ETL作業(提取、轉化、加載)、實時聚合、事件路由等,基本可以覆寫90%以上的流處理場景,Pulsar Functions借鑒了無服務器架構(Serverless)和函式即服務(FaaS)理念,可以讓資料得到“就近”處理,讓價值得到即時挖掘(見圖11),

在這里插入圖片描述
圖11 單條Pulsar Function訊息流轉

Pulsar Functions只是單個應用函式,為了讓多個函式關聯在一起,組合完成資料處理目標,誕生了Function Mesh(已開源),Function Mesh同樣采用無服務器架構,它也是一種Kubernetes Operator,有了它,開發者就可以在Kubernetes上原生使用Pulsar Functions和各種Pulsar連接器,充分發揮Kubernetes資源分配、彈性伸縮、靈活調度等特性,例如,Function Mesh依賴Kubernetes的調度能力,確保Functions的故障恢復能力,并且可以在任意時間適當調度Functions,

Function Mesh主要由Kubernetes Operator和Function Runner兩個組件組成,Kubernetes Operator監測Function Mesh CRD、創建Kubernetes資源(即StatefulSet),從而在Kubernetes運行Function、連接器和Mesh,Function Runner負責呼叫Function和連接器邏輯,處理從輸入流中接收的事件,并將處理結果發送到輸出流,目前,Function Runner基于Pulsar Functions Runner實作,

當用戶創建Function Mesh CRD時(見圖12),Function Mesh控制器從Kubernetes API服務器接收已提交的CRD,然后處理CRD并生成相應的Kubernetes資源,例如,Function Mesh控制器在處理Function CRD時,會創建StatefulSet,它的每個Pod都會啟動一個Runner來呼叫對應的Function,

在這里插入圖片描述

圖12 Function Mesh處理CRD程序

Function Mesh API基于現有Kubernetes API實作,因此Function Mesh資源與其他Kubernetes原生資源兼容,集群管理員可以使用現有Kubernetes工具管理Function Mesh資源,Function Mesh采用Kubernetes Custom Resource Definition(CRD),集群管理員可以通過CRD自定義資源,開發事件流應用程式,

用戶可以使用kubectl CLI工具將CRD直接提交到Kubernetes集群,而無須使用pulsar-admin CLI工具向Pulsar集群發送Function請求,Function Mesh控制器監測CRD并創建Kubernetes資源,運行自定義的Function、Source、Sink或Mesh,這種方法的優勢在于Kubernetes直接存盤并管理Function元資料和運行狀態,從而避免在Pulsar現有方案中可能存在的元資料與運行狀態不一致的問題,

結語

在本文中,我分享了自己在云原生環境下,對于開源行業的思考和云原生流平臺解決方案的技術實踐,作為一名全身心投入的開源人,我很高興看到近幾年有越來越多的人認可開源理念并成為開源開發者與貢獻者,開源行業正在蓬勃發展,我希望能和無數的開發者一樣,在開源道路上一往無前,助力更多企業加速云原生和數字化行程,

本文出自《新程式員·云原生和全面數字化實踐》,在《新程式員003》中,我們聚焦“云原生時代的開發者”與“全面數字化轉型”兩大主題,阿里、位元組跳動、網易、快手、亞馬遜等互聯網大廠的云原生技術的賦能者,從技術定義、技術應用、實踐案例分享等方面,以直擊內核的硬核輸出全面決議云原生,幫助開發者在云原生時代快速找到適合自身發展的技術范式,

同時,我們也將對微軟、英特爾、華為、施耐德、西門子等首批開啟數字化轉型的企業展開報道,通過十多位技術專家分享的鮮活案例,一窺金融、新零售、工業物聯網等領域的數字化轉型成果,幫助更多關注數字化轉型的開發者從先驅者的經驗中獲得啟迪,
閱讀更多相關技術文章及行業資訊,歡迎訂閱《新程式員003》紙質書+電子書,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423736.html

標籤:其他

上一篇:Linux 部署專案

下一篇:小公司比較吃虧的兩道微服務面試題

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more