標籤:部門 帶來 作用 菜市場 阿里 開發 一點 指標 ica
每次看到馬路對面摩托羅拉的大牌子,都想起Google125億美元收購摩托羅拉移動,後來又以29億美元賣給聯想的事情。Google所做的決策都比較考慮長遠利益,在這串交易中,Google獲得了摩托羅拉最有價值的幾千項專利,穩健了Android的生態。Google曾經在美國一個地區佔用巨大的面積建立了太陽能發電站,人稱“烤鳥”項目。因為鳥兒從此地飛過會因為太熱而從天上掉下來變成熟鳥。而產生的電能僅夠一個小村莊使用。但是正是這種願意去嘗試才推動了科技的發展。讓Google這麼多年屹立不倒。
Databus是LinkedIn開源的一款低延遲的分散式資料庫同步系統(a source-agnostic distributed change data capture system),它提供可靠的資料擷取、流轉和資料處理功能。
應用情境:
主要應用情境:跨部門之間或者跨機房之間進行資料庫的資料訂閱。同類產品有阿里的canal。支援Oracle和Mysql資料庫。
Databus和canal一樣,資料都是基於資料庫日誌挖掘來做的。我之前的部落格也提到了,當今的資料處理大致可以分為兩類:聯機交易處理OLTP(OnLine Transaction Processing)和線上分析處理OLAP(OnLine Analytical Processing)。
OLTP是傳統的關係型資料庫的主要應用,主要是基本的、日常的交易處理,例如銀行交易。但是平常所說的OLTP是整合到SQL Server中的資料庫引擎組件,因為微軟有個白皮書《SQL Server In-Memory OLTP Internals Overview》。但是OLTP實際上可以稱之為:面向交易的即時處理系統。效能指標是TPS。
OLAP是快速響應多維分析的一種解決方案。面向的資料來源是資料倉儲。支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。
再回來說Databus,Databus最重要的特點是其無限回溯功能。當消費者完整資料拷貝,或者消費者的已有資料和主OLTP資料庫相差很大時能夠低延時的進行同步。
核心組件:
Databus的核心組件是Databus Relay。主要負責兩個工作:
1>從Databus來源資料庫中讀取變化行,並序列化為事件流儲存至記憶體中。
2>接受用戶端的請求,並將資料變化事件流返回給用戶端。
實現原理:
databus使用了open-replocator作為擷取資料庫變更事件的組件。功能是即時擷取mysql的binlog日誌,並封裝成Event對象,然後調用登入的listener進行處理。
技術架構:
- Event Producer:用來讀取資料庫的變化事件,轉化為AVRO類型並儲存至記憶體中。
下面說說AVRO. Apache Avro是一個獨立於程式設計語言的資料序列化系統,該項目由Hadoop之父牽頭建立。它可以提供:豐富的資料結構類型,快速可壓縮的位元據形式,儲存持久資料的檔案容器,遠端程序呼叫,同動態語言的簡單整合。讀寫資料檔案和使用RPC協議都不需要產生代碼,而代碼產生作為一種可選的最佳化只值得在靜態類型語言中實現。
- Circular Buffer:Relay有一個或多個環形的緩衝池用來儲存按遞增的系統變化號(SCN)為順序的變化事件。
細心的讀者會發現每個中介軟體都有自己比較獨特的緩衝策略,這種緩衝策略很大成熟決定了此中介軟體的好壞。
- SCN Writer/Reader:用來讀取和吸入SCN號至硬碟。
- RESTFUL interface:它暴露一個restful介面,用來推送資料變化事件至用戶端。
源碼:
Databus是用java開發的。github地址是:https://github.com/linkedin/databus。
跑題時間:
自從畢業後上班開始就時不時自己能夠感覺到一些問題。比如:比較著急的時候我眉頭是緊鎖著的,說話客氣不起來了。再比如我說話的方式也是技巧不足的。這些看起來不是核心的問題現在卻是我的第一要務。因為之前有問題沒關係,我不做管理,我就管我自己。那麼這些小毛病頂多影響我自己。現在我的很多決定都直接影響到我們團隊。
所以,在實際影響範圍可控的情況下,我反而會將問題更明顯出來,自己製造些小矛盾。為什麼這麼做呢,因為我從來不做“大家都說這樣做是對的”的事情。我只做自己心裡完全接受的事情。
之前認識我的人都知道我嗓門很大。現在好一點了,雖然也有時會忘了降低嗓門。我娘家在我們鎮上最繁華的地段,後面是菜市場。每天早上3點就很吵了。我屋的窗戶正好對著市場。所以我從小練就了“再吵和我沒關係”的本事,所以我對噪音很不敏感。所以我是花了很大力氣才讓自己心裡完全接受了“這樣會打擾別人,最好的音量是不要太大,震到別人耳朵,也不要太小,別人聽不清”
我現在需要讓自己瞭解到自己的問題會產生什麼樣的後果,確實是有問題的。但是這樣做確實是很笨的方法。聰明人是自己完全可以預見到的,人生會走很多彎路。
我工作十年,實質性的提高是沒有的。剛畢業的時候,我的學曆差不多就是目前所在這個層級的公司。人人,樂視,新美大。並沒有層級上的提升,反而職級上比同屆的要低。
跟別人相比,可能我一年過了日語1級,去過日本。後來去過美國矽谷。也有上百個專利。我在想這些為什麼都沒能給我帶來實實在在的好處。
我學語言能力確實很強,但是我單純只想做技術。自己的任性是要有代價的。代價就是語言能力沒有用武之地。
去過日本和矽谷,這是工作機遇,並不是什麼能力。應該給我帶來的是氣質,談吐。但是我的氣質和談吐並沒有上去。也就是我白去了,去了沒學到東西。素養沒提高。
專利是要真正給公司帶來利益才有價值的,和數量沒有關係。我並沒有哪個專利特別好,發揮了特牛逼的作用。
總的來看,我是一個非常普通,還有1個半月就過31歲生日的老技術。完全沒有優勢。並且,我還有點浮躁。
去樂視之前,我的每一次努力都發生在不得不努力的時候。升學前,因為擔心,考不上怎麼辦呀,於是努力成績上去了。危機沒了又回到原來。上班有任務壓我,我就努力幹。因為幹不完怎麼辦呀,這是我的責任。然後基本就是忙一個月兩個月閑個半年。
去樂視的時候,我有個好開頭。為什麼呢,因為去樂視之前,我自己趟了趟渾水,當然不是工作上的。但是我在樂視的時間自己都很鬱悶。直到最後我在自己臉上身上刻了好幾個疤,近1年才好,這段時間我都在鬱悶自己身上的疤,原來因為什麼事情鬱悶完全都不記得了。所以這是我最不浮躁的一段時間。不過,我覺得和別人相比,也挺浮躁的。
現在來說,我覺得起點是很低的。突然覺得自己一無所有。但是好歹各個階段該做的事情都做了,該試的錯也實實在在試過了。我得到了我真正想得到的東西。放棄的,都是自己覺得不值得。就剩一件事了,我想在工作上達到我應該達到的高度。因為IT行業對年齡和女孩子都是很殘酷的。我不圖名,不圖利,不愛權利,但是我想工作。
現在的公司,大家都有我很多我值得學習的地方。不跟著別人學,自身的成長也需要很多的提高。方法論方面,架構方面。我還不能拖的時間很長來適應,我需要儘快能夠有一些時間,每天寫點代碼,根本的東西不想放下。
一直以來都不喜歡被別人叫老。也一直以來都沒成熟大方得體。有時候頭髮很亂,有時候不經考慮。這是年輕,希望別人喜歡自己原本的樣子。現在,越來越多的考慮怎麼把事情做好。靜兒的文章哪有不秀恩愛的。今天我只想說謝謝男神在我還年輕的時候遇到我,一心做事情的人恐怕不會再愛上誰。
一款低延遲的分散式資料庫同步系統--databus