天天看點

mycat基本概念和配置檔案mycat

mycat

mycat的優勢:

  • 實作後端資料庫的讀寫分離和負載均衡
  • 支援寫DB高可用,
  • 作用
    • 資料庫進行垂直切分,
    • 進行水準切分
    • 控制資料庫連接配接的數量
  • mycat 基本元素
    • 邏輯庫:即後端切分後的資料庫
    • 對應後端多個實體資料庫
    • 邏輯庫中不儲存資料

邏輯表

  • 對應用來說相當于mysql的資料表
  • 邏輯表可對應後端多個實體資料庫的表
  • 邏輯表中不儲存資料

邏輯表的分類

  • 分片表和非分片表按是否被分片劃分
  • 全局表,在所有分片中都存在的表
  • ER關系表,按照ER關系分片的表

安裝注意事項

  • jdk必須在1.7及以上版本
  • 在conf裡面,修改wrapper.conf中修改配置記憶體大小(在自己的虛拟機裡面,這需要修改,不然記憶體不夠用)

配置檔案

  • server.xml:是服務之間的配,使用者認證之類
  • schema.xml:就是邏輯表,邏輯庫的配置
  • rule.xml:就是對分表分庫的規則的配置
  • log4j2.xml:就是日志檔案

server.xml

  • 配置系統參數
  • 配置使用者通路權限
  • 配置sql防火牆和sql攔截功能
    mycat基本概念和配置檔案mycat
    配置端口資訊
    mycat基本概念和配置檔案mycat
    基本的一些配置
  • 使用者權限配置
  • mycat基本概念和配置檔案mycat
  • 密碼加密
    mycat基本概念和配置檔案mycat
    執行指令之後,放入配置檔案,并在配置上面加上
    mycat基本概念和配置檔案mycat
  • 配置通路的資料庫
    mycat基本概念和配置檔案mycat
  • 配置通路的權限
    mycat基本概念和配置檔案mycat
    1111 四位數表示新增,修改,查詢和删除的權限,1表示有,0表示沒有

log4j2.xml

  • 配置輸出日志的格式
  • 配置輸出日志的級别
    mycat基本概念和配置檔案mycat
    • 配置講解:
      • %d{yyyy-MM-dd HH:mm:ss:SSS}:表示日志的時間格式
      • %5p表示日志輸出的級别
      • %t:線程資訊
      • %m表示代碼中提定的資訊
      • %n 表示輸出一個回車符号
    • 日志級别
      mycat基本概念和配置檔案mycat

rule.xml

  • 配置水準分片的分片規則
  • 配置分片規則對應的分片函數
    mycat基本概念和配置檔案mycat
  • 名字要唯一(全局唯一,最好是子產品+表+分塊數+分塊依據)
    mycat基本概念和配置檔案mycat
    mycat基本概念和配置檔案mycat
  • 名字就是算法的名稱,放在algorithm标簽中

常用的分片算法

  • 簡單取模:PartitionByMod
  • 哈希取模:PartitionByHash
  • 分片枚舉:PartitionByFileMap
  • 字元串範圍取模

簡單取模

mycat基本概念和配置檔案mycat
  • 可用于分片列為整數的表
  • 分片列mode分片基數
  • 類全名;io.mycat.route.function.PartitionByMod(不同版本class不同,找官方文檔确認)

哈希取模:PartitionByHash

  • 可以用于多種資料類型,字元串,日期等
  • hash(分片列)mode分片基數
  • 類全名:io,mycat.route.function.PartitionByHash(不同版本class不同,找官方文檔确認)

分片枚舉:PartitionByFileMap

mycat基本概念和配置檔案mycat
  • 根據可能的枚舉值來指定資料存儲的位置
  • $mycat/conf增加MapFile配置枚舉值同節點的對應關系
  • 類全名:io,mycat.route.function.PartitionByFileMap(不同版本class不同,找官方文檔确認)

字元串範圍取模

  • 可以根據字元串前N個字元确認存儲位置
  • $mycat/conf增加MapFile配置字元串取值範圍和節點的關系
  • 類全名:io,mycat.route.function.PartitionByPrefixPatten(不同版本class不同,找官方文檔确認)
mycat基本概念和配置檔案mycat

schema.xml

  • 配置邏輯表和邏輯庫
  • 配置邏輯表存儲的資料節點
  • 配置資料節點對應的實體資料庫伺服器資訊
    mycat基本概念和配置檔案mycat
  • 配置邏輯庫,name是邏輯庫的命名,sqlMaxLimit是傳回最大資料數,checkSQLschema檢查發給mycat的語句中是否包含庫名
    mycat基本概念和配置檔案mycat
  • name是邏輯表的名稱,primaryKey是邏輯表的主鍵,dataNode是表資料所存儲的資料節點,rule是rule.xml中配置的分片規則
    mycat基本概念和配置檔案mycat
  • name屬性必須唯一,dataHost定義分片所在的實體主機
    mycat基本概念和配置檔案mycat
    mycat基本概念和配置檔案mycat
    mycat基本概念和配置檔案mycat