您好,登錄后才能下訂單哦!
本篇內容主要講解“數據庫中間件的原理是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“數據庫中間件的原理是什么”吧!
數據庫中間件設計要點
要能解析SQL
能支持讀寫分離
能支持從庫讀的負載均衡
支持分庫操作
支持分表操作
支持跨庫關聯查詢
對事務處理的支持
主鍵ID生成
數據源管理
數據庫拆分
優點
缺點
分片規則:水平拆分最重要的點
拆分規則抽象好,join操作基本可以數據庫做;
不存在單庫大數據,高并發的性能瓶頸;
應用端改造較少;
提高了系統的穩定性和負載能力;
拆分規則難以抽象;
分片事務一致性難以解決;
數據多次擴展難度和維護量極大;
跨庫join性能較差;
范圍:時間、數值;
列表:按地域、按組織、分類;
散列:hash(某個字段)%分片數、一致性hash;
復合多種方式;
優點:
缺點
拆分后業務清晰,拆分規則明確;
系統之間整合或擴展容易;
數據維護簡單;
部分業務表無法join,只能通過接口方式解決,提高了系統復雜度;
受每種業務不同的限制存在單庫性能瓶頸,不易數據擴展和性能提高;
事務處理復雜;
垂直拆分:比如按照訂單表和用戶表,將其分別放到不同的數據庫中
水平拆分:對海量數據的表進行分庫拆分,比如將用戶數據拆分到不同的庫中進行存儲
分庫分表的技術難點:無論是垂直拆分還是水平拆分,都會引入以下難點:
引入分布式事務的問題;
跨節點join的問題;
跨節點合并排序分頁問題;
多數據源管理問題;
數據庫中間件的實現模式
客戶端模式:在應用程序中集成數據庫中間件模塊,通過該模塊來配置管理應用需要的一個或多個數據源,以及訪問各個數據源,在模塊內完成數據的整合,適用于小型系統,典型的是sharding-jdbc;
服務端代理模式:通過中間代理層來統一管理所有的數據源,后端數據庫集群對前端應用程序透明,同時易于數據庫擴展。獨立的服務能提供更強的處理能力,適用于大型復雜系統,典型的是Mycat;
到此,相信大家對“數據庫中間件的原理是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。