mycat分庫分表-全局序列號-本地時間戳方式(坑點說明)

image.png

因為最近在做mycat 分庫分表,然后遇到了一個小小的坑。在這里分享一下!

全局序列號,官方文檔介紹是有以下幾種:

本地文件方式
數據庫方式
本地時間戳方式

詳情請參考下面這個博客,個人認為講的還是比較靠譜的s

http://blog.csdn.net/u010956470/article/details/70837876

在這里主要講下本地時間戳的方式

本地時間戳


ID= 64 位二進制(42(毫秒)+5(機器 ID)+5(業務編碼)+12(重復累加)
換算成十進制為18位的long類型,每毫秒可以并發12為二進制的累加。

使用方式:

a. 配置 server.xml

<property name="sequnceHandlerType">2</property>

b. 在 mycat 下配置:sequence_time_conf.properties

WORKID=0-31 #任意整數
DATAACENTERID=0-31  #任意整數

多個 mycat 節點下每個 mycat 配置的WORKID,DATAACENTERID 不同,組成唯一標識,總共支持

32*32=1024 種組合。

ID 示例:56763083475511

注意注意

還需要修改下 mycat/conf/schema.xml
開啟一個配置

image.png

圖中畫框框的地方

 autoIncrement=“true”
autoIncrement

使用 autoIncrement="true" 指定返個表有使用自增長主鍵,這樣 mycat 才會不拋出分片鍵找不到的異常。
使用 autoIncrement="false" 來禁用返個功能,當然你也可以直接刪除掉這個屬性。默認就是禁用的

當如果禁用時,插入一條sql語句則必須對如下圖所示

image.png

必須得給Id加上
new value for MYCATSEQ_GLOBAL
否則的話 會直接使用mysql 所配置的自增主鍵,這樣就會導致多個庫的主鍵重復

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容