Databus系統是微博DIP團隊開源的分布式日志傳輸系統。它是一個分布式、高可用的,用于采集和移動大量日志數據的服務。它基于流式數據的簡單而靈活的架構,具備健壯性和容錯性,具有故障轉移與恢復機制。它采用簡單的可擴展的數據投遞模型,允許用戶自定義擴展傳輸組件。
Databus系統可對接多種數據源和數據目的地,將數據源的日志同步到數據目的地。常用的數據源有:Kafka、本地文件、ScribeClient等,常用的數據目的地有:Kafka、HDFS等。
Databus系統的核心處理模塊包含四部分:Source、Converter、Sink、Store。Source模塊負責收集數據源的日志,Converter模塊負責對日志轉換,如:重命名Topic名稱、對消息體的ETL和過濾,Sink模塊負責把日志同步到數據目的地,Store模塊負責把寫入數據目的地失敗的日志暫存起來,根據策略進行后續的處理。
Databus系統的監控報警模塊主要包含:數據量統計、靈活的Exporter插件、異常報警。數據量統計用于統計Source端的讀取量和Sink端的寫入量,便于全鏈路的數據對賬。系統暴露了Exporter接口,用戶只需針對特定的存儲系統實現相應的Exporter,即可把監控信息采集過去,配置圖表后做直觀的展示。另外若日志寫入數據目的地失敗,可通過配置策略發送報警。
Databus系統的數據流模型設計為一個Source對應一個Sink,一個Source和與其對應的Sink組成一個Pipeline管道,各個Pipeline相互獨立、互不影響。通過這種Pipeline模型,用戶新增、刪除、變更某個Pipeline,不會影響到其他Pipeline的數據傳輸,且使用熱部署的方式不需要重啟進程。做到盡可能少的中斷數據流,保障日志傳輸的實時性。
git clone https://github.com/weibodip/databus.gitcd databusmvn clean package -DskipTests
mkdir -p /data0/workspacemv ../databus /data0/workspacemkdir /var/log/databus/
可以在 /data0/workspace/databus/pipelines 目錄下添加多個配置文件,每個配置文件抽象為一個 pipeline,各個 pipeline 的日志傳輸互相獨立,互不干擾。這里以讀取本地文件的日志記錄,并寫入 kafka topic 的 pipeline 配置為例。
vim /data0/workspace/databus/pipelines/file-to-kafka-example.propertiespipeline.name=file-to-kafka-examplepipeline.source=com.weibo.dip.databus.source.FileSourcepipeline.converter=com.weibo.dip.databus.converter.TopicNameConverterpipeline.store=com.weibo.dip.databus.store.DefaultStorepipeline.sink=com.weibo.dip.databus.sink.KafkaSinkV010#sourcesource.file.directory=/data0/log/databus/test/source.file.include.pattern=^.*\.test\.log$source.file.category=testsource.file.delete.after.read=truesource.file.retention.second=7200#convertertopic.mappings=test:test#sinksink.kafka.bootstrap.servers=hostname1:9092,hostname2:9092,hostname3:9092sink.kafka.key.serializer=org.apache.kafka.common.serialization.StringSerializersink.kafka.value.serializer=org.apache.kafka.common.serialization.StringSerializer
系統默認的JDK路徑:/usr/local/jdk1.8.0_144,可根據情況修改 bin/databus-server.sh 的 JAVA_HOME。
# 啟動/data0/workspace/databus/bin/databus-server.sh start# 查看運行狀態/data0/workspace/databus/bin/databus-server.sh status# 查看日志tailf /var/log/databus/server.log# 停止/data0/workspace/databus/bin/databus-server.sh stop
Flume 的模型抽象上有 Channel 的概念,這樣便于多路復用數據流,其常見的場景:
Flume 的多路復用數據流,增加了數據處理的靈活性,但是常用的 Channel 也存在一些問題:
考慮到 Channel 在目前的實現上存在一些問題,去掉 Channel 在一些不需要多路復用數據流的場景下,數據傳輸表現效果會更好。Databus 的設計理念在于去掉 Channel,其相比 Flume 的優勢在于:
Flume | Databus | |
---|---|---|
模型抽象 | source-channel-sink | source-sink |
配置 | 繁多冗長 | 簡潔 |
靈活性 | 一個source對應多個sink | 一個source對應一個sink |
數據傳輸延遲 | 較高 | 較低 |
項目實現了很多常用的Source 和 Sink,并對每個Source 和 Sink 的特性、適用場景,以及配置參數進行了說明,方便用戶快速上手。
Databus系統在微博業務的日常使用場景中,已經承接了各種Source 和Sink 的數據傳輸業務。在大數據和高并發場景的檢驗下,系統曾暴露出一些問題,而這些問題已經得到修復,目前系統已穩定運行多年。不過在程序的世界里,Bug是無法避免的,在使用過程中如有遇到問題,歡迎提 Issue,我們會盡快修復~
155451.html
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
巴西龜的智商相當于人的幾歲?海龜的智商很低,還不到一歲小孩的智商。它們養的時候需要很長時間才能分辨主人,巴西龜是智商最高的龜。如果你買了一只小巴西龜,開始飼養,你必須每天自己喂它,這樣它才能把你和別人區分開來,知道你是主人。因為巴西龜能記住主人,所以能和它培養感情。熟悉之后可以放在家里,休息的時候不會打擾你。我甚至會像狗一樣把它帶在身邊,在你出門后老實待著,等你回來在門口等你。至于更科學、更有根據...
閱文動漫屬于哪個公司?屬于騰訊國內已申請授權同名電影影視、類游戲、動漫、舞臺劇、音頻資源等產品邏輯的侵刪文學著作大部分都圖源阿里文學,不僅如此《盜墓筆記》《鬼吹燈》《斗破蒼穹》《瑯琊榜》《擇天記》《全職高手》《將夜》《扶搖皇后》《凰權》《慶余年》等數十部超人氣優秀作品,阿里文學如今對國內創意產業發展極富市場影響力的主要影視ip源頭解決。騰訊動漫買下哪些動漫的版權?你好,網易買下了很多日漫原創者,可...
盛大通行證怎么修改游戲帳號?從網絡游戲的那一天起,游戲賬號就不能更改直到今天,這一點從來沒有更改過密碼可以更改。。盛大通行證怎么修改身份證?這是不可修改的,注冊時的信息是什么。防沉迷就是用真人的身份證信息填寫你的開戶信。關鍵是你寫的人有身份證,而且已經超過18歲了。怎么更改盛大通行證的身份證,急急急?你說的是戒毒還是登記信息中的身份證?兩者不一樣。如果登記資料中的身份證是剛登記的,看來15天內充值...