1、编写docker-compose.yaml文件
version: "3"
services:
seata-server:
image: seataio/seata-server:1.4.2
hostname: seata-server
container_name: seata-server
ports:
- "8091:8091"
volumes:
- ./seata-server:/seata-server
environment:
- SEATA_PORT=8091
- STORE_MODE=file
2、将挂载目录注释后启动
docker-compose up -d
3、将容器镜像里的配置拷贝出来
docker cp seata-server:/seata-server ./seata-server
4、停止容器并修改seata-server/resources/registry.conf配置文件
停止容器
docker-compose down
文件修改
修改为type="nacos",并填上正确的nacos地址
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "ip:8848"
group = ""
namespace = ""
cluster = "default"
username = ""
password = ""
}
5、nacos添加seata-serveer配置文件
seata.yaml
client:
rm:
asyncCommitBufferLimit: 10000
reportRetryCount: 5
reportSuccessEnable: false
sagaBranchRegisterEnable: false
sqlParserType: druid
tablemetaCheckEnable: false
tablemetaCheckerInterval: 60000
tccActionInterceptorOrder: -2147482648
lock:
retryInterval: 10
retryPolicyBranchRollbackOnConflict: true
retryTimes: 200
tm:
commitRetryCount: 5
defaultGlobalTransactionTimeout: 60000
degradeCheck: false
degradeCheckAllowTimes: 10
degradeCheckPeriod: 2000
interceptorOrder: -2147482648
rollbackRetryCount: 5
undo:
dataValidation: true
logSerialization: jackson
logTable: undo_log
onlyCareUpdateColumns: true
compress:
enable: true
threshold: 64k
type: zip
log:
exceptionRate: 100
metrics:
enabled: false
exporterList: prometheus
exporterPrometheusPort: 9898
registryType: compact
server:
distributedLockExpireTime: 10000
maxCommitRetryTimeout: -1
maxRollbackRetryTimeout: -1
recovery:
asynCommittingRetryPeriod: 1000
committingRetryPeriod: 1000
rollbackingRetryPeriod: 1000
timeoutRetryPeriod: 1000
rollbackRetryTimeoutUnlockEnable: false
undo:
logDeletePeriod: 86400000
logSaveDays: 7
service:
default:
grouplist: 172.21.73.115:8091
disableGlobalTransaction: false
enableDegrade: false
vgroupMapping:
dev_tx_group: default
store:
db:
branchTable: branch_table
datasource: druid
dbType: mysql
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://mysqlurl:3306/seata?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=utf-8
user:
password:
globalTable: global_table
lockTable: lock_table
queryLimit: 100
maxConn: 100
maxWait: 5000
minConn: 10
file:
dir: file_store/data
fileWriteBufferCacheSize: 16384
flushDiskMode: async
maxBranchSessionSize: 16384
maxGlobalSessionSize: 512
sessionReloadReadSize: 100
lock:
mode: db
mode: db
redis:
mode: single
single:
host: 172.21.74.151
port: 6379
password:
database: 0
maxConn: 10
maxTotal: 100
minConn: 1
queryLimit: 100
session:
mode: db
transport:
type: TCP
compressor: none
enableClientBatchSendRequest: true
heartbeat: true
serialization: seata
server: NIO
shutdown:
wait: 3
threadFactory:
bossThreadPrefix: NettyBoss
bossThreadSize: 1
clientSelectorThreadPrefix: NettyClientSelector
clientSelectorThreadSize: 1
clientWorkerThreadPrefix: NettyClientWorkerThread
serverExecutorThreadPrefix: NettyServerBizHandler
shareBossWorker: false
workerThreadPrefix: NettyServerNIOWorker
workerThreadSize: default
6、docker-compose ip -d启动
7、在nacos上查看服务列表
k8s部署1、制作镜像并上传到harbor
Dockerfile
FROM seataio/seata-server:1.4.2 ADD registry.conf /seata-server/resources/registry.conf
docker build -t xxx/seata-server:k8sv1.4.2 .
docker push xxx/seata-server:k8sv1.4.2
2、编写k8s yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: seata-server #应用名称
namespace: mbo
labels:
app: seata-server
mbo: seata-server
spec:
selector:
matchLabels:
app: seata-server
replicas: 1 #开启实例份数
template:
metadata:
labels:
app: seata-server
mbo: seata-server
spec:
imagePullSecrets:
- name: docker-pull-images
containers:
- name: seata-server #容器名称
image: xxx/seata-server:k8sv1.4.2
imagePullPolicy: Always
ports:
- name: http
containerPort: 8091
#readinessProbe就绪探测,用于判断容器是否启动完成
readinessProbe:
tcpSocket:
port: 8091
initialDelaySeconds: 5
periodSeconds: 10
#存活探测,用于判断容器是否存活(running状态)
livenessProbe:
tcpSocket:
port: 8091
initialDelaySeconds: 15
periodSeconds: 20
---
kind: Service
apiVersion: v1
metadata:
name: seata-server-svc #服务名称
namespace: mbo
spec:
type: ClusterIP
selector:
app: seata-server #应用名称
ports:
- name: seata-server-svc
protocol: TCP
port: 8091
targetPort: 8091
3、启动并查看日志
kubectl apply -f seata-server.yaml
kubectl get pods -nmbo|grep seata-server
kubectl logs seata-server-665cd7bfdf-f9nbc -nmbo



