spring cloud alibaba 分布式事務(wù)解決方案之seata-1.3.0
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
? 作者?|??Jone_chen
來源 |? urlify.cn/3uuu2m
66套java從入門到精通實(shí)戰(zhàn)課程分享
1、github上下載seata-1.3.0.zip包
鏈接:https://github.com/seata/seata/releases/download/v1.3.0/seata-server-1.3.0.zip
2、打開seata壓縮包,找到conf文件夾下的file.conf修改注冊(cè)方式和配置方式為nacos,如下:
##?transaction?log?store,?only?used?in?seata-server
#這里手動(dòng)加入service模塊
service?{
??#transaction?service?group?mapping
??#修改,可不改,my_test_tx_group隨便起名字。
??vgroup_mapping.my_test_tx_group?=?"default"
??#only?support?when?registry.type=file,?please?don't?set?multiple?addresses
??#?此服務(wù)的地址
??default.grouplist?=?"127.0.0.1:8091"
??#disable?seata
??disableGlobalTransaction?=?false
}
store?{
??##?store?mode:?file、db、redis
??mode?=?"db"
??##?file?store?property
??file?{
????##?store?location?dir
????dir?=?"sessionStore"
????#?branch?session?size?,?if?exceeded?first?try?compress?lockkey,?still?exceeded?throws?exceptions
????maxBranchSessionSize?=?16384
????#?globe?session?size?,?if?exceeded?throws?exceptions
????maxGlobalSessionSize?=?512
????#?file?buffer?size?,?if?exceeded?allocate?new?buffer
????fileWriteBufferCacheSize?=?16384
????#?when?recover?batch?read?size
????sessionReloadReadSize?=?100
????#?async,?sync
????flushDiskMode?=?async
??}
??##?database?store?property
??db?{
????##?the?implement?of?javax.sql.DataSource,?such?as?DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari)?etc.
????datasource?=?"druid"
????##?mysql/oracle/postgresql/h2/oceanbase?etc.
????dbType?=?"mysql"
????driverClassName?=?"com.mysql.cj.jdbc.Driver"
????url?=?"jdbc:mysql://119.29.165.98:3306/seata?useSSL=false&serverTimezone=Asia/Shanghai"
????user?=?"root"
????password?=?"@Cj19861127"
????minConn?=?5
????maxConn?=?30
????globalTable?=?"global_table"
????branchTable?=?"branch_table"
????lockTable?=?"lock_table"
????queryLimit?=?100
????maxWait?=?5000
??}
??##?redis?store?property
??redis?{
????host?=?"127.0.0.1"
????port?=?"6379"
????password?=?""
????database?=?"0"
????minConn?=?1
????maxConn?=?10
????queryLimit?=?100
??}
}
3、修改registry.conf
registry?{
??#?file?、nacos?、eureka、redis、zk、consul、etcd3、sofa
??type?=?"nacos"
??nacos?{
????application?=?"seata-server"
????serverAddr?=?"119.29.165.98:8848"
????group?=?"SEATA_GROUP"
????namespace?=?""
????cluster?=?"default"
????username?=?"nacos"
????password?=?"nacos"
??}
??eureka?{
????serviceUrl?=?"http://localhost:8761/eureka"
????application?=?"default"
????weight?=?"1"
??}
??redis?{
????serverAddr?=?"localhost:6379"
????db?=?0
????password?=?""
????cluster?=?"default"
????timeout?=?0
??}
??zk?{
????cluster?=?"default"
????serverAddr?=?"127.0.0.1:2181"
????sessionTimeout?=?6000
????connectTimeout?=?2000
????username?=?""
????password?=?""
??}
??consul?{
????cluster?=?"default"
????serverAddr?=?"127.0.0.1:8500"
??}
??etcd3?{
????cluster?=?"default"
????serverAddr?=?"http://localhost:2379"
??}
??sofa?{
????serverAddr?=?"127.0.0.1:9603"
????application?=?"default"
????region?=?"DEFAULT_ZONE"
????datacenter?=?"DefaultDataCenter"
????cluster?=?"default"
????group?=?"SEATA_GROUP"
????addressWaitTime?=?"3000"
??}
??file?{
????name?=?"file.conf"
??}
}
config?{
??#?file、nacos?、apollo、zk、consul、etcd3
??type?=?"nacos"
??nacos?{
????serverAddr?=?"119.29.165.98:8848"
????namespace?=?""
????group?=?"SEATA_GROUP"
????username?=?"nacos"
????password?=?"nacos"
??}
??consul?{
????serverAddr?=?"127.0.0.1:8500"
??}
??apollo?{
????appId?=?"seata-server"
????apolloMeta?=?"http://192.168.1.204:8801"
????namespace?=?"application"
??}
??zk?{
????serverAddr?=?"127.0.0.1:2181"
????sessionTimeout?=?6000
????connectTimeout?=?2000
????username?=?""
????password?=?""
??}
??etcd3?{
????serverAddr?=?"http://localhost:2379"
??}
??file?{
????name?=?"file.conf"
??}
}
4、GitHub下載seata源碼,鏈接:https://github.com/seata/seata/tree/v1.3.0。解壓后找到script文件夾下的config-center,修改該文件夾下的config.txt文件,config.txt文件內(nèi)容都是鍵值對(duì),后面要通過腳本把該文件中的配置導(dǎo)入到nacos中。
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableClientBatchSendRequest=false
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
#這里的名字與file.conf中vgroup_mapping.my_test_tx_group?=?"default"相同
service.vgroupMapping.my_test_tx_group=default
#這里的名字與file.conf中default.grouplist?=?"127.0.0.1:8091"相同
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
#這里修改為db
store.mode=db
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
store.db.datasource=druid
store.db.dbType=mysql
#如果是mysql8.0以上,則修改為如下驅(qū)動(dòng),不是則不修改
store.db.driverClassName=com.mysql.cj.jdbc.Driver
#修改為你自己的數(shù)據(jù)庫(kù)連接
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
store.db.user=root
store.db.password=root
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
store.redis.host=127.0.0.1
store.redis.port=6379
store.redis.maxConn=10
store.redis.minConn=1
store.redis.database=0
store.redis.password=null
store.redis.queryLimit=100
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.log.exceptionRate=100
transport.serialization=seata
transport.compressor=none
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
5、將config.txt推送到Nacos,找到源碼中的script\config-center\nacos下的nacos-config.sh,可用git bash終端運(yùn)行命令:
sh?nacos-config.sh?ip
運(yùn)行成功之后,可在nacos配置中心中看到相關(guān)配置。
6、啟動(dòng)seata-server服務(wù),找到bin下面的seata-server.bat(windows下),運(yùn)行即可,啟動(dòng)成功后,可在nacos服務(wù)里看到seata-server服務(wù)
7、引入seata依賴
????com.alibaba.cloud
????spring-cloud-starter-alibaba-seata
????
????????
????????????io.seata
????????????seata-all
????????
????
????io.seata
????seata-spring-boot-starter
????1.3.0
8、建mysql seata相關(guān)數(shù)據(jù)庫(kù),此處略過
9、編寫業(yè)務(wù)代碼,此處略過
粉絲福利:實(shí)戰(zhàn)springboot+CAS單點(diǎn)登錄系統(tǒng)視頻教程免費(fèi)領(lǐng)取
???
?長(zhǎng)按上方微信二維碼?2 秒 即可獲取資料
感謝點(diǎn)贊支持下哈?
評(píng)論
圖片
表情
