seata 啟動
啟動腳本里面指定了 CMS 並行收集器,所以我們需要指定啟動 jdk 為 jdk8。
windows 環境在 seata-server.bat
里面配置 JAVACMD 變量,linux 就修改 seata-server.sh
。
set JAVACMD=C:\JDK\jdk-8\bin\java.exe
項目添加 seata 啟動報錯
SeataRestTemplateAutoConfiguration.class 循環依賴錯誤,我們可以看到 他自己注入 SeataRestTemplateInterceptor bean,而這個 bean 又是在自己內部創建的。
解決方案:
Spring 啟動排除 SeataRestTemplateAutoConfiguration.class 配置類,自己手動重寫配置類,給注入配置成懶加載模式
// 啟動指定排除 SeataRestTemplateAutoConfiguration.class 配置類
@SpringBootApplication(exclude = SeataRestTemplateAutoConfiguration.class)
項目執行 sql 報 jackson 數據綁定錯誤 com.fasterxml.jackson.databind.exc.InvalidDefinitionException
解決方案:
方案一:數據庫涉及的所有表的 datetime 的數據類型調整為 timestamp,明顯不現實。timestamp是 1970-01-01 00:00:00到 2037 年。
方案二:seta 客戶端修改序列化方式為 kryo
, 添加相關引用
client.undo.logSerialization = kryo
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>de.javakaffee</groupId>
<artifactId>kryo-serializers</artifactId>
<version>0.42</version>
</dependency>