【Laravel】一主多從讀寫分離配置
錯誤範例
最近要配置laravel的讀寫分離,找了半天資料都是類似下面的這種形式。
'mysql' => array( 'read' => array( 'host' => '192.168.1.1', 'host' => '192.168.1.3', ), 'write' => array( 'host' => '196.168.1.2', 'host' => '192.168.1.4', ), 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
一個array配置兩個相同的key也是醉了,而且各個網站都是這麼寫的,爬資料能不能走點心。
求根溯源
無奈只能扒程式碼
在DB的連線工廠中找到以下程式碼
.../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php
工廠類通過隨機獲取讀DB配置來進行讀取操作,由此可推出DB的配置應該如下/** * Get the read configuration for a read / write connection. * * @param array $config * @return array */ protected function getReadConfig(array $config) { $readConfig = $this->getReadWriteConfig($config, 'read'); return $this->mergeReadWriteConfig($config, $readConfig); } /** * Get a read / write level configuration. * * @param array $config * @param string $type * @return array */ protected function getReadWriteConfig(array $config, $type) { if (isset($config[$type][0])) { return $config[$type][array_rand($config[$type])]; } return $config[$type]; }
'mysql' => [
'driver' => 'mysql',
'write' => [
'host' => '192.168.1.180',
],
'read' => [
['host' => '192.168.1.182'],
['host' => '192.168.1.179'],
],
...
]
驗證
開啟MySQL的general-log,通過tail -f的方式監控log變化來確定配置是否生效。相關推薦
【Laravel】一主多從讀寫分離配置
錯誤範例 最近要配置laravel的讀寫分離,找了半天資料都是類似下面的這種形式。 'mysql' => array( 'read' => array( 'host' => '192.168.1.1', 'host' =
003.MMM雙主-雙從讀寫分離部署
一 前期規劃 1.1 主機規劃
MMM雙主-雙從讀寫分離部署
row 有一個 二進制 cti dia status 接管 list time 目錄 一 前期規劃 1.1 主機規劃 1.2 虛擬IP規劃 1.3 用戶列表 1.4 整體架構 1.4 hosts修改 1.5 NTP配置 二 部署MySQL 2.1 安裝MySQL
【二】MyCAT主要作用、讀寫分離、負載均衡、垂直切分、水平切分概述
主要作用: 1作為分散式資料庫中間層使用。 MyCAT由Java開發,理論上說所有可以使用JDBC連線的關係型資料庫和非關係型資料庫都能使用MyCAT。 2.對主從資料庫的讀寫分離、讀的負載均衡。 如果不用MyCAT,在每一個訪問這套資料庫的應用中都要實現讀寫分離的邏
【資料庫】資料庫負載均衡、讀寫分離技術
隨著網際網路應用的廣泛普及,海量資料的儲存和訪問成為了系統設計的瓶頸問題。對於一個大型的網際網路應用,每天百萬級甚至上億的PV無疑對資料庫造成了相當高的負載。對於系統的穩定性和擴充套件性造成了極大的問題。 一、負載均衡技術 負載均衡叢集是由一組相互獨立的計算機系統構成,通過
EF通用數據層封裝類(支持讀寫分離,一主多從)
dto cte 功能 pes getc mes 工廠 好的 靈活 淺談orm 記得四年前在學校第一次接觸到 Ling to Sql,那時候瞬間發現不用手寫sql語句是多麽的方便,後面慢慢的接觸了許多orm框架,像 EF,Dapper,Hibernate,ServiceSta
MySQL主從(MySQL proxy Lua讀寫分離設置,一主多從同步配置,分庫分表方案)
否則 count user username 2個 ons 基礎 zxvf 路徑 Mysql Proxy Lua讀寫分離設置一.讀寫分離說明讀寫分離(Read/Write Splitting),基本的原理是讓主數據庫處理事務性增、改、刪操作(INSERT、UPDATE、DE
EF通用資料層封裝類(支援讀寫分離,一主多從)
原文: EF通用資料層封裝類(支援讀寫分離,一主多從) 淺談orm 記得四年前在學校第一次接觸到 Ling to Sql,那時候瞬間發現不用手寫sql語句是多麼的方便,後面慢慢的接觸了許多orm框架,像 EF,Dapper,Hibernate,ServiceStack.OrmLite 等。當
cool-2018-03-10-windows下實現mysql5.6讀寫分離、主從複製和一主多從
mysql壓縮包移步下載:mysql5.6--主從資料庫的安裝第一步:複製mysql到自定義目錄中,我現在放的是 E:\cool\mysql,資料庫叫3380第二步: 刪除3380\logs目錄下的所有日誌檔案第三步驟: 刪除3380\datas所有的log檔案(注意不是所有
使用spring實現讀寫分離(mysql主從複製)五:一主多從的實現
很多實際使用場景下都是採用“一主多從”的架構的,使用輪詢演算法實現,目前只需要修改DynamicDataSource即可。 1.1. 實現 import java.lang.reflect.Field; import java.util.ArrayList; impo
Mysql一主多從和讀寫分離配置簡記
近期開發的系統中使用MySql作為資料庫,由於資料涉及到Money,所以不得不慎重。同時,使用者對最大訪問量也提出了要求。為了避免Mysql成為效能瓶頸並具備很好的容錯能力,特此實現主從熱備和讀寫分離。在此簡做紀要,以備日後所用! 一、配置主從 條件:兩臺PC,IP分別為1
資料庫MYSQL一主多從與讀寫分離
近期開發的系統中使用MySql作為資料庫,由於資料涉及到Money,所以不得不慎重。同時,使用者對最大訪問量也提出了要求。為了避免Mysql成為效能瓶頸並具備很好的容錯能力,特此實現主從熱備和讀寫分離。在此簡做紀要,以備日後所用! 一、配置主從 條件:兩臺P
Mysql DBA 高級運維學習筆記-一主多從宕機從庫切換主繼續和從庫同步過程
復制 導入數據 之間 pro vim 庫服務器 chan mas 優點 1.主庫master 宕機 登錄從庫show processlist\G 看兩個線程的更新狀態 mysql> show processlist\G ************************
Mysql一主多從復制數據
sock 是否 art str cor term 數據庫 啟動 ado 應用場景:外部僅僅訪問主數據庫(Mysql_Master),多個從數據庫(Mysql_Slave)做數據庫熱備份。一旦主數據庫宕機,從服務器負責處理數據實驗拓補圖: 實驗環
搭建MySQL一主多從————VMware Workstation 虛擬機nat網絡配置(一)
VMware Workstation 虛擬機 虛擬網絡 nat連接 運行 VMware Workstation Pro 在桌面找到該圖標,雙擊運行即可,如果沒有安裝請下載安裝。流程編輯 ==》虛擬網絡編輯器 ==》 VMnet0 如果沒有 添加網絡 最後設置完後,點擊確定即可。 配置虛
MySQL一主多從
MySQL主192.168.65.128上配置/etc/my.cnf[root@localhost ~]# /etc/init.d/mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL.. SUCCESS!備份數據從1、192.168.65.
CentOS6.5配置MYSQL一主多從詳解
ali ati In restart 配置文件 left 主庫 vim 數據庫 一、環境 1 操作系統 :CentOS 6.5 2 數據庫版本:MySQL 5.6.27 3 主機A:192.168.1.1 (Master) 4 從機B:192.168.1.2 (
Centos7配置mysql主從:一主多從
表結構 .cn single 讀取 entos body 分享 posit bin-log mysql主從復制原理1.首先master將數據更新記錄到二進制binlog文件2.slave通過I/O線程向master請求binlog日誌文件指定位置之後的內容3.master接
mysql主從配置實現一主一從讀寫分離
配置文件 狀態 main ado man datadir lai community more 主從介紹 定義 Mysql主從又叫Replication、AB復制。簡單講就是A與B兩臺機器做主從後,在A上寫數據,另外一臺B也會跟著寫數據,實現數據實時同步 mysql主從是
mysql 一主多從配置說明
背景 mysql 一主多從的場景是經常見的,具體的業務場景裡我們一般讀的壓力遠遠是大於寫的壓力,master我們可以用來做寫操作,slave用來做讀操作、備份,可以做到資料庫的負載均衡。 同步複製過程說明 (1) master將改變記錄到二進位制日誌(binary log)中(這些記