91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用mycat實現mysql數據庫讀寫分離

發布時間:2021-06-17 15:26:52 來源:億速云 閱讀:166 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹了如何利用mycat實現mysql數據庫讀寫分離,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

什么是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做讀寫分離,架構圖如下:

如何利用mycat實現mysql數據庫讀寫分離

2、Demo

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

2.2 在數據庫db1創建表student

如何利用mycat實現mysql數據庫讀寫分離

同時,因為配置好了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%‘。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何利用mycat實現mysql數據庫讀寫分離”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆林市| 红桥区| 陕西省| 广昌县| 永福县| 嘉鱼县| 团风县| 盐城市| 望都县| 昌黎县| 三亚市| 孝感市| 盐山县| 耒阳市| 青浦区| 太保市| 滨州市| 府谷县| 视频| 横峰县| 城固县| 无为县| 盐亭县| 青冈县| 界首市| 集安市| 双桥区| 漯河市| 象山县| 余姚市| 玛曲县| 南木林县| 乌什县| 宜州市| 潍坊市| 丰县| 贡嘎县| 平和县| 康定县| 淮南市| 治多县|