主頁 >  其他 > 【入門】ZooKeeper 相關概念總結

【入門】ZooKeeper 相關概念總結

2020-12-03 06:12:46 其他

1. 前言

相信大家對 ZooKeeper 應該不算陌生,但是你真的了解 ZooKeeper 到底有啥用不?如果別人/面試官讓你給他講講對于 ZooKeeper 的認識,你能回答到什么地步呢?

拿我自己來說吧!我本人曾經使用 Dubbo 來做分布式專案的時候,使用了 ZooKeeper 作為注冊中心,為了保證分布式系統能夠同步訪問某個資源,我還使用 ZooKeeper 做過分布式鎖,另外,我在學習 Kafka 的時候,知道 Kafka 很多功能的實作依賴了 ZooKeeper,

前幾天,總結專案經驗的時候,我突然問自己 ZooKeeper 到底是個什么東西?想了半天,腦海中只是簡單的能浮現出幾句話:

  1. ZooKeeper 可以被用作注冊中心、分布式鎖;
  2. ZooKeeper 是 Hadoop 生態系統的一員;
  3. 構建 ZooKeeper 集群的時候,使用的服務器最好是奇數臺,

由此可見,我對于 ZooKeeper 的理解僅僅是停留在了表面,

所以,通過本文,希望帶大家稍微詳細的了解一下 ZooKeeper ,如果沒有學過 ZooKeeper ,那么本文將會是你進入 ZooKeeper 大門的墊腳磚,如果你已經接觸過 ZooKeeper ,那么本文將帶你回顧一下 ZooKeeper 的一些基礎概念,

另外,本文不光會涉及到 ZooKeeper 的一些概念,后面的文章會介紹到 ZooKeeper 常見命令的使用以及使用 Apache Curator 作為 ZooKeeper 的客戶端,

如果文章有任何需要改善和完善的地方,歡迎在評論區指出,共同進步!

2. ZooKeeper 介紹

2.1. ZooKeeper 由來

正式介紹 ZooKeeper 之前,我們先來看看 ZooKeeper 的由來,還挺有意思的,

下面這段內容摘自《從 Paxos 到 ZooKeeper 》第四章第一節,推薦大家閱讀一下:

ZooKeeper 最早起源于雅虎研究院的一個研究小組,在當時,研究人員發現,在雅虎內部很多大型系統基本都需要依賴一個類似的系統來進行分布式協調,但是這些系統往往都存在分布式單點問題,所以,雅虎的開發人員就試圖開發一個通用的無單點問題的分布式協調框架,以便讓開發人員將精力集中在處理業務邏輯上,

關于“ZooKeeper”這個專案的名字,其實也有一段趣聞,在立項初期,考慮到之前內部很多專案都是使用動物的名字來命名的(例如著名的 Pig 專案),雅虎的工程師希望給這個專案也取一個動物的名字,時任研究院的首席科學家 RaghuRamakrishnan 開玩笑地說:“在這樣下去,我們這兒就變成動物園了!”此話一出,大家紛紛表示就叫動物園管理員吧一一一因為各個以動物命名的分布式組件放在一起,雅虎的整個分布式系統看上去就像一個大型的動物園了,而 ZooKeeper 正好要用來進行分布式環境的協調一一于是,ZooKeeper 的名字也就由此誕生了,

2.2. ZooKeeper 概覽

ZooKeeper 是一個開源的分布式協調服務,它的設計目標是將那些復雜且容易出錯的分布式一致性服務封裝起來,構成一個高效可靠的原語集,并以一系列簡單易用的介面提供給用戶使用,

原語: 作業系統或計算機網路用語范疇,是由若干條指令組成的,用于完成一定功能的一個程序,具有不可分割性·即原語的執行必須是連續的,在執行程序中不允許被中斷,

ZooKeeper 為我們提供了高可用、高性能、穩定的分布式資料一致性解決方案,通常被用于實作諸如資料發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、分布式鎖和分布式佇列等功能,

另外,ZooKeeper 將資料保存在記憶體中,性能是非常棒的, 在“讀”多于“寫”的應用程式中尤其地高性能,因為“寫”會導致所有的服務器間同步狀態,(“讀”多于“寫”是協調服務的典型場景),

2.3. ZooKeeper 特點

  • 順序一致性: 從同一客戶端發起的事務請求,最終將會嚴格地按照順序被應用到 ZooKeeper 中去,
  • 原子性: 所有事務請求的處理結果在整個集群中所有機器上的應用情況是一致的,也就是說,要么整個集群中所有的機器都成功應用了某一個事務,要么都沒有應用,
  • 單一系統映像 : 無論客戶端連到哪一個 ZooKeeper 服務器上,其看到的服務端資料模型都是一致的,
  • 可靠性: 一旦一次更改請求被應用,更改的結果就會被持久化,直到被下一次更改覆寫,

2.4. ZooKeeper 典型應用場景

ZooKeeper 概覽中,我們介紹到使用其通常被用于實作諸如資料發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、分布式鎖和分布式佇列等功能,

下面選 3 個典型的應用場景來專門說說:

  1. 分布式鎖 : 通過創建唯一節點獲得分布式鎖,當獲得鎖的一方執行完相關代碼或者是掛掉之后就釋放鎖,
  2. 命名服務 :可以通過 ZooKeeper 的順序節點生成全域唯一 ID
  3. 資料發布/訂閱 :通過 Watcher 機制 可以很方便地實作資料發布/訂閱,當你將資料發布到 ZooKeeper 被監聽的節點上,其他機器可通過監聽 ZooKeeper 上節點的變化來實作配置的動態更新,

實際上,這些功能的實作基本都得益于 ZooKeeper 可以保存資料的功能,但是 ZooKeeper 不適合保存大量資料,這一點需要注意,

2.5. 有哪些著名的開源專案用到了 ZooKeeper?

  1. Kafka : ZooKeeper 主要為 Kafka 提供 Broker 和 Topic 的注冊以及多個 Partition 的負載均衡等功能,
  2. Hbase : ZooKeeper 為 Hbase 提供確保整個集群只有一個 Master 以及保存和提供 regionserver 狀態資訊(是否在線)等功能,
  3. Hadoop : ZooKeeper 為 Namenode 提供高可用支持,

3. ZooKeeper 重要概念解讀

破音:拿出小本本,下面的內容非常重要哦!

3.1. Data model(資料模型)

ZooKeeper 資料模型采用層次化的多叉樹形結構,每個節點上都可以存盤資料,這些資料可以是數字、字串或者是二級制序列,并且,每個節點還可以擁有 N 個子節點,最上層是根節點以“/”來代表,每個資料節點在 ZooKeeper 中被稱為 znode,它是 ZooKeeper 中資料的最小單元,并且,每個 znode 都一個唯一的路徑標識,

強調一句:ZooKeeper 主要是用來協調服務的,而不是用來存盤業務資料的,所以不要放比較大的資料在 znode 上,ZooKeeper 給出的上限是每個結點的資料大小最大是 1M,

從下圖可以更直觀地看出:ZooKeeper 節點路徑標識方式和 Unix 檔案系統路徑非常相似,都是由一系列使用斜杠"/"進行分割的路徑表示,開發人員可以向這個節點中寫人資料,也可以在節點下面創建子節點,這些操作我們后面都會介紹到,

3.2. znode(資料節點)

介紹了 ZooKeeper 樹形資料模型之后,我們知道每個資料節點在 ZooKeeper 中被稱為 znode,它是 ZooKeeper 中資料的最小單元,你要存放的資料就放在上面,是你使用 ZooKeeper 程序中經常需要接觸到的一個概念,

3.2.1. znode 4種型別

我們通常是將 znode 分為 4 大類:

  • 持久(PERSISTENT)節點 :一旦創建就一直存在即使 ZooKeeper 集群宕機,直到將其洗掉,
  • 臨時(EPHEMERAL)節點 :臨時節點的生命周期是與 客戶端會話(session) 系結的,會話消失則節點消失 ,并且,臨時節點只能做葉子節點 ,不能創建子節點,
  • 持久順序(PERSISTENT_SEQUENTIAL)節點 :除了具有持久(PERSISTENT)節點的特性之外, 子節點的名稱還具有順序性,比如 /node1/app0000000001/node1/app0000000002
  • 臨時順序(EPHEMERAL_SEQUENTIAL)節點 :除了具備臨時(EPHEMERAL)節點的特性之外,子節點的名稱還具有順序性,

3.2.2. znode 資料結構

每個 znode 由 2 部分組成:

  • stat :狀態資訊
  • data : 節點存放的資料的具體內容

如下所示,我通過 get 命令來獲取 根目錄下的 dubbo 節點的內容,(get 命令在下面會介紹到),

[zk: 127.0.0.1:2181(CONNECTED) 6] get /dubbo
# 該資料節點關聯的資料內容為空
null
# 下面是該資料節點的一些狀態資訊,其實就是 Stat 物件的格式化輸出
cZxid = 0x2
ctime = Tue Nov 27 11:05:34 CST 2018
mZxid = 0x2
mtime = Tue Nov 27 11:05:34 CST 2018
pZxid = 0x3
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

Stat 類中包含了一個資料節點的所有狀態資訊的欄位,包括事務 ID-cZxid、節點創建時間-ctime 和子節點個數-numChildren 等等,

下面我們來看一下每個 znode 狀態資訊究竟代表的是什么吧!(下面的內容來源于《從 Paxos 到 ZooKeeper 分布式一致性原理與實踐》,因為 Guide 確實也不是特別清楚,要學會參考資料的嘛! ) :

znode 狀態資訊 解釋
cZxid create ZXID,即該資料節點被創建時的事務 id
ctime create time,即該節點的創建時間
mZxid modified ZXID,即該節點最終一次更新時的事務 id
mtime modified time,即該節點最后一次的更新時間
pZxid 該節點的子節點串列最后一次修改時的事務 id,只有子節點串列變更才會更新 pZxid,子節點內容變更不會更新
cversion 子節點版本號,當前節點的子節點每次變化時值增加 1
dataVersion 資料節點內容版本號,節點創建時為 0,每更新一次節點內容(不管內容有無變化)該版本號的值增加 1
aclVersion 節點的 ACL 版本號,表示該節點 ACL 資訊變更次數
ephemeralOwner 創建該臨時節點的會話的 sessionId;如果當前節點為持久節點,則 ephemeralOwner=0
dataLength 資料節點內容長度
numChildren 當前節點的子節點個數

3.3. 版本(version)

在前面我們已經提到,對應于每個 znode,ZooKeeper 都會為其維護一個叫作 Stat 的資料結構,Stat 中記錄了這個 znode 的三個相關的版本:

  • dataVersion :當前 znode 節點的版本號
  • cversion : 當前 znode 子節點的版本
  • aclVersion : 當前 znode 的 ACL 的版本,

3.4. ACL(權限控制)

ZooKeeper 采用 ACL(AccessControlLists)策略來進行權限控制,類似于 UNIX 檔案系統的權限控制,

對于 znode 操作的權限,ZooKeeper 提供了以下 5 種:

  • CREATE : 能創建子節點
  • READ :能獲取節點資料和列出其子節點
  • WRITE : 能設定/更新節點資料
  • DELETE : 能洗掉子節點
  • ADMIN : 能設定節點 ACL 的權限

其中尤其需要注意的是,CREATEDELETE 這兩種權限都是針對 子節點 的權限控制,

對于身份認證,提供了以下幾種方式:

  • world : 默認方式,所有用戶都可無條件訪問,
  • auth :不使用任何 id,代表任何已認證的用戶,
  • digest :用戶名:密碼認證方式: username:password
  • ip : 對指定 ip 進行限制,

3.5. Watcher(事件監聽器)

Watcher(事件監聽器),是 ZooKeeper 中的一個很重要的特性,ZooKeeper 允許用戶在指定節點上注冊一些 Watcher,并且在一些特定事件觸發的時候,ZooKeeper 服務端會將事件通知到感興趣的客戶端上去,該機制是 ZooKeeper 實作分布式協調服務的重要特性,

破音:非常有用的一個特性,都能出小本本記好了,后面用到 ZooKeeper 基本離不開 Watcher(事件監聽器)機制,

3.6. 會話(Session)

Session 可以看作是 ZooKeeper 服務器與客戶端的之間的一個 TCP 長連接,通過這個連接,客戶端能夠通過心跳檢測與服務器保持有效的會話,也能夠向 ZooKeeper 服務器發送請求并接受回應,同時還能夠通過該連接接收來自服務器的 Watcher 事件通知,

Session 有一個屬性叫做:sessionTimeoutsessionTimeout 代表會話的超時時間,當由于服務器壓力太大、網路故障或是客戶端主動斷開連接等各種原因導致客戶端連接斷開時,只要在sessionTimeout規定的時間內能夠重新連接上集群中任意一臺服務器,那么之前創建的會話仍然有效,

另外,在為客戶端創建會話之前,服務端首先會為每個客戶端都分配一個 sessionID,由于 sessionID是 ZooKeeper 會話的一個重要標識,許多與會話相關的運行機制都是基于這個 sessionID 的,因此,無論是哪臺服務器為客戶端分配的 sessionID,都務必保證全域唯一,

4. ZooKeeper 集群

為了保證高可用,最好是以集群形態來部署 ZooKeeper,這樣只要集群中大部分機器是可用的(能夠容忍一定的機器故障),那么 ZooKeeper 本身仍然是可用的,通常 3 臺服務器就可以構成一個 ZooKeeper 集群了,ZooKeeper 官方提供的架構圖就是一個 ZooKeeper 集群整體對外提供服務,

上圖中每一個 Server 代表一個安裝 ZooKeeper 服務的服務器,組成 ZooKeeper 服務的服務器都會在記憶體中維護當前的服務器狀態,并且每臺服務器之間都互相保持著通信,集群間通過 ZAB 協議(ZooKeeper Atomic Broadcast)來保持資料的一致性,

最典型集群模式: Master/Slave 模式(主備模式),在這種模式中,通常 Master 服務器作為主服務器提供寫服務,其他的 Slave 服務器從服務器通過異步復制的方式獲取 Master 服務器最新的資料提供讀服務,

4.1. ZooKeeper 集群角色

但是,在 ZooKeeper 中沒有選擇傳統的 Master/Slave 概念,而是引入了 Leader、Follower 和 Observer 三種角色,如下圖所示

ZooKeeper 集群中的所有機器通過一個 Leader 選舉程序 來選定一臺稱為 “Leader” 的機器,Leader 既可以為客戶端提供寫服務又能提供讀服務,除了 Leader 外,FollowerObserver 都只能提供讀服務,Follower 和 Observer 唯一的區別在于 Observer 機器不參與 Leader 的選舉程序,也不參與寫操作的“過半寫成功”策略,因此 Observer 機器可以在不影響寫性能的情況下提升集群的讀性能,

角色 說明
Leader 為客戶端提供讀和寫的服務,負責投票的發起和決議,更新系統狀態,
Follower 為客戶端提供讀服務,如果是寫服務則轉發給 Leader,在選舉程序中參與投票,
Observer 為客戶端提供讀服務器,如果是寫服務則轉發給 Leader,不參與選舉程序中的投票,也不參與“過半寫成功”策略,在不影響寫性能的情況下提升集群的讀性能,此角色于 ZooKeeper3.3 系列新增的角色,

當 Leader 服務器出現網路中斷、崩潰退出與重啟等例外情況時,就會進入 Leader 選舉程序,這個程序會選舉產生新的 Leader 服務器,

這個程序大致是這樣的:

  1. Leader election(選舉階段):節點在一開始都處于選舉階段,只要有一個節點得到超半數節點的票數,它就可以當選準 leader,
  2. Discovery(發現階段) :在這個階段,followers 跟準 leader 進行通信,同步 followers 最近接收的事務提議,
  3. Synchronization(同步階段) :同步階段主要是利用 leader 前一階段獲得的最新提議歷史,同步集群中所有的副本,同步完成之后 準 leader 才會成為真正的 leader,
  4. Broadcast(廣播階段) :到了這個階段,ZooKeeper 集群才能正式對外提供事務服務,并且 leader 可以進行訊息廣播,同時如果有新的節點加入,還需要對新節點進行同步,

4.2. ZooKeeper 集群中的服務器狀態

  • LOOKING :尋找 Leader,
  • LEADING :Leader 狀態,對應的節點為 Leader,
  • FOLLOWING :Follower 狀態,對應的節點為 Follower,
  • OBSERVING :Observer 狀態,對應節點為 Observer,該節點不參與 Leader 選舉,

4.3. ZooKeeper 集群為啥最好奇數臺?

ZooKeeper 集群在宕掉幾個 ZooKeeper 服務器之后,如果剩下的 ZooKeeper 服務器個數大于宕掉的個數的話整個 ZooKeeper 才依然可用,假如我們的集群中有 n 臺 ZooKeeper 服務器,那么也就是剩下的服務數必須大于 n/2,先說一下結論,2n 和 2n-1 的容忍度是一樣的,都是 n-1,大家可以先自己仔細想一想,這應該是一個很簡單的數學問題了, 比如假如我們有 3 臺,那么最大允許宕掉 1 臺 ZooKeeper 服務器,如果我們有 4 臺的的時候也同樣只允許宕掉 1 臺, 假如我們有 5 臺,那么最大允許宕掉 2 臺 ZooKeeper 服務器,如果我們有 6 臺的的時候也同樣只允許宕掉 2 臺,

綜上,何必增加那一個不必要的 ZooKeeper 呢?

5. ZAB 協議和Paxos 演算法

Paxos 演算法應該可以說是 ZooKeeper 的靈魂了,但是,ZooKeeper 并沒有完全采用 Paxos演算法 ,而是使用 ZAB 協議作為其保證資料一致性的核心演算法,另外,在ZooKeeper的官方檔案中也指出,ZAB協議并不像 Paxos 演算法那樣,是一種通用的分布式一致性演算法,它是一種特別為Zookeeper設計的崩潰可恢復的原子訊息廣播演算法,

5.1. ZAB 協議介紹

ZAB(ZooKeeper Atomic Broadcast 原子廣播) 協議是為分布式協調服務 ZooKeeper 專門設計的一種支持崩潰恢復的原子廣播協議, 在 ZooKeeper 中,主要依賴 ZAB 協議來實作分布式資料一致性,基于該協議,ZooKeeper 實作了一種主備模式的系統架構來保持集群中各個副本之間的資料一致性,

5.2. ZAB 協議兩種基本的模式:崩潰恢復和訊息廣播

ZAB 協議包括兩種基本的模式,分別是

  • 崩潰恢復 :當整個服務框架在啟動程序中,或是當 Leader 服務器出現網路中斷、崩潰退出與重啟等例外情況時,ZAB 協議就會進入恢復模式并選舉產生新的Leader服務器,當選舉產生了新的 Leader 服務器,同時集群中已經有過半的機器與該Leader服務器完成了狀態同步之后,ZAB協議就會退出恢復模式,其中,所謂的狀態同步是指資料同步,用來保證集群中存在過半的機器能夠和Leader服務器的資料狀態保持一致
  • 訊息廣播當集群中已經有過半的Follower服務器完成了和Leader服務器的狀態同步,那么整個服務框架就可以進入訊息廣播模式了, 當一臺同樣遵守ZAB協議的服務器啟動后加入到集群中時,如果此時集群中已經存在一個Leader服務器在負責進行訊息廣播,那么新加入的服務器就會自覺地進入資料恢復模式:找到Leader所在的服務器,并與其進行資料同步,然后一起參與到訊息廣播流程中去,

關于 ZAB 協議&Paxos演算法 需要講和理解的東西太多了,具體可以看下面這兩篇文章:

  • 圖解 Paxos 一致性協議
  • Zookeeper ZAB 協議分析

6. 總結

  1. ZooKeeper 本身就是一個分布式程式(只要半數以上節點存活,ZooKeeper 就能正常服務),
  2. 為了保證高可用,最好是以集群形態來部署 ZooKeeper,這樣只要集群中大部分機器是可用的(能夠容忍一定的機器故障),那么 ZooKeeper 本身仍然是可用的,
  3. ZooKeeper 將資料保存在記憶體中,這也就保證了 高吞吐量和低延遲(但是記憶體限制了能夠存盤的容量不太大,此限制也是保持 znode 中存盤的資料量較小的進一步原因),
  4. ZooKeeper 是高性能的, 在“讀”多于“寫”的應用程式中尤其地明顯,因為“寫”會導致所有的服務器間同步狀態,(“讀”多于“寫”是協調服務的典型場景,)
  5. ZooKeeper 有臨時節點的概念, 當創建臨時節點的客戶端會話一直保持活動,瞬時節點就一直存在,而當會話終結時,瞬時節點被洗掉,持久節點是指一旦這個 znode 被創建了,除非主動進行 znode 的移除操作,否則這個 znode 將一直保存在 ZooKeeper 上,
  6. ZooKeeper 底層其實只提供了兩個功能:① 管理(存盤、讀取)用戶程式提交的資料;② 為用戶程式提供資料節點監聽服務,

7. 參考

  1. 《從 Paxos 到 ZooKeeper 分布式一致性原理與實踐》

作者:Snailclimb
鏈接:【入門】ZooKeeper 相關概念總結
來源:github

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

標籤:其他

上一篇:HDFS的HA集群原理分析

下一篇:推薦設計10大接單平臺

標籤雲
其他(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