Azure EventHubs快速入門和使用心得


Azure Event Hubs(事件中心)是一個大數據流式數據攝取服務平台,每秒接受數百萬事件;

  EventHubs 是一個有數據保留期限的緩沖區,類似分布式日志;可縮放的關鍵在於【分區消費模型】,每分區獨立存儲數據,被后端獨立消費。隨着時間推移,事件會逐漸老化,所以分區不會 full.

發送到Eventhub 中的數據可以被 readl-time analytics provider 和后端batch/storage adapters 處理和存儲。

為什么要使用EventHubs?

從EventHubs中及時獲取、探索數據 相當簡單,EventHubs 提供了低延遲的分布式流式處理平台(低延遲、無縫集成Azure內外的數據和分析服務)

EventHubs代表“event管道”的前門,一般被定義為事件攝取器:在事件發布者和事件消費者之間起解耦作用的組件或服務。

 

特性

  • Paas 上全托管
  • 支持實時和批處理
  • 可縮放
  • 豐富的生態

本文主要記錄兩個重要知識點:Partition, EventHubs Capture

Azure上創建EventHubs命名空間之后,新增EventHubs時要關注以上配置。

 

 

Partition Consumer Model

為支持攝取、存儲、 實時處理流式數據,EventHub是建立在分區消費模型之上,提高了可用性和並發度;

① 水平擴展事件處理能力,提供了Queue和topic等流式結構不具備的特性(某分區節點下線,其余分區可繼續提供 發送和接受能力)

② 可讓多進程並發處理流式數據, 並可自行控制處理速度。

③ 支持批量發送事件, 單批次發送不超過1M事件

【是否啟用分區】取決於開發者在【數據一致性和可用性之間的平衡思考】

 If high availability is most important, do not specify a partition key; in that case events are sent to partitions using the round-robin model described previously.

 In many cases, using a partition key is a good choice if event ordering is important.     著名的CAP定理

 

EventHubs Capture

Azure EventHubs Capture 是把數據加載到Azure中最快捷的方式,可在使用 EventHubs Capture時 指定 Azure Blob storage account 或者 Azure Data Lake Store account存儲數據。

捕獲時機: 最上面Capture配置圖, 捕獲時機支持2種策略:time window 和 size window,  每個分區滿足任一策略則觸發該分區的捕獲動作。

// 文件路徑如下,包含命名空間、捕獲分區,每個文件以秒命名
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

Azure EventHubs Capture 開始工作之后,在沒有數據的情況下默認會寫入空文件,這給后端消費程序提供了穩定的流量預期, 當然也可在創建EventHubs 配置勾選【Do not emit empty files when no events occur during the Capture time window<】

捕獲文件格式: avro 是一種簡潔快速,攜帶豐富數據結構的二進制格式

 

 

 捕獲的文件可使用Azure Storage Explorer查看, 注意這里要使用賬號登陸Azure中國區, 后面就是 Azure Storage Account的事宜。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM