成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

官方工具|MySQL Router高可用原理與實戰

數據庫 MySQL
MySQL Router是處于應用client和dbserver之間的輕量級代理程序,它能檢測,分析和轉發查詢到后端數據庫實例,并把結果返回給client。

Mysql route介紹

什么是mysql route

MySQL Router是處于應用client和dbserver之間的輕量級代理程序,它能檢測,分析和轉發查詢到后端數據庫實例,并把結果返回給client。是mysql-proxy的一個替代品。其架構圖和功能如下。

(1)Router實現讀寫分離,程序不是直接連接數據庫IP,而是固定連接到mysql router。MySQL Router對前端應用是透明的。應用程序把MySQL Router當作是普通的mysql實例,把查詢發給MySQL Router,而MySQL Router會把查詢結果返回給前端的應用程序。

(2)從數據庫服務器故障,業務可以正常運行。由MySQL Router來進行自動下線不可用服務器。程序配置不需要任何修改。

(3)主數據庫故障,由MySQL Router來決定主從自動切換,業務可以正常訪問。程序配置不需要做任何修改。

讀寫分離原理

MySQL Router接受前端應用程序請求后,根據不同的端口來區分讀寫,把連接讀寫端口的所有查詢發往主庫,把連接只讀端口的select查詢以輪詢方式發往多個從庫,從而實現讀寫分離的目的。讀寫返回的結果會交給MySQL Router,由MySQL Router返回給客戶端的應用程序。

Mysql router用途

MySQL Router的主要用途是讀寫分離,主主故障自動切換,負載均衡,連接池等。

Mysql router主主故障自動切換的坑

Mysql router主主故障切換功能經過測試沒有問題,但是有一個比較大的坑需要注意,具體是什么坑和解決方法在文章末尾,因為你之前要是沒用接觸過mysql router估計以我的表達能力,說了你就暈了。

mysql router實驗架構介紹

實驗環境架構圖如下:

安裝部署mysql route

(1)下載地址:提供不同平臺,二進制包和rpm包,選擇合適安裝方式即可,我這里使用二進制包安裝

(2)解壓安裝 

  1. [root@c7-node1 ~]# tar xf mysql-router-2.0.3-linux-glibc2.12-x86-64bit.tar.gz -C /usr/local/  
  2. [root@c7-node1 ~]# cd /usr/local/  
  3. [root@c7-node1 local]# ln -s mysql-router-2.0.3-linux-glibc2.12-x86-64bit/ mysql-router  
  4. [root@c7-node1 local]# cd mysql-router  
  5. [root@c7-node1 mysql-router]# ll  
  6. total 0  
  7. drwxr-xr-x 2 7161 wheel 24 Feb 23  2016 bin  
  8. drwxr-xr-x 4 7161 wheel 36 Feb 23  2016 include  
  9. drwxr-xr-x 3 7161 wheel 150 Feb 23  2016 lib  
  10. drwxrwxr-x 2 7161 wheel 6 Feb 23  2016 run  
  11. drwxr-xr-x 3 7161 wheel 16 Feb 23  2016 share 

(3) 配置

1、創建配置文件目錄,復制模版配置文件 

  1. [root@c7-node1 mysql-router]# mkdir /etc/mysql-route/  
  2. [root@c7-node1 mysql-router]# cp share/doc/mysqlrouter/sample_mysqlrouter.ini /etc/mysql-route/mysqlrouter.conf 

2、配置文件設置,日志目錄需要自己手動創建 

  1. [root@node1 ~]# cat /etc/mysql-route/mysqlrouter.conf  
  2. [DEFAULT]  
  3. # 日志存放目錄  
  4. logging_folder = /data/log/mysql-route  
  5. # 插件存放目錄  
  6. plugin_folder = /usr/local/mysql-router/lib/mysqlrouter  
  7. # 配置文件存放目錄  
  8. config_folder = /etc/mysql-route  
  9. # 運行目錄  
  10. runtime_folder = /var/run  
  11. [logger]  
  12. # 日志運行級別  
  13. level = INFO  
  14. # 主節點故障轉移配置  
  15. [routing:basic_failover]  
  16. # 寫節點地址  
  17. bind_address=192.168.100.10  
  18. # 寫節點端口  
  19. bind_port = 7001  
  20. # 模式,讀寫  
  21. mode = read-write  
  22. # 主節點地址:默認情況下第一臺主數據庫為寫主庫,當第一臺主數據庫DOWN機后,第二臺數據庫被提升為主庫  
  23. destinations = 192.168.100.11:3306,192.168.100.12:3306  
  24. # 從節點負載均衡配置  
  25. [routing:balancing]  
  26. # 綁定的IP地址  
  27. bind_address=192.168.100.10  
  28. # 監聽的端口  
  29. bind_port = 7002  
  30. # 連接超時時間  
  31. connect_timeout = 3  
  32. # 最大連接數  
  33. max_connections = 1024  
  34. # 后端服務器地址  
  35. destinations = 192.168.100.12:3306,192.168.100.13:3306  
  36. # 模式:讀還是寫  
  37. mode = read-only  
  38. [keepalive]  
  39. interval = 60 

日志目錄創建及授權 

  1. [root@c7-node1 ~]# mkdir /data/log/mysql-route/  
  2. [root@c7-node1 ~]# chown mysql:mysql /data/log/mysql-route/ 

(4) 啟動:mysql route官方沒有提供啟動腳本,需要自己編寫 

  1. [root@c7-node1 ~]# cat /usr/lib/systemd/system/mysqlrouter.service  
  2. [Unit]  
  3. Description=MySQL Router  
  4. After=syslog.target  
  5. After=network.target  
  6. [Service]  
  7. Type=simple  
  8. User=mysql  
  9. Group=mysql  
  10. ExecStart=/usr/local/mysql-router/bin/mysqlrouter -c /etc/mysql-route/mysqlrouter.conf  
  11. PrivateTmp=true  
  12. [Install]  
  13. WantedBy=multi-user.target 

5、啟動服務 

  1. [root@c7-node1 ~]# systemctl enable mysqlrouter  
  2. [root@c7-node1 ~]# systemctl start mysqlrouter 

讀寫分離測試

1、創建測試帳號,測試庫 

  1. MariaDB [(none)]> create database mysql_route;  
  2. MariaDB [(none)]> GRANT all ON mysql_route.* TO 'route'@'%' IDENTIFIED BY 'route';  
  3. MariaDB [(none)]> FLUSH PRIVILEGES; 

2、驗證讀負載均衡:從結果看到每次讀都是訪問不同的主機

3、驗證寫:可以看到每次寫都是寫到主節點

從庫down機測試

下面是從庫down機測試截圖,可以看到兩個節點都正常的情況下,是輪訓從兩個從庫取數據,如果其中一個從庫故障,那么mysql router會自動下線故障的從庫,如果從庫恢復,mysql router會自動把從庫上線。

主主故障切換測試

驗證:正常情況下數據寫入都是寫到主庫

我們手動停止主庫的mysql服務,模擬故障,再次寫入,可以看到寫入數據的節點是主庫的備份節點。

注意:

1、備份從庫不能打開read-only = on,不然切換之后寫入會報錯

2、第一臺主庫DOWN后,MySQL Router如何處理?

默認情況下第一臺主數據庫為寫主庫,當第一臺主數據庫DOWN機后,第二臺數據庫被提升為主庫,稍后如果第一臺主庫被修復后,那么默認仍然連接第二臺為主庫進行讀寫,不會自動切回到第一臺主庫。

3、如果第一臺主數據庫被修復后,又希望切換回第一臺主庫,怎么辦?

可以重啟MySQL Router

主主故障切換的坑

Mysql router的主主故障切換如果是運行在一主一從的情況下,從庫作為主庫的備份,這種情況是使用mysql router主主故障切換是沒有問題的,但是在一主多從的情況下使用主主故障切換就會處在如下問題。

在一主多從的情況,如果主庫down機,切換到備份節點,其他從庫的主庫地址連接還是故障的主庫,這樣就會造成一個從庫slave_io線程connecting狀態,造成復制延遲。我之前的主庫地址是192.168.10.11,備份主庫地址是192.168.10.12,但是主庫故障之后,mysql route可以把寫請求路由到新的主庫,但是從庫嘗試連接的主庫還是192.168.10.11,這種情況是正常的,因為mysql router主主故障切換原理就是這樣,但是生產環境就不能這么玩了。

解決辦法:

1、在切換時需要自己編寫腳本觸發一個shell腳本或者event來處理重連的問題。

2、不使用mysql router主主故障轉移功能,而是自己使用其他方式保證mysql主庫高可用。

版權申明:作者:西門飛冰,一名90后it男,一直在北京工作,熱愛運動,熱愛冒險,熱愛旅行。由作者原創投稿,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除并表示歉意,謝謝。

關注 民工哥技術之路 微信公眾號對話框回復關鍵字:1024 可以獲取一份最新整理的技術干貨:包括系統運維、數據庫、redis、MogoDB、電子書、Java基礎課程、Java實戰項目、架構師綜合教程、架構師實戰項目、大數據、Docker容器、ELK Stack、機器學習、BAT面試精講視頻等。

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2022-05-17 11:06:44

數據庫MySQL系統

2023-05-24 08:14:55

2024-06-26 13:31:54

MySQL高可用MHA

2022-06-21 07:51:06

Redis高可用哨兵進程

2013-07-02 15:23:08

MySQL MHA故障轉移

2022-06-23 11:42:22

MySQL數據庫

2022-05-31 08:04:03

Redis高可用集群

2019-08-12 10:48:24

MySQLMHA架構應用場景

2018-04-08 15:20:15

數據庫MySQL主從復制

2017-09-22 10:05:48

Redis備份容災

2021-04-20 08:31:59

應用監控高可用

2015-05-12 10:22:05

MySQL

2015-10-22 10:28:45

MySQL高可用方案

2019-08-27 15:56:44

MySQL 互聯網數據庫

2018-01-12 14:20:37

數據庫MySQL高可用架構

2022-02-27 14:37:53

MySQL主備數據

2012-02-22 10:13:43

虛擬化桌面虛擬化VMware View

2025-01-15 13:46:23

2021-09-17 07:51:24

Keepalived服務高可用

2019-08-26 08:36:09

負載均衡高可用Nginx
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠伊人 | 在线观看日韩精品视频 | 成人污污视频 | 亚洲成人一区二区 | 五月婷婷激情网 | 欧美日韩国产综合在线 | 国产成人精品综合 | 国产精品国产a级 | 一级国产精品一级国产精品片 | 国产高清视频一区 | 国产乱码精品一区二区三区五月婷 | 99在线观看视频 | 黄在线免费观看 | 日韩视频二区 | 美女福利视频一区 | 91精品在线播放 | 久久久久久久久久性 | 国产免费xxx| 久久精品亚洲欧美日韩精品中文字幕 | 免费美女网站 | 国内自拍偷拍 | 成人免费久久 | 日韩电影在线一区 | 婷婷五月色综合 | 中文字幕精品视频在线观看 | 午夜久久久| 久草综合在线视频 | 岛国av免费在线观看 | 欧美一区视频在线 | 成人一级毛片 | 毛片黄片 | 精品久久久久一区 | 日韩不卡在线 | 国产精品福利网 | 亚洲成人福利 | 九九在线| 丁香五月网久久综合 | 久久久www成人免费无遮挡大片 | 99久久久久久 | 亚洲福利 | 亚州中文字幕 |