原创 7. sharding-jdbc源碼之group by結果合併(2)

阿飛Javaer,轉載請註明原創出處,謝謝! 在sharding-jdbc源碼之group by結果合併(1)中主要分析了sharding-jdbc如何在GroupByStreamResultSetMerger和GroupBy

原创 6. sharding-jdbc源碼之group by結果合併(1)

阿飛Javaer,轉載請註明原創出處,謝謝! 在5. sharding-jdbc源碼之結果合併中已經分析了OrderByStreamResultSetMerger、LimitDecoratorResultSetMerger、I

原创 21.sharding-jdbc源碼之SQL解析-詞法分析

阿飛Javaer,轉載請註明原創出處,謝謝!! sharding-jdbc對SQL解析的源碼主要在下圖所示parsing模塊中,由下圖可知SQL解析主要分爲兩部分:lexer和parser。lexer就是本文需要分析的詞法分析

原创 15. sharding-jdbc源碼之EventBus-輕量級進程內事件分發組件

阿飛Javaer,轉載請註明原創出處,謝謝! EventBus來自於google-guava包中。源碼註釋如下: Dispatches events to listeners, and provides ways for li

原创 2. sharding-jdbc源碼之Configuration

阿飛Javaer,轉載請註明原創出處,謝謝! 上篇文章sharding-jdbc源碼之數據源介紹了通過Java硬編碼創建ShardingDataSource。這篇文章通過分析sharding-jdbc-config-paren

原创 3-1. sharding-jdbc源碼之複雜路由實現

阿飛Javaer,轉載請註明原創出處,謝謝! 路由條件 ParsingSQLRouter.java中決定是簡單路由還是複雜路由的條件如下; private RoutingResult route(final List<Obje

原创 8. sharding-jdbc源碼之結果合併總結

阿飛Javaer,轉載請註明原創出處,謝謝! 分頁性能分析 性能瓶頸 查詢偏移量過大的分頁會導致數據庫獲取數據性能低下,以MySQL爲例: SELECT * FROM t_order ORDER BY id LIMIT 100

原创 14. sharding-jdbc源碼之異常處理

阿飛Javaer,轉載請註明原創出處,謝謝! 一般項目都會有自己的一套異常處理方式,sharding-jdbc也不以外,sharding-jdbc源碼處理異常的方式主要有下面2種方式: 1. Preconditions 2

原创 10. sharding-jdbc源碼之異步送達JOB

阿飛Javaer,轉載請註明原創出處,謝謝! 最大努力送達型異步JOB任務 當最大努力送達型監聽器多次失敗嘗試後,把任務交給最大努力送達型異步JOB任務處理,異步多次嘗試處理;核心源碼在模塊sharding-jdbc-tran

原创 11. sharding-jdbc集成--基於ssm

阿飛Javaer,轉載請註明原創出處,謝謝! 本篇文章講解如何在ssm(spring、springmvc、mybatis)架構的程序上集成sharding-jdbc(版本爲1.5.4.1)進行分庫分表; 假設分庫分錶行爲如下

原创 9. sharding-jdbc源碼之最大努力型事務

阿飛Javaer,轉載請註明原創出處,謝謝! BASE Transaction Best efforts delivery transaction (已經實現). Try confirm cancel transaction

原创 4. sharding-jdbc源碼之分佈式ID

阿飛Javaer,轉載請註明原創出處,謝謝! 實現動機 傳統數據庫軟件開發中,主鍵自動生成技術是基本需求。而各大數據庫對於該需求也提供了相應的支持,比如MySQL的自增鍵。 對於MySQL而言,分庫分表之後,不同表生成全局唯一

原创 13. sharding-jdbc源碼之讀寫分離

阿飛Javaer,轉載請註明原創出處,謝謝! 讀寫分離支持項 提供了一主多從的讀寫分離配置,可獨立使用,也可配合分庫分表使用。 同一線程且同一數據庫連接內,如有寫入操作,以後的讀操作均從主庫讀取,用於保證數據一致性。 Spr

原创 12. sharding-jdbc源碼之強制路由

阿飛Javaer,轉載請註明原創出處,謝謝!! 源碼分析 位於sharding-jdbc-core模塊下的包com.dangdang.ddframe.rdb.sharding.hint中,核心類HintManagerHolde

原创 5. sharding-jdbc源碼之結果合併

阿飛Javaer,轉載請註明原創出處,謝謝! 單表查詢之結果合併 接下來以執行SELECT o.* FROM t_order o where o.user_id=10 order by o.order_id desc limi