原创 「從零單排canal 04」 啓動模塊deployer源碼解析

基於1.1.5-alpha版本,具體源碼筆記可以參考我的github:https://github.com/saigu/JavaKnowledgeGraph/tree/master/code_reading/canal 本文將

原创 【從零單排HBase 04】HBase高性能查詢揭祕

先給結論吧:HBase利用compaction機制,通過大量的讀延遲毛刺和一定的寫阻塞,來換取整體上的讀取延遲的平穩。 1.爲什麼要compaction 在上一篇 HBase讀寫 中我們提到了,HBase在讀取過程中,會創建多

原创 「從零單排canal 03」 canal源碼分析大綱(1.1.4版本)

在前面兩篇中,我們從基本概念理解了canal是一個什麼項目,能應用於什麼場景,然後通過一個demo體驗,有了基本的體感和認識。 從這一篇開始,我們將從源碼入手,深入學習canal的實現方式。瞭解canal相關功能的實現方式,其中有

原创 數據庫中間件漫談

1.前言 隨着業務的發展,MySQL數據庫中的表會越來越多,表中的數據量也會越來越大,相應地,數據操作的開銷也會越來越大;另外,無論怎樣升級硬件資源,單臺服務器的資源(CPU、磁盤、內存、網絡IO、事務數、連接數)總是有限的,最終

原创 [從零單排HBase 07]如何正確管理HBase的連接,從原理到實戰

本文將介紹HBase的客戶端連接實現,並說明如何正確管理HBase的連接。 最近在搭建一個HBase的可視化管理平臺,搭建完成後發現不管什麼查詢都很慢,甚至於使用api去listTable都要好幾秒。 經過一番排查發現,是每次請求

原创 【從零單排HBase 01】從一無所知到5分鐘快速瞭解HBase

最近公司正好準備投入HBase,因此做了一些基礎學習準備,所以先暫時停止MySQL的更新,把HBase的學習心得跟大家分享一下,接下來一段時間都會發布HBase相關內容。 在學的過程中,發現跟MySQL相互對比,能更深入地瞭解存

原创 【從零單排HBase 05】核心特性region split

HBase擁有出色的擴展性,其中最依賴的就是region的自動split機制。 1.split觸發時機與策略 前面我們已經知道了,數據寫入過程中,需要先寫memstore,然後memstore滿了以後,flush寫入磁盤,形成新的

原创 【從零單排HBase 03】深入HBase讀寫

在瞭解HBase架構的基礎上,我們需要進一步學習HBase的讀寫過程,一方面是瞭解各個組件在整個讀寫過程中充當的角色,另一方面只有瞭解HBase的真實請求過程,才能爲後續的正確使用打下初步基礎,畢竟,除了會使用api,你還得知道怎

原创 說透MySQL裏的各種鎖(上篇)

0.前言 MySQL按照加鎖的範圍,分爲全局鎖、表級鎖、行級鎖。 本文作爲上篇,主要介紹MySQL的全局鎖 和 表級鎖。 重要的實戰總結爲,如何安全地變更一個表的表結構。 1.全局鎖 定義: 全局鎖就是對整個數據庫實例加鎖。 全

原创 【從零單排HBase 06】你必須知道的HBase最佳實踐

前面,我們已經打下了很多關於HBase的理論基礎,今天,我們主要聊聊在實際開發使用HBase中,需要關注的一些最佳實踐經驗。 1.Schema設計七大原則 1)每個region的大小應該控制在10G到50G之間; 2)一個表最好保

原创 說透MySQL裏的各種鎖(下篇)

在上篇中,我們介紹了MySQL中的全局鎖和表鎖。 今天,我們專注於介紹一下行鎖,這個在日常開發和麪試中常常困擾我們的問題。 1.行鎖基礎 由於全局鎖和表鎖對增刪改查的性能都會有較大影響,所以,我們自然會想到, 只需要對有修改的行加

原创 [從零單排HBase 08]HBase可用性分析與高可用實踐

HBase作爲一個分佈式存儲的數據庫,它是如何保證可用性的呢?對於分佈式系統的CAP問題,它是如何權衡的呢? 最重要的是,我們在生產實踐中,又應該如何保證HBase服務的高可用呢? 下面我們來仔細分析一下。 1. 什麼是分佈式系統

原创 【從零單排HBase 02】全面認識HBase架構(建議收藏)

在網上看過很多HBaes架構相關的文章,內容深淺不一,直到發現了一篇MapR官網的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#.VdMxvWSqqko,寫得實

原创 「從零單排canal 01」 canal 10分鐘入門(基於1.1.4版本)

1.簡介 canal [kə’næl],譯意爲水道/管道/溝渠,主要用途是基於 MySQL 數據庫增量日誌解析,提供增量數據 訂閱 和 消費。應該是阿里雲DTS(Data Transfer Service)的開源版本。 2.提供的

原创 使用phoenix踩的坑與設計思考

本文主要介紹在壓測HBase的二級索引phoenix時踩的一個坑,使用時需要特別注意,而且背後的原因也很有意思,可以看出HBase和Phoenix對元數據設計上的差異。 1.問題介紹 在做phoenix壓測時發現一個奇怪的現象。