MySQL 分表分庫數據訪問中間件:TribeDB

jopen 10年前發布 | 27K 次閱讀 TribeDB MySQL 數據庫服務器

Node.js 的 MySQL 分表分庫數據訪問中間件,實現MySQL數據的分布式集群儲存管理。在處理海量數據、高并發訪問時,獲得更加優越的性能及橫向擴展能力。它包含以下主要特性:

  • 可伸縮、高擴展的架構

  • 自動路由分庫,維護數據庫連接池

  • 支持數據表的“橫向”和“縱向”分表

  • 支持“一主多從”式讀寫分離

  • 分布式并行處理,成倍提升性能

  • 對應用層隱藏數據來源及技術細節

擁有以上特點意味著,可隨時通過增加普通級別數據庫服務器的方式,方便地擴展整體系統性能,而無需修改業務層架構和代碼。理論上TribeDB的擴展能力上線在于主庫單表插入性能和主從數據同步開銷。通過合理設計“橫向”和“縱向”分表和數據切分粒度,可輕松應對上億級別的數據量和訪問請求。

快速上手:

var tribe = require('tribedb');

//載入配置文件,sync選項為true 表示同步讀取解析配置文件
tribe.configure('/path/to/tribe.conf',{sync:true});

//通過數據庫表名建立查詢請求
var db = tribe.createQuery('my_table');

//插入封裝
db.data({title:'標題'}).insert(function(err, data){
  console.log(err);
  console.log(data);
});

//查詢封裝
db.where('title','標題').order_by('time','DESC').limit(1).select(function(err, data){
  console.log(err);
  console.log(data);
});

//不使用封裝的操作,直接執行sql
tribe.query('SELECT * FROM user_0 WHERE id=1 LIMIT 1',function(err, data){
  console.log(err);
  console.log(data);
});

TribeDB 通過全局唯一的表名,自動連接對應的數據庫,并通過分表配置,將操作映射到涉及的分表,同時完成讀寫分離。 一切都由 TribeDB 自動完成,業務層不必關心數據的位置。當數據庫負載過高需要添加服務器時,只需簡單修改配置文件而不必修改業務代碼,甚至將整個架構推倒重來。繼續閱讀文檔詳細了解如何使用。

項目主頁:http://www.baiduhome.net/lib/view/home/1416532678680

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!