使用docker运行seata-server:1.0.0

本文档使用docker容器运行seata-server:1.0.0版本,并以nacos作为注册中心与配置中心,使用mysql作为seata数据库

3.1 docker 拉取seata-server:1.0.0镜像

1 docker pull seataio/seata-server:1.0.0

3.2 查看镜像是否拉取成功

1 docker image ls

3.3 docker启动seata-server

1 docker run --name seata-server -p 8091:8091 -d  seataio/seata-server:1.0.0

3.4 将nacos-config导入到nacos配置中心,需要注意的是seata-server:1.0.0的容器中并没有关于nacos的配置文件,所以这里在github中将对应的配置下载下来供大家使用。

  nacos-config.sh:将以下内容保存至sh文件,txt中的配置推向nacos配置中心的脚本

 1 #!/usr/bin/env bash
 2 if [ $# != 1 ]; then
 3 echo "./nacos-config.sh nacosIp"
 4 exit -1
 5 fi
 6 nacosIp=$1
 7 echo "set nacosIp=$nacosIp"
 8 error=0
 9 for line in $(cat nacos-config.txt)
10 do
11 key=${line%%=*}
12 value=${line#*=}
13 echo "\r\n set "${key}" = "${value}
14 result=`curl -X POST "http://$nacosIp:8848/nacos/v1/cs/configs?dataId=$key&group=SEATA_GROUP&content=$value"`
15 if [ "$result"x == "true"x ]; then
16   echo "\033[42;37m $result \033[0m"
17 else
18   echo "\033[41;37 $result \033[0m"
19   let error++
20 fi
21 done
22 if [ $error -eq 0 ]; then
23 echo  "\r\n\033[42;37m init nacos config finished, please start seata-server. \033[0m"
24 else
25 echo  "\r\n\033[41;33m init nacos config fail. \033[0m"
26 fi

  nacos-config.txt:seata的配置,这里已经将对应的数据库配置修改掉了,如果配置有变的话只需要修改对应的配置项就可以,配置项默认被推到public命名空间,后续只需要将这些配置克隆到自己的命名空间就可以了

 1 transport.type=TCP
 2 transport.server=NIO
 3 transport.heartbeat=true
 4 transport.thread-factory.boss-thread-prefix=NettyBoss
 5 transport.thread-factory.worker-thread-prefix=NettyServerNIOWorker
 6 transport.thread-factory.server-executor-thread-prefix=NettyServerBizHandler
 7 transport.thread-factory.share-boss-worker=false
 8 transport.thread-factory.client-selector-thread-prefix=NettyClientSelector
 9 transport.thread-factory.client-selector-thread-size=1
10 transport.thread-factory.client-worker-thread-prefix=NettyClientWorkerThread
11 transport.thread-factory.boss-thread-size=1
12 transport.thread-factory.worker-thread-size=8
13 transport.shutdown.wait=3
14 service.vgroup_mapping.seata_yanwu_base=default
15 service.vgroup_mapping.seata_yanwu_file=default
16 service.vgroup_mapping.seata_yanwu_device=default
17 service.enableDegrade=false
18 service.disable=false
19 service.max.commit.retry.timeout=-1
20 service.max.rollback.retry.timeout=-1
21 client.async.commit.buffer.limit=10000
22 client.lock.retry.internal=10
23 client.lock.retry.times=30
24 store.mode=db
25 store.file.dir=file_store/data
26 store.file.max-branch-session-size=16384
27 store.file.max-global-session-size=512
28 store.file.file-write-buffer-cache-size=16384
29 store.file.flush-disk-mode=async
30 store.file.session.reload.read_size=100
31 store.db.datasource=dbcp
32 store.db.driver-class-name=com.mysql.jdbc.Driver
33 store.db.db-type=mysql
34 store.db.url=jdbc:mysql://192.168.0.177:3306/seata?useUnicode=true
35 store.db.user=root
36 [email protected]177
37 store.db.min-conn=1
38 store.db.max-conn=3
39 store.db.global.table=global_table
40 store.db.branch.table=branch_table
41 store.db.query-limit=100
42 store.db.lock-table=lock_table
43 recovery.committing-retry-period=1000
44 recovery.asyn-committing-retry-period=1000
45 recovery.rollbacking-retry-period=1000
46 recovery.timeout-retry-period=1000
47 transaction.undo.data.validation=true
48 transaction.undo.log.serialization=jackson
49 transaction.undo.log.save.days=7
50 transaction.undo.log.delete.period=86400000
51 transaction.undo.log.table=undo_log
52 transport.serialization=seata
53 transport.compressor=none
54 metrics.enabled=false
55 metrics.registry-type=compact
56 metrics.exporter-list=prometheus
57 metrics.exporter-prometheus-port=9898

  将这两个文件拿到服务器中,然后执行下面的命令,就可以将配置推到nacos

1 sh nacos-config.sh 192.168.0.177
2 ### 192.168.0.177 为nacos的服务器地址

3.5  进入seata-server容器

1 docker exec -ti seata-server sh

3.6 修改seata的配置

1 vi resources/registry.conf

  将文件改为如下内容

 1 registry {
 2   type = "nacos"
 3   nacos {
 4     serverAddr = "192.168.0.177:8848"
 5     namespace = "e02de5de-d737-45d5-af22-ae87d0137308"
 6     cluster = "default"
 7   }
 8 }
 9 config {
10   type = "nacos"
11   nacos {
12     serverAddr = "192.168.0.177:8848"
13     namespace = "e02de5de-d737-45d5-af22-ae87d0137308"
14     group = "SEATA_GROUP"
15   }
16 }

3.7  重启seata-server容器

1 docker restart seata-server

3.8 在seata配置的数据库中数据库执行以下SQL语句,创建seata所需要的表

 1 -- the table to store GlobalSession data
 2 drop table if exists `global_table`;
 3 create table `global_table` (
 4   `xid` varchar(128)  not null,
 5   `transaction_id` bigint,
 6   `status` tinyint not null,
 7   `application_id` varchar(32),
 8   `transaction_service_group` varchar(32),
 9   `transaction_name` varchar(64),
10   `timeout` int,
11   `begin_time` bigint,
12   `application_data` varchar(2000),
13   `gmt_create` datetime,
14   `gmt_modified` datetime,
15   primary key (`xid`),
16   key `idx_gmt_modified_status` (`gmt_modified`, `status`),
17   key `idx_transaction_id` (`transaction_id`)
18 );
19
20 -- the table to store BranchSession data
21 drop table if exists `branch_table`;
22 create table `branch_table` (
23   `branch_id` bigint not null,
24   `xid` varchar(128) not null,
25   `transaction_id` bigint ,
26   `resource_group_id` varchar(32),
27   `resource_id` varchar(256) ,
28   `lock_key` varchar(128) ,
29   `branch_type` varchar(8) ,
30   `status` tinyint,
31   `client_id` varchar(64),
32   `application_data` varchar(2000),
33   `gmt_create` datetime,
34   `gmt_modified` datetime,
35   primary key (`branch_id`),
36   key `idx_xid` (`xid`)
37 );
38
39 -- the table to store lock data
40 drop table if exists `lock_table`;
41 create table `lock_table` (
42   `row_key` varchar(128) not null,
43   `xid` varchar(96),
44   `transaction_id` long ,
45   `branch_id` long,
46   `resource_id` varchar(256) ,
47   `table_name` varchar(32) ,
48   `pk` varchar(32) ,
49   `gmt_create` datetime ,
50   `gmt_modified` datetime,
51   primary key(`row_key`)
52 );

原文地址:https://www.cnblogs.com/yanwu0527/p/12666572.html

时间: 2024-10-08 23:09:31

使用docker运行seata-server:1.0.0的相关文章

eclipse中配置tomcat后,运行jsp时出现Server Tomcat v7.0 Server at localhost failed to start.

最近在进行jsp开发学习,在配置上还是遇到很多问题. 在连接好数据库后,写了第一个jsp测试页面,结果在运行eclipse中运行toamcat时出现了错误提示:Server Tomcat v7.0 Server at localhost failed to start. 在cmd中运行   java   //正常 在cmd中运行   javac    //正常 运行tomcat的bin文件下的startup正常启动,唯独在eclipse中出现Server Tomcat v7.0 Server a

eclipse运行web,tomcat报错Server Tomcat v9.0 Server at localhost failed to start

第一种:查看Servlet3.0中出现了新增注释@WebServlet. ervlet3.0中出现了新增注释@WebServlet ,在Eclipse生成一个新的Servlet类时会自动增加@WebServlet注释,改注释会自动为我们配置web.xml,所以这时候我们再去配置web.xml就会产生冲突,tomcat就不能启动.这个时候我们只需要删除@WebServlet或者删除web.xml配置就能正常启动tomcat了. 第二种:.端口被占用 如果是这种小白可以直接重启电脑试试 第一步,在开

docker制作tesseract-4.0.0运行环境

基于debian stretch镜像 创建容器 $ docker run --name tesseract_base -d -i -v /root:/root debian 进入容器 $ docker exec -it tesseract_base bash 替换apt源 用下面内容替换/etc/apt/sources.list文件内容 deb http://mirrors.aliyun.com/debian stretch main contrib non-free deb-src http:

docker 1.0.0发布以及一个bug依赖apparmor_parser

6月10号docker 1.0稳定版本发布,找了台ubuntu的机器,装了下 ubuntu version:12.04 docker version:1.0.0 装docker的步骤可以看官方文档:https://docs.docker.com/installation/ubuntulinux/ 装好之后,运行docker -d尝试启动docker守护进程,报错如下: [0fcb4ed6] +job serveapi(tcp://127.0.0.1:2375) [0fcb4ed6] +job i

解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题

ionic3项目,在添加android平台后,cordova run android 出现 以下问题: error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次. (10048) This application has requested the Runtime to terminate it in an unusual way.Ple

Spark1.0.0 history server 配置

在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是说,Spark应用程序运行完后,将无法查看应用程序的历史记录.Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览. 要使用history server,对于提交应用程

Server Tomcat v7.0 Server at localhost failed to start解决办法

今晚搞了下tomcat,在调试的时候发现报了这样一个错误Server Tomcat v7.0 Server at localhost failed to start 首先,确认了端口号8080是不是被占用: 在浏览器中访问(http://127.0.0.1:8080)或运行telnet命令(telnet 127.0.0.1 8080)来验证端口是否被占用. 如果是,双击tomcat修改端口 经排查我这里不是这种情况,是由于电脑原因,导致启动时间超时,这么尴尬的原因也是没谁了,解决办法同样双击to

Tomcat7改为6、Server Tomcat v6.0 Server at localhost failed to start.等错误

花了一上午的时间使用java开发了一个微信聊天机器人(我会将如何编写的过程分享给大家),号码为:qiubenlizi,大家有兴趣可以玩玩.当我将war包上传到SAE服务器的时候,运行出来的结果是这样 知道是服务器找不到文件,在本地上可是正常运行的,谷歌了一下, 说是SAE用的jdk1.6,而我用的事jdk1.7,tomcat也要相应的改成6,下面就讲一下如何转换 第一,将tomcat7里面的项目remove掉,并关闭: 第二,更改jdk1.6(首先你要有1.6的环境) 按照图示上,一步一步来 第

[转]hadoop运行mapreduce作业无法连接0.0.0.0/0.0.0.0:10020

14/04/04 17:15:12 INFO mapreduce.Job:  map 0% reduce 0% 14/04/04 17:19:42 INFO mapreduce.Job:  map 41% reduce 0% 14/04/04 17:19:53 INFO mapreduce.Job:  map 64% reduce 0% 14/04/04 17:19:55 INFO mapreduce.Job:  map 52% reduce 0% 14/04/04 17:19:57 INFO