Docker學習六-txManager配置

TxManager

  txManager是分佈式事務LCN模式的事務控制方,TxManager將根據事務最終狀態和事務組的信息來通知相應的參與模塊提交或回滾事務,並返回結果給事務發起方;LCN模式是通過代理Connection的方式實現對本地事務的操作,然後在由TxManager統一協調控制事務。當本地事務提交回滾或者關閉連接時將會執行假操作,該代理的連接將由LCN連接池管理。
  工作中一直對分佈式事務未能涉及,所以這次想要直接自己配置,具體的配置如下,還是有很多地方不太明瞭,在以後的學習工作中慢慢補充,現在可能只能寫成如此,就作爲筆記參考:

docker 配置

1.拉取服務

docker pull codingapi/txlcn-tm

2.啓動實例

docker run -p 7970:7970 -p 8070:8070 \
--name tm -v /d/Docker/tx_lcn:/usr/local/docker_project/lcn \
-e spring.profiles.active=dev \
-e spring.config.additional-location=/usr/local/docker_project/lcn/application-dev.properties \
-d codingapi/txlcn-tm

如上:我是將D盤下Docker/tx_lcn/目錄掛載到容器實例的/usr/local/docker_project/lcn目錄,並設置啓動的環境和配置文件存放地址,我的配置文件application-dev.properties存放在D:Docker/tx_lcn/下,想法很美好,然而啓動就很現實,容器是啓動了,但是沒一會又停止運行了,懵逼了,傻眼了。
配置文件:

spring.application.name=TransactionManager
server.port=7971
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.17.0.3:3306/tx-manager?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=none
 
tx-lcn.manager.host=172.17.0.4
tx-lcn.manager.port=8071
tx-lcn.manager.admin-key=123456

tx-lcn.manager.heart-time=15000
tx-lcn.manager.dtx-time=30000
tx-lcn.message.netty.attr-delay-time=10000
tx-lcn.manager.concurrent-level=150
 
spring.redis.host=172.17.0.2
spring.redis.port=6379
#spring.redis.password=123456
 
#tx-lcn.logger.enabled=true
#logging.level.com.codingapi=debug
tx-lcn.manager.seq-len=12
tx-lcn.manager.ex-url-enabled=false
tx-lcn.manager.ex-url=/provider/email-to/***@**.com

查看日誌:

docker logs -f -t --tail 100 tm

如下圖
在這裏插入圖片描述
在這裏插入圖片描述
  這不是我的配置啊,所以啓動參數中的配置就沒有起作用。涼涼了,怎麼辦呢?
我想着怎麼能查看下容器中的文件,實例txManager的配置文件在什麼地方呢?跟着這個思路,找docker的命令:

docker exec -it tm ls /bin

在這裏插入圖片描述
  可以看到容器tm中大部分常規的linux命令都能使用,但是沒有vi,這讓我找到配置文件怎麼修改,而且啓動了容器,如果在報錯關閉之前沒有修改過來,照樣涼涼。一步一步來,只能先找下配置文件,先看根目錄:

docker exec -it tm ls /

在這裏插入圖片描述
  這是什麼鬼,配置文件,jar包都放在根目錄了,是不是隻需要改動下這個配置文件就可以了,然而我的容器實例已經報錯關閉了,OK,再次重啓,抱着試一試的心態試了下vi能不能使用,沒想到能用啊,喜極而泣。

docker exec -it tm vi application.properties

在這裏插入圖片描述
  一看redis和mysql的配置,這不就是我找了許久的它嗎,來,改了它,把自己的配置改上去,然後重啓,再來看看:

docker restart tm
docker logs -f -t --tail 100 tm

喜大普奔啊,啓動成功了,沒有報錯
在這裏插入圖片描述
再來,訪問http://IP:PORT/ 我的是http://172.17.0.4:7970/
在這裏插入圖片描述
輸入密碼:
在這裏插入圖片描述
再次喜極而泣啊,成功了。

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