Centos7部署Seata分佈式事務系統並以nacos爲配置中心

簡介

Seata 是阿里巴巴開源的分佈式事務中間件,一種分佈式事務解決方案,具有高性能和易於使用的微服務架構

安裝

下載安裝包:https://github.com/seata/seata/releases

根據系統運行環境下載不同的壓縮文件:

Mac/Linux下載seata-server-xxx.tar.gz;

Windows下載seata-server-xxx.zip

提供一個0.9版本:

鏈接:https://pan.baidu.com/s/1wx6RdJSD7LmeX6vT7N2TIw   提取碼:pj47 

 通過工具(winSCP)將下載的的壓縮包放到服務器指定目錄下。

通過命令(tar -xvf )解壓壓縮包:

解壓後會生成一個 seata目錄,進入可以看到如下目錄

然後進入 conf 目錄

 

數據庫準備:

 準備一個seata數據庫,執行db_store.sql文件創建表。

 

在業務庫中執行db_undo_log.sql文件創建表。

 

修改 registry.config文件:

將type 改爲 nacos ,並配置nacos地址。

 如下:

registry {
  type = "nacos"
  nacos {
    serverAddr = "111.231.111.150:8848"
    namespace = "public"
    cluster = "default"
  }
}
config {
  type = "nacos"
  nacos {
    serverAddr = "111.231.111.150:8848"
    namespace = "public"
  }
}

修改 nacos-config.txt 文件:

修改store.mode 存儲模式 爲 db,默認file;

修改數據庫鏈接信息:store.db.url、store.db.user、store.db.password;

其他默認即可。

如下: 

transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.thread-factory.boss-thread-prefix=NettyBoss
transport.thread-factory.worker-thread-prefix=NettyServerNIOWorker
transport.thread-factory.server-executor-thread-prefix=NettyServerBizHandler
transport.thread-factory.share-boss-worker=false
transport.thread-factory.client-selector-thread-prefix=NettyClientSelector
transport.thread-factory.client-selector-thread-size=1
transport.thread-factory.client-worker-thread-prefix=NettyClientWorkerThread
transport.thread-factory.boss-thread-size=1
transport.thread-factory.worker-thread-size=8
transport.shutdown.wait=3
service.vgroup_mapping.my_test_tx_group=default
service.enableDegrade=false
service.disable=false
service.max.commit.retry.timeout=-1
service.max.rollback.retry.timeout=-1
client.async.commit.buffer.limit=10000
client.lock.retry.internal=10
client.lock.retry.times=30
client.lock.retry.policy.branch-rollback-on-conflict=true
client.table.meta.check.enable=true
client.report.retry.count=5
client.tm.commit.retry.count=1
client.tm.rollback.retry.count=1
store.mode=db
store.file.dir=file_store/data
store.file.max-branch-session-size=16384
store.file.max-global-session-size=512
store.file.file-write-buffer-cache-size=16384
store.file.flush-disk-mode=async
store.file.session.reload.read_size=100
store.db.datasource=dbcp
store.db.db-type=mysql
store.db.driver-class-name=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://111.231.111.150:3306/seata?useUnicode=true
store.db.user=root
store.db.password=gourd123
store.db.min-conn=1
store.db.max-conn=3
store.db.global.table=global_table
store.db.branch.table=branch_table
store.db.query-limit=100
store.db.lock-table=lock_table
recovery.committing-retry-period=1000
recovery.asyn-committing-retry-period=1000
recovery.rollbacking-retry-period=1000
recovery.timeout-retry-period=1000
transaction.undo.data.validation=true
transaction.undo.log.serialization=jackson
transaction.undo.log.save.days=7
transaction.undo.log.delete.period=86400000
transaction.undo.log.table=undo_log
transport.serialization=seata
transport.compressor=none
metrics.enabled=false
metrics.registry-type=compact
metrics.exporter-list=prometheus
metrics.exporter-prometheus-port=9898
support.spring.datasource.autoproxy=false

service.default.grouplist=111.231.111.150:8091
service.vgroup_mapping.gourdhu-seata-service-group=default
service.vgroup_mapping.gourdsub-seata-service-group=default

service.vgroup_mapping.xxx-seata-service-group也可以在 Nacos 配置頁面添加,

data-id 爲 service.vgroup_mapping.${YOUR_SERVICE_NAME}-seata-service-group, group 爲 SEATA_GROUP, 如果不添加該配置,啓動後會提示no available server to connect to services-server

注意:服務名不要超過12位,因爲數據庫的transaction_service_group 字段默認爲32位。

 

將 Seata 配置添加到 Nacos 中

cd到config目錄,運行命令: sh nacos-config.sh  公網id 

運行成功後,查看nacos 配置列表, 會有一些Group 爲SEATA_GROUP的配置。

 啓動 Seata Server

cd到bin目錄,運行命令:nohup sh seata-server.sh -p 8091 -h 111.231.111.150 &> seata.log &

-p:服務端口

-h:服務器的外網ip

查看Nacos 服務列表:

 

至此,Seata安裝結束。

結語

本文是最近學習和搭建seata過程的一些總結和記錄,如有不對的地方,歡迎評論吐槽。

官方文檔:https://seata.io/zh-cn/docs/overview/what-is-seata.html

 

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