laravel 讀寫分離源碼解析


前言:上一篇我們說了《laravel 配置MySQL讀寫分離》,這次我們說下,laravel的底層代碼是怎樣實現讀寫分離的。

 

一、實現原理

說明:
    1、根據 database.php 配置,創建寫庫和讀庫的鏈接 connection
    2、調用 select 時先判斷使用讀庫還是寫庫,而 insert/update/delete 統一使用寫庫

主要文件:Illuminate/Database/Connectors/ConnectionFactory.php

 

1、判斷 database.php 是否配置了讀寫分離數據庫

文件:Illuminate/Database/Connectors/ConnectionFactory.php

 

2、看看如何創建讀庫和寫庫的鏈接

 

3、看看多個讀庫或者寫庫會選擇哪個

 

4、總結

1,可以設置多個讀庫和多個寫庫,或者不同組合,比如一個寫庫兩個讀庫
2,每次只創建一個讀庫鏈接和一個寫庫鏈接,從多個庫中隨機選擇一個;

 

二、select和insert/update/delete源碼解析

主要文件:Illuminate/Database/Connection.php

1、select 函數根據第三個輸入參數判斷使用讀庫還是寫庫

 

2、insert/update/delete 統一使用寫庫

 

3、總結

1,getReadPdo () 獲得讀庫鏈接,getPdo () 獲得寫庫鏈接。

2,select () 函數根據第三個參數判斷使用讀庫還是寫庫。

 

以上就是本篇文章的全部了,結束。

 

參考鏈接:https://learnku.com/laravel/t/1879/laravel-5-configuration-read-and-write-separation-and-source-analysis


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM