好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 利用mycat實現mysql數據庫讀寫分離的示例

利用mycat實現mysql數據庫讀寫分離的示例

熱門標簽:銀川電銷外呼系統定制 甘孜電話機器人廠家 做地圖標注都需要什么工具 電銷機器人好品牌門薩維l 哈爾濱crm外呼系統價格 中科嘉智人工智能電銷機器人 凱立德科技館地圖標注 西安400電話在哪里辦理 上海智能外呼系統需要多少錢

什么是MyCAT

  1. 一個徹底開源的,面向企業應用開發的大數據庫集群
  2. 支持事務、ACID、可以替代MySQL的加強版數據庫
  3. 一個可以視為MySQL集群的企業級數據庫,用來替代昂貴的Oracle集群
  4. 一個融合內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server
  5. 結合傳統數據庫和新型分布式數據倉庫的新一代企業級數據庫產品
  6. 一個新穎的數據庫中間件產品

MyCAT關鍵特性

  1. 支持SQL92標準
  2. 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見SQL語法
  3. 遵守MySQL原生協議,跨語言,跨平臺,跨數據庫的通用中間件代理。
  4. 基于心跳的自動故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集群。
  5. 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  6. 基于Nio實現,有效管理線程,解決高并發問題。
  7. 支持數據的多片自動路由與聚合,支持sum,count,max等常用的聚合函數,支持跨庫分頁。
  8. 支持單庫內部任意join,支持跨庫2表join,甚至基于caltlet的多表join。
  9. 支持通過全局表,ER關系的分片策略,實現了高效的多表join查詢。
  10. 支持多租戶方案。
  11. 支持分布式事務(弱xa)。
  12. 支持XA分布式事務(1.6.5)。
  13. 支持全局序列號,解決分布式下的主鍵生成問題。
  14. 分片規則豐富,插件化開發,易于擴展。
  15. 強大的web,命令行監控。
  16. 支持前端作為MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  17. 支持密碼加密
  18. 支持服務降級
  19. 支持IP白名單
  20. 支持SQL黑名單、SQL注入攻擊攔截
  21. 支持prepare預編譯指令
  22. 支持非堆內存(Direct Memory)聚合計算
  23. 支持PostgreSQL的native協議
  24. 支持MySQL和oracle存儲過程,out參數、多結果集返回
  25. 支持zookeeper協調主從切換、zk序列、配置zk化
  26. 支持庫內分表
  27. 集群基于ZooKeeper管理,在線升級,擴容,智能優化,大數據處理(2.0開發版)。

1、這里是在mysql主從復制實現的基礎上,利用mycat做讀寫分離,架構圖如下:

2、Demo

2.1 在mysql master上創建數據庫創建db1

2.2 在數據庫db1創建表student

同時,因為配置好了mysql主從復制,在mysql slave上也有一樣數據庫和表

2.3 編輯 mycat的配置文件server.xml

   !--表示mycat的登錄用戶名-->
  user name="test">
        !--表示mycat的登錄密碼-->
        property name="password">test/property>
         !--表示mycat的邏輯數據庫名稱,可以自定義-->
        property name="schemas">TESTDB/property>
    /user>

    user name="user">
        property name="password">user/property>
        property name="schemas">TESTDB/property>
        property name="readOnly">true/property>
    /user>

2.4編輯mycat的配置文件schema.xml

!--TESTDB表示mycat的邏輯數據庫名稱
 當schema節點沒有子節點table的時候,一定要有dataNode屬性存在(指向mysql真實數據庫),
-->
schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
    /schema>
    !--指定master的數據庫db1-->
    dataNode name="dn1" dataHost="192.168.0.4" database="db1" />
    !--指定mastet的ip -->
    dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
        !--表示mysql的心跳狀態-->
        heartbeat>select user()/heartbeat>
        !-- master負責寫 -->
        writeHost host="hostM1" url="192.168.0.4:3306" user="root"
            password="admin">
        !--slave負責讀-->
        readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" />
        /writeHost>
/dataHost>

到這里,利用mycat做讀寫分離就已經配置完了

注意 dataHost節點的下面三個屬性

balance, switchType, writeType

balance="0", 不開啟讀寫分離機制,所有讀操作都發送到當前可用的writeHost上。

balance="1",全部的readHost與stand by writeHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。

balance="2",所有讀操作都隨機的在writeHost、readhost上分發。

balance="3",所有讀請求隨機的分發到writeHost下的readhost執行,writeHost不負擔讀壓力

writeType表示寫模式

writeType="0",所有的操作發送到配置的第一個writehost

writeType="1",隨機發送到配置的所有writehost

writeType="2",不執行寫操作

switchType指的是切換的模式,目前的取值也有4種:

switchType=‘-1‘ 表示不自動切換

switchType=‘1‘ 默認值,表示自動切換

switchType=‘2‘ 基于MySQL主從同步的狀態決定是否切換,心跳語句為show slave status

switchType=‘3‘基于MySQL galary cluster的切換機制(適合集群)(1.4.1),心跳語句為show status like ‘wsrep%‘。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Springboot + Mysql8實現讀寫分離功能
  • springboot基于Mybatis mysql實現讀寫分離
  • 基于mysql+mycat搭建穩定高可用集群負載均衡主備復制讀寫分離操作
  • PHP實現的mysql讀寫分離操作示例
  • mysql主從復制讀寫分離的配置方法詳解
  • PHP+MYSQL實現讀寫分離簡單實戰
  • Mysql讀寫分離過期常用解決方案

標簽:浙江 安康 四川 那曲 山南 平頂山 安徽 濮陽

巨人網絡通訊聲明:本文標題《利用mycat實現mysql數據庫讀寫分離的示例》,本文關鍵詞  利用,mycat,實現,mysql,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用mycat實現mysql數據庫讀寫分離的示例》相關的同類信息!
  • 本頁收集關于利用mycat實現mysql數據庫讀寫分離的示例的相關信息資訊供網民參考!
  • 推薦文章