国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用開源SFU構建RTC云服務

LiveVideoStack ? 來源:LiveVideoStack ? 2020-07-13 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:本文由百度智能云RTC產(chǎn)品技術負責人 李永興LiveVideoStack線上分享的內(nèi)容整理而成,從系統(tǒng)架構角度,分析了常見的開源SFU在分布式部署以及高可用、高并發(fā)方面的不足,并提出相應的解決方案。

大家好,我是來自百度智能云的李永興,在百度智能云媒體云團隊主要負責RTC產(chǎn)品的研發(fā)工作。

01 開源SFU的現(xiàn)狀與不足

在研發(fā)RTC產(chǎn)品的過程中,我們調(diào)研了許多優(yōu)秀的開源WebRTC服務器,例如:Janus、MediaSoup、Licode、SRS4等,這些SFU都有不同的設計理念和特點,我們從中受益頗多。同時我們也發(fā)現(xiàn)如果要基于這些優(yōu)秀的開源的SFU構建一個高可用高并發(fā)的RTC云服務,就必須對這些SFU進行相應的改造。本次分享會主要介紹這些“改造部分”,這些改造其實具備一些普遍性,即針對開源SFU普遍存在的問題進行優(yōu)化和改造,并不局限于某一特定的SFU。RTC云服務的要求

要想構建一個RTC云服務,存在以下幾點要求:

高并發(fā):RTC云服務必須要支持海量并發(fā)用戶,同時還需要支持海量房間。

高性能:除了單機性能,能抗更多的流次外,還要具備更高的連通率,保證通信的穩(wěn)定。同時還要求有很強的抗弱網(wǎng)性能。

高可用:單機單節(jié)點出現(xiàn)故障時不影響系統(tǒng)可用性。

彈性伸縮:系統(tǒng)可以很方便的進行擴容操作,并且擴容時盡可能減少相應配置,這樣可以使系統(tǒng)迅速進行擴容。

當前一些開源SFU的現(xiàn)狀,例如Janus和MediaSoup,其服務端都會開UDP的操作范圍,即服務端用不同的端口服務不同的客戶端的媒體連接。同時在Janus中,信令和媒體是耦合在一起的;而在MediaSoup中,官方提供了nodejs庫,其本身只是一個媒體層的庫。但同時官方也提供了一個Demo,其媒體層和信令也是耦合在一起的;SRS4實際是國產(chǎn)之光,產(chǎn)品推出的時間不久,目前只支持WebRTC拉流功能。 對于這些開源SFU,主要的改進點有:

使用端的UDP服務端端口進行流媒體的傳輸;

信令和媒體層分離設計,可以支持大規(guī)模分布式部署;

關于級聯(lián)方面,各個開源SFU都沒有相對完整的解決方案。在我們的系統(tǒng)中,采用路由表方式的級聯(lián),并且是私有協(xié)議的級聯(lián),可以很好的支持和用戶就近接入。

當然對于整個RTC云服務,除了SFU這個核心功能之外,RTC云服務還需要支持一些混流、錄制、多協(xié)議網(wǎng)關支持(例如RTMP的接入:方便微信小程序的接入、SIP的接入)等。 02 單端口方案

目前無論是Janus還是MediaSoup,服務端都是使用單獨的UDP端口服務單獨的PeerConnection, SFU在啟動時會配置一個可用的UDP的端口范圍,用于客戶端的數(shù)據(jù)傳輸。服務端接收到客戶端的請求后,會從配置的端口范圍內(nèi)為客戶端分配一個未被使用的端口,通過SDP把服務端的端口傳給客戶端??蛻舳耸盏絊DP端口并進行解析,然后就可以向服務端發(fā)送或接收數(shù)據(jù)。這就要求服務端同時暴露成千上萬個端口,對于網(wǎng)絡安全性是很不友好的,同時可運維性也較差。另外,客戶端的網(wǎng)絡可能會對目的端口進行一些限制,如果分配的端口在允許范圍之外,那么客戶端就連接不到服務器,導致整個連通的失敗。 為了實現(xiàn)云服務的高可用、彈性伸縮一般會配置負載均衡設備作為網(wǎng)絡的接入設備。在真正生產(chǎn)環(huán)境中,可能一個IP后面會掛著幾十甚至上百臺機器,當機器宕機時不會導致整個服務的不可用。常見的負載均衡設備中很少看到有支持UDP PortRange方式的,即使支持了,由于暴露了很多端口,健康檢查方面實際是不可能完成的任務。 鑒于以上問題,我們就需要對SFU進行相應的改造,以使得服務端使用單端口對流媒體的數(shù)據(jù)進行傳輸。 Janus使用了Libnice庫作為底層網(wǎng)絡傳輸庫,該庫本身是多端口的實現(xiàn),因此要在Janus基礎上實現(xiàn)單端口存在兩種方案:一種是直接替換掉Libnice庫,重新構建底層,改為單端口的傳輸方式。但是由于Janus和Libnice庫的耦合非常緊密,若要使用重新構建底層的方式,實現(xiàn)較為復雜的,難度很大;另外一種方式就是保留Libnice多端口的實現(xiàn),在Janus上增加單端口代理的功能。代理的功能是指將單一的對外端口傳輸?shù)目蛻舳说臄?shù)據(jù),在接收到數(shù)據(jù)之后,同時將相應的數(shù)據(jù)轉(zhuǎn)發(fā)到Libnice內(nèi)部分配的不同服務端的內(nèi)部端口中。這種方式修改起來會更簡單一些。

若選擇使用代理方式,其實現(xiàn)難點在于來自不同客戶端的數(shù)據(jù)都是通過同一個服務端端口進行傳輸,服務端該如何判斷傳輸?shù)臄?shù)據(jù)與用戶的對應關系。對此,我們可以通過SDP協(xié)商里面的ICE-Ufrag字段進行解決,當服務端接收到客戶端的SDP后,按照之前的流程,會創(chuàng)建本地服務的端口,并且將相應的ICE-Ufrag與該端口映射起來。服務端會將對外的IP端口寫入SDP傳給客戶端,然后一直監(jiān)聽對外端口??蛻舳私?lián)時會發(fā)送Stun包, Stun包中會帶有ICE-Ufrag,服務端接收并解析出ICE-Ufrag,再根據(jù)之前的映射關系,從IP-MAPS中找到對應的服務端端口。同時服務端還會記錄Stun包的來源客戶端IP和端口,服務端就會將用戶側(cè)的IP和端口與服務端的IP和端口映射起來。每次收到客戶端的數(shù)據(jù)之后,就可以查看數(shù)據(jù)源的IP和端口,通過MAP的映射關系查到對應的服務端的端口,將數(shù)據(jù)轉(zhuǎn)發(fā)到相應的服務端端口中。同理,服務端發(fā)出的數(shù)據(jù)也會從映射關系中找到對應客戶端的IP和端口,通過單個端口發(fā)出。 通過這種單端口的方案,我們就可以將SFU部署在負載均衡設備之后,并且可以很方便的進行臺線擴容和健康檢查,達到高并發(fā)和高可用的目的。另外,服務端是有公網(wǎng)地址的,因此WebRTC的ICE、打洞的操作實際上也就不需要了。在進行地址映射時,需要使用客戶端Stun包的真實地址。在測試中我們發(fā)現(xiàn),有時候真實地址與客戶端發(fā)送過來的Candidate中的地址不一樣,如果使用Candidate中的地址則會存在連通失敗的問題。 MediaSoup雖然也是多端口方案,但是并未使用Libnice庫,因此可以直接在底層實現(xiàn)整套單端口方案,并不需要Porxy的存在。 這里值得一提的是SRS4,雖然SRS4目前只支持WebRTC的拉流,但是其實現(xiàn)是基于原生的單端口方案,沒有使用Libnice庫,整個MAP的建立過程與前面所描述的是一致的,也不需要Porxy的存在。SRS4在單端口方面還是相當友好的,可以很簡單的實現(xiàn)集群化的分布式部署。 03 信令分離

WebRTC標準本身并沒有規(guī)定信令的部分,因此各個開源的SFU基本都是自定義實現(xiàn)的。Janus實現(xiàn)了基于HTTP或WebSocket的信令,MediaSoup本身是nodejs的庫,不包含信令部分,但是其官方的Demo也實現(xiàn)了HTTP或WebSocket的信令。它們的共同點是信令部分的實現(xiàn)和媒體部分的實現(xiàn)是集成在一起的。信令一般基于TCP協(xié)議的,媒體一般是基于UDP協(xié)議的。如果它們的實現(xiàn)集成在一起的話,就需要一個客戶端的TCP信令和UDP流媒體數(shù)據(jù)發(fā)送到服務端的同一臺機器上。這主要是因為服務端在收到客戶端的信令后,會在本機進行一些資源的初始化工作,如果TCP信令和UDP流媒體數(shù)據(jù)不在同一臺機器上是無法完成的。 這樣就存在兩種簡單的方案,其一:每臺機器都有一個單獨的公網(wǎng)IP;其二使用源地址哈希的負載均衡。 如果選擇單獨的公網(wǎng)IP的方案,功能實現(xiàn)沒有問題,但并不能達到高可用、高并發(fā)的要求。一臺機器對應一個IP,如果這臺機器上的流特別多,就會很難負載,無法進行彈性擴容。 我們的主要目的就是希望同一個客戶端的TCP和UDP負載到同一個服務器上,而使用源地址哈希的方式,會出現(xiàn)兩個問題:一個是負載不均衡的問題,如果多個用戶共享同一個網(wǎng)絡出口的話,會造成負載的不均衡;另外一個問題是在實際網(wǎng)絡過程中,即使是同一個客戶端,它的TCP出口與UDP出口也可能并不相同,這就會導致客戶端的整個連通失敗。

根據(jù)以上分析可知,造成這種問題的根本原因是由于SFU同時提供了信令和媒體服務,我們的解決方案就是將信令從SFU中分離出來,信令分離其實有兩層意思,其一:是將信令服務從SFU中分離,SFU作為單純的流媒體處理器使用。其二:是將信令分為兩部分,一部分是與客戶端交互的信令,另外一部分是信令服務器與SFU或MeidiaServer之間的內(nèi)部交互信令。 將信令服務分離之后,就可以單獨實現(xiàn)信令服務器,為客戶提供基于TCP的信令服務,包括SDP解析、生成服務??蛻舳耸紫纫B接到信令服務器上,進行媒體協(xié)商,信令服務器會根據(jù)一定的策略選擇SFU或MeidiaServer的節(jié)點的IP通過SDP返回給客戶端,同時信令服務器還會把接收到的客戶端信息向?qū)姆峙涞腟FU進行廣播??蛻舳私邮盏絊DP之后,根據(jù)IP相應的連接到SFU的節(jié)點,SFU的節(jié)點中的所有機器其實都已經(jīng)具備了客戶端的信息,這樣客戶端就可以進行正常的推拉流。 因為采用了信令分離,所以也就不需要依賴于源地址哈希的負載均衡策略。同一個客戶端的多個PeerConnection可能會打到后端不同的SFU上,也就達到了比較好的負載均衡的目的。 信令分離之后,緊接著的一個問題就是:信令服務器與SFU或MeidiaServer之間內(nèi)部信令如何交互。信令服務器需要向SFU或MeidiaServer廣播用戶的信息,SFU需要向信令服務器上報一些媒體狀態(tài)。這些內(nèi)部信令的特點就是可以異步處理,不需要等待處理的返回結果,因此就可以使用消息隊列去完成內(nèi)部信令的交互,消息隊列的引入進一步使得信令服務器與SFU進行應用的解耦,二者的部署就更加靈活。信令服務器可以與SFU進行混合部署,也可以進行單獨部署。 信令服務器除了向客戶端提供一些信令服務之外,還會使用客戶端真實的IP通過http-DNS服務獲得最佳的SFU節(jié)點地址,并返回給客戶端。這樣就會使得SFU的調(diào)度更加的準確,提供更好的服務。 Janus的信令與媒體的耦合較為緊密,因此分離起來會稍顯復雜,同樣有兩種方案:一種是基于現(xiàn)有的Videoroom的插件去做修改,另外一種是直接自己實現(xiàn)一個SFU插件。兩者的工作量都不算太小,如果自己實現(xiàn)SFU插件,Janus Core里面的部分也需要進行修改。 對于MediaSoup本身來說,它只是一個nodejs庫,不包含信令部分,只需要實現(xiàn)一些上層消息隊列的收發(fā)以及內(nèi)部信令的解析功能即可,需要一個單獨的信令服務器與客戶端提供信令服務。 SRS4內(nèi)部有一個很簡單的拉流信令部分,如果想用SRS4實現(xiàn)WebRTC的拉流功能,信令的分離工作也是需要去做的。 04 級聯(lián)Relay

對于級聯(lián)Relay部分的改造,RTC的多方通話存在跨地域、跨運營商的問題。為滿足更多用戶的優(yōu)質(zhì)體驗,需要用戶就近接入,即通話多方分布在不同的SFU上。這就需要我們的SFU具備級聯(lián)Relay的能力,將相關的媒體流轉(zhuǎn)發(fā)到需要媒體流的SFU上。目前開源的Janus和MediaSoup都不具備完備的級聯(lián)能力,都需要進行相應的改造。 級聯(lián)主要涉及兩個問題:其一,網(wǎng)絡拓撲的問題,其二是級聯(lián)協(xié)議的問題。 級聯(lián)網(wǎng)絡拓撲問題中最主要的是級聯(lián)路由選擇的問題。傳統(tǒng)的CDN網(wǎng)絡是樹形結構,由中心節(jié)點和邊緣節(jié)點構成,其主要優(yōu)點是回源結構比較簡單,多級放大,并發(fā)能力較強。其主要缺點是由于中心源棧的存在,多級的回源結構導致延遲較大,不太適合RTC的應用。 由于網(wǎng)絡狀況每時每刻都在發(fā)生變化,所以我們也不能確定RTC的應用最適合哪種結構。因此我們在設計的時候,最看重的是網(wǎng)絡的靈活性和自適應性。 網(wǎng)絡靈活性是指可以靈活的通過配置的方式,改變網(wǎng)絡的拓撲結構,并且可以適應多種網(wǎng)絡環(huán)境。級聯(lián)可能會有很復雜的應用場景,例如,Relay可能是在公網(wǎng)做的,也可能是內(nèi)網(wǎng)做的,也可能是幾點間或內(nèi)部進行級聯(lián)。 自適應性是指系統(tǒng)可以根據(jù)實時的網(wǎng)絡狀況自動調(diào)整路由選擇。為此,在級聯(lián)中我們引入了路由表的設計,路由表就包括目的地址和下一跳地址。中心控制節(jié)點會將路由表下發(fā)到各個節(jié)點的SFU中,與CDN回源不同,由于RTC中沒有中心源站上的概念,因此采用的是主動轉(zhuǎn)發(fā)的方式,而不是類似CDN拉流回源的方式。中心節(jié)點其實會保存每條流的節(jié)點位置的信息,當某個節(jié)點需要某條流時,中心節(jié)點會向距離最近的并且有這條流的節(jié)點轉(zhuǎn)發(fā)命令,SFU收到轉(zhuǎn)發(fā)命令之后,會將路由信息寫到轉(zhuǎn)發(fā)包的頭里面,并根據(jù)路由表查詢下一跳到哪里,進行轉(zhuǎn)發(fā)。下一跳接收到轉(zhuǎn)發(fā)包之后,重復相應的過程,直到到達最后的目的地。這種做法的優(yōu)點在于每次轉(zhuǎn)發(fā)只需要中心節(jié)點下發(fā)一次命令即可,后續(xù)的轉(zhuǎn)發(fā)完全由SFU自主完成。 中心控制節(jié)點還具備路由表的自動生成能力,如果有新節(jié)點上線,會自動生成新節(jié)點相關的路由表并下發(fā),這樣就可以保證新節(jié)點上線時,自動的完成數(shù)據(jù)流轉(zhuǎn)的暢通。自適應的原理是節(jié)點主動對相鄰的節(jié)點進行延遲和丟包的探測,并將這些探測結果上傳到中心節(jié)點,中心節(jié)點根據(jù)這些探測結果對路由表進行一些調(diào)整、下發(fā),這個功能目前我們還在處于測試階段。 級聯(lián)的另外一個問題是協(xié)議的問題,級聯(lián)主要是在SFU之間進行,我們采用的是通過私有協(xié)議進行級聯(lián)。WebRTC的協(xié)議本身是基于P2P的,因此如果使用WebRTC協(xié)議做SFU之間的級聯(lián)就太重了,很多內(nèi)容是不需要的。同時我們會將一些業(yè)務信息,例如房間號、用戶號、路由信息等加到私有協(xié)議中,當接收端收到包之后就不需要再單獨進行查詢操作,同時也可以自動完成路由數(shù)據(jù)包的轉(zhuǎn)發(fā)。 SFU使用單獨的Relay端口進行私有協(xié)議和數(shù)據(jù)的監(jiān)聽和轉(zhuǎn)發(fā),同時級聯(lián)的端口也可以開放給客戶端,客戶端也就可以通過私有協(xié)議接入RTC系統(tǒng)。由于有一些公網(wǎng)Relay場景的存在,私有協(xié)議里我們還會加入丟包重傳FEC的功能,以保證公網(wǎng)之下Relay的質(zhì)量。 Janus有一個RTP forword的功能,可以將用戶的媒體流以RTP的方式forword到一個地址里。如果要基于Janus做級聯(lián),可以基于這個功能進行一些改造,增加級聯(lián)的監(jiān)聽功能,可以實現(xiàn)整個媒體流的轉(zhuǎn)發(fā)。 05 RTC云架構

上圖所示是整體的RTC云架構,除了前面講到的流媒體服務器,還包含其它一些模塊,例如業(yè)務后臺的模塊Platform,包括Relay、路由表、房間等控制,Platform、信令服務器、流媒體服務器之間使用MQ進行信令的同步和轉(zhuǎn)發(fā),另外還有一些混流的服務,將多路視頻流混成一路,推向旁路直播或者存儲,混流服務器的流媒體轉(zhuǎn)發(fā)也是通過Relay的方式進行的。除了以上,還有一些多協(xié)議的網(wǎng)關,例如支持RTMP(微信小程序)或SIP(傳統(tǒng)的視頻會議、終端)的接入。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 流媒體
    +關注

    關注

    1

    文章

    200

    瀏覽量

    17192
  • RTC
    RTC
    +關注

    關注

    2

    文章

    653

    瀏覽量

    71821

原文標題:如何使用開源SFU構建RTC云服務

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Proteintech選擇亞馬遜科技為首選服務商,構建行業(yè)首個AI抗體助手加速科研創(chuàng)新

    商,基于亞馬遜科技的計算、容器、數(shù)據(jù)庫和分析等計算服務,僅歷時六個月成功構建業(yè)內(nèi)首款AI抗體助手Able,可為全球科研人員提供精準、高效的產(chǎn)品信息與技術支持,加速科研發(fā)現(xiàn)與創(chuàng)新。
    的頭像 發(fā)表于 01-05 11:14 ?419次閱讀

    什么是企業(yè)服務器-計算

    企業(yè)服務器是指為企業(yè)提供的基于計算技術的服務器解決方案。華納是一家計算
    的頭像 發(fā)表于 12-29 17:57 ?790次閱讀

    為什么說uCentral是構建開放網(wǎng)絡的開源利器?

    uCentral是TIP主導的開源網(wǎng)絡管理系統(tǒng),其核心uCentral Controller通過開放協(xié)議實現(xiàn)設備集中管控與自動化運維。該系統(tǒng)支持配置下發(fā)、狀態(tài)監(jiān)控和閉環(huán)自愈,在數(shù)據(jù)中心場景中要求底層交換機具備NETCONF/YANG、VXLAN等開放接口能力,為構建智能
    的頭像 發(fā)表于 11-28 18:33 ?1280次閱讀
    為什么說uCentral是<b class='flag-5'>構建</b>開放網(wǎng)絡的<b class='flag-5'>開源</b>利器?

    構建基石:深入理解OpenStack網(wǎng)絡(Neutron)核心服務

    簡單來說,OpenStack 是一個開源計算管理平臺項目,它允許你使用一套軟件來構建和管理你自己的私有或公有。你可以把它想象成
    的頭像 發(fā)表于 11-11 10:41 ?1155次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>云</b>基石:深入理解OpenStack網(wǎng)絡(Neutron)核心<b class='flag-5'>服務</b>

    華為發(fā)布全新升級星河AI MSP服務解決方案

    ?華為數(shù)據(jù)通信創(chuàng)新峰會2025(HNS 2025)歐洲站期間,MSP(Managed Service Provider,管理服務提供商)高層圓桌會議在慕尼黑成功舉辦。會上,華為發(fā)布全新升級的星河AI MSP
    的頭像 發(fā)表于 10-13 09:44 ?862次閱讀

    華納服務器Linux系統(tǒng)日志集中化管理平臺搭建

    計算時代,企業(yè)運維團隊面臨服務器數(shù)量激增帶來的日志管理難題。本文詳細解析如何基于Linux系統(tǒng)構建高效的服務器日志集中化管理平臺,涵蓋
    的頭像 發(fā)表于 09-12 14:11 ?489次閱讀

    Jtti.cc零信任安全防護架構實施在VPS服務構建指南

    VPS服務器上構建零信任安全體系,從身份驗證、微隔離到持續(xù)監(jiān)測,提供一套完整的實施框架。 零信任安全防護架構實施在VPS服務
    的頭像 發(fā)表于 08-21 15:39 ?773次閱讀

    開放原子開源基金會與騰訊達成合作

    近日,在北京舉行的2025開放原子開源生態(tài)大會現(xiàn)場,開放原子開源基金會與騰訊計算(北京)有限責任公司簽署“開源協(xié)作平臺互聯(lián)合作協(xié)議”。
    的頭像 發(fā)表于 08-05 11:06 ?1338次閱讀

    開源智聯(lián)·具身同行:機智推出基于豆包的 OpenEmbodied AI技術、產(chǎn)品及開源方案

    6月11日機智攜手火山引擎、扣子發(fā)起,聯(lián)合CSDN、GitCode、廣和通、奕斯偉、愛灣學院舉辦的“開源智聯(lián)·具身同行”字節(jié)豆包AIoT開源生態(tài)沙龍圓滿成功,正式推出基于豆包
    的頭像 發(fā)表于 06-13 19:19 ?1070次閱讀
    <b class='flag-5'>開源</b>智聯(lián)·具身同行:機智<b class='flag-5'>云</b>推出基于豆包的 OpenEmbodied AI技術、產(chǎn)品及<b class='flag-5'>開源</b>方案

    HarmonyOS5服務技術分享--函數(shù)預加載文章整理

    ??嗨,親愛的開發(fā)者朋友們!??? 今天咱們來聊聊如何使用??端一體化方式開發(fā)函數(shù)??,尤其針對華為的預加載服務。整個過程會手把手帶你從零開始,涵蓋創(chuàng)建工程、編寫代碼、調(diào)試到部署,幫你輕松掌握
    發(fā)表于 05-22 20:33

    HarmonyOS5服務技術分享--存儲指南

    Hi各位開發(fā)者伙伴們!今天咱們來聊一聊HarmonyOS存儲的實戰(zhàn)玩法,手把手教你實現(xiàn)文件上傳、下載、元數(shù)據(jù)操作等核心功能。無需官方文檔的嚴肅感,咱們用最接地氣的方式搞懂這些API怎么用?。ㄎ哪└?/div>
    發(fā)表于 05-22 19:17

    HarmonyOS5服務技術分享--ArkTS開發(fā)Node環(huán)境

    氣的方式探索這個功能,結尾還有實用總結和鼓勵彩蛋哦~? ? 一、HarmonyOS函數(shù)開發(fā):核心能力與價值 HarmonyOS的函數(shù)(Serverless)為開發(fā)者提供了??無服務器架構??的便捷
    發(fā)表于 05-22 17:21

    Redis 再次開源

    的超大規(guī)模服務商的崛起,為初創(chuàng)企業(yè)和大公司都帶來了驚人的速度和規(guī)模優(yōu)勢。但對于扎根開源的公司而言,這提出了根本性挑戰(zhàn):當服務商通過基礎設
    的頭像 發(fā)表于 05-06 18:26 ?933次閱讀

    小安派BW21-CBV-Kit教程——基礎RTC例程與簡易RTC鬧鐘

    本例演示如何使用 RTC 庫方法。本函數(shù)介紹如何使用 RTC API。RTC 功能由一個獨立的 BCD 定時器/計數(shù)器實現(xiàn)。
    發(fā)表于 04-13 17:46 ?724次閱讀
    小安派BW21-CBV-Kit教程——基礎<b class='flag-5'>RTC</b>例程與簡易<b class='flag-5'>RTC</b>鬧鐘

    如何為Raspbian Bullseye構建開源OpenVINO??

    為 Raspbian* Bullseye 構建開源OpenVINO? 的變通方法步驟
    發(fā)表于 03-07 07:07