ShardingSphere 使用記錄

配置文件要點

分庫分表 :

參考 官網 得出總結如下。主要就是策略(strategy)的前綴。還是歸類的很清晰的。

  • 針對 一個entity 分 :spring.shardingsphere.sharding.tables.user.database-strategy.inline.sharding-column=id
  • 針對 一個entity 分 :spring.shardingsphere.sharding.tables.user.table-strategy.inline.sharding-column=id
  • 默認所有entity 分 :s pring.shardingsphere.sharding.default-database-strategy.inline.sharding-column=id

主從 :

  • 一組 主從構成一個 dbX :
    • spring.shardingsphere.sharding.master-slave-rules.ds0.master-data-source-name=master1
    • spring.shardingsphere.sharding.master-slave-rules.ds0.slave-data-source-names=master1slave1, master1slave2
  • 分片(分庫分表) 直接對接 dbX。

jdbcUrl is required with driverClassName.

詳情 : Caused by: java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:954)。
官網 …{master1}.url 改爲 GitHub示例 {master1}.jdbc-url

Sharding-Proxy 一直報錯 .IllegalStateException: Can not find any sharding rule configuration file in path `/opt/sharding-proxy/conf`

第一眼以爲自己的配置錯了,使勁找,嘗試性的改改,沒有用。最後看 源碼 發現是拿正則匹配的文件名 寫死的 yaml 。哎 Fuck。自己寫的是yml文件後綴。
在這裏插入圖片描述

Sharding-Proxy ShardingException: Cannot load JDBC driver class `com.mysql.jdbc.Driver`, make sure it in Sharding-Proxy’s classpath

docker 環境 MySQL 驅動 放到ext_lib下不好使,直接mv到lib下。

ShardingException: Can not update sharding key, logic table: [user_log]

直議 : 不能更新 分片的列
看代碼發現 update 的邏輯是 分片的列必須在where條件裏 並且必須同 更新的值相同。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章