SpringCloud Alibaba微服务实战九 - Seata 容器化.docx

上传人:A*** 文档编号:141375859 上传时间:2020-08-07 格式:DOCX 页数:7 大小:199.76KB
返回 下载 相关 举报
SpringCloud Alibaba微服务实战九 - Seata 容器化.docx_第1页
第1页 / 共7页
SpringCloud Alibaba微服务实战九 - Seata 容器化.docx_第2页
第2页 / 共7页
SpringCloud Alibaba微服务实战九 - Seata 容器化.docx_第3页
第3页 / 共7页
SpringCloud Alibaba微服务实战九 - Seata 容器化.docx_第4页
第4页 / 共7页
SpringCloud Alibaba微服务实战九 - Seata 容器化.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《SpringCloud Alibaba微服务实战九 - Seata 容器化.docx》由会员分享,可在线阅读,更多相关《SpringCloud Alibaba微服务实战九 - Seata 容器化.docx(7页珍藏版)》请在金锄头文库上搜索。

1、SpringCloud Alibaba微服务实战九 - Seata 容器化前言通过前两篇文章我们使用了Seata作为分布式事务组件,并使用Nacos作为Seata的注册配置中心,本篇文章我们将Seata部署在容器Docker上。当然了如果大家对Docker不是很熟悉的话或者仅对Docker感兴趣可以翻看我之前为大家准备的两篇文章。 Docker基础与实战,看这一篇就够了 Docker-Compose基础与实战,看这一篇就够了Seata容器化在使用Docker部署服务的时候我们应该将配置文件外部化,这样方便后续修改,在修改完成后通过 -v 指令将文件挂载进容器。接下来我们一步一步来实现容器化过程

2、。 启动一个Seata的临时容器。docker run -rm -name seata-server -d -p 8091:8091 seataio/seata-server:latest带了-rm参数,这样在停止容器后容器会自动删除,节省不少时间。 将配置文件导出到宿主机上容器的配置文件位于/seata-server/resources下,我们将其导出在宿主机指定目录上docker cp a67c272193c4:/seata-server/resources /app/cloud/seata/conf 修改配置文件registry.conf根据上篇文章说的使用Nacos作为注册配置中心只需

3、要修改registry.conf文件,修改完成后的结果如下registry # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type = nacos nacos serverAddr = 10.0.10.48:8848 namespace = cluster = default config # file、nacos 、apollo、zk、consul、etcd3 type = nacos nacos serverAddr = 10.0.10.48:8848 namespace = 将Seata配置推送到NacosSeata容器中并没有将Nac

4、os的配置文件放进去,还需要大家先下载Seata-Server安装包,然后将其推送到Nacos。具体操作请参照上篇文章,此处不再赘述。 停止容器docker stop a67c272193c4由于之前带了-rm参数,所以容器会被自动删除。 重新启动容器docker run -name seata-server -d -p 8091:8091 -e SEATA_CONFIG_NAME=file:/root/seata-config/registry -e SEATA_IP=172.31.0.207 -v /app/cloud/seata/conf:/root/seata-config -v /a

5、pp/cloud/seata/logs:/root/logs seataio/seata-server指定容器注册IP,将宿主机中修改后的配置文件挂载到容器中。 客户端改造只需要将registry.conf文件放在微服务的resources下即可,上篇文章已经改造完成。 测试依次启动服务account-service,product-service,order-service,观察Seata日志三个服务都已连上Seata。执行业务测试观察是否正常提交与回滚。Seata db模式file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;db模式为高可用模式,

6、全局事务会话信息通过db共享,相应性能差些。考虑到Seata的扩展和高可用,我们这节来修改相关配置让Seata支持 db模式 建立数据库建立数据库seata_config,并从https:/ 修改store.mode调整为db在nacos配置文件中将store.mode这一DATA ID调整为db这个也可以通过环境变量 STORE_MODE=db指定 修改数据库连接在nacos中修改store.db的相关配置store.db.url=jdbc:mysql:/xxxxxx:3306/seata_config?useUnicode=truestore.db.user=rootstore.db.pa

7、ssword=xxxxxx 重启容器docker run -name seata-server -d -p 8091:8091 -e SEATA_CONFIG_NAME=file:/root/seata-config/registry -e SEATA_IP=172.31.0.207 -v /app/cloud/seata/conf/resources:/root/seata-config -v /app/cloud/seata/logs:/root/logs/seata seataio/seata-server启动容器后重启微服务,查看是否正常注册,并执行业务测试观察是否正常提交与回滚。Do

8、cker-Compose 部署关注这个系列文章的同学应该知道我们第一篇文章用了docker-compose部署了mysql、nacos、sentinel三个组件,这节我们完善之前的nacos-base.yml,将seata也集成进去。有了前2节的基础这个操作应该很简单,编写完成后完成的yml文件如下:version: 3services: mysql: container_name: mysql image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - /app/cloud/mysql/data:/var/lib

9、/mysql ports: - 3306:3306 restart: always nacos: image: nacos/nacos-server:1.1.4 container_name: nacos environment: - PREFER_HOST_MODE=hostname - MODE=standalone - MYSQL_DATABASE_NUM=1 - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_MASTER_SERVICE_HOST=mysql - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config -

10、MYSQL_MASTER_SERVICE_PORT=3306 - MYSQL_MASTER_SERVICE_USER=root - MYSQL_MASTER_SERVICE_PASSWORD=123456 volumes: - /app/cloud/nacos/logs:/home/nacos/logs ports: - 8848:8848 depends_on: - mysql restart: always sentinel: image: bladex/sentinel-dashboard:latest container_name: sentinel ports: - 8858:885

11、8 restart: always seata: image: seataio/seata-server:latest container_name: seata ports: - 8091:8091 environment: - SEATA_CONFIG_NAME=file:/root/seata-config/registry - SEATA_IP=10.0.10.48 volumes: - /app/cloud/seata/conf:/root/seata-config - /app/cloud/seata/logs:/root/logs restart: always我们将此yml文件

12、上传至服务器,启动docker-composedocker-compose -f nacos-base.yml up,启动客户端服务并执行业务测试观察结果。Seata环境变量seata-server 支持以下环境变量: SEATA_IP可选, 指定seata-server启动的IP, 该IP用于向注册中心注册时使用, 如eureka等 SEATA_PORT可选, 指定seata-server启动的端口, 默认为 8091 STORE_MODE可选, 指定seata-server的事务日志存储方式, 支持db 和 file, 默认是 file SERVER_NODE可选, 用于指定seata-s

13、erver节点ID, 如 1,2,3, 默认为 1 SEATA_ENV可选, 指定 seata-server 运行环境, 如 dev, test 等, 服务启动时会使用 registry-dev.conf 这样的配置 SEATA_CONFIG_NAME可选, 指定配置文件位置, 如 file:/root/registry, 将会加载 /root/registry.conf 作为配置文件好了,各位朋友们,本期的内容到此就全部结束啦,如果这篇文章对你有所帮助的话请扫描下面二维码加个关注。“转发” 加 “在看”,养成好习惯!系列文章 SpringCloud Alibaba微服务实战八 - Seata 整合Nacos SpringCloud Alibaba微服务实战七 - 分布式事务 SpringCloud Alibaba微服务实战六 - 配置隔离 SpringCloud Alibaba微服务实战五 - 限流熔断 SpringCloud Alibaba微服务实战四 - 版本管理 SpringCloud Alibaba微服务实战三 - 服务调用 SpringCloud Alibaba微服务实战二 - 服务注册 SpringCloud Alibaba微服务实战一 - 基础环境准备

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号