当前位置: 首页 > news >正文

秦皇岛网站制作小程序开发宁波网站建设 网络服务

秦皇岛网站制作小程序开发,宁波网站建设 网络服务,中国建设监理官方网站,行业数据网站文章目录 seata的部署和集成一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务 二、微服务集成seata1.引入依赖2.修改配置文件 TODO三、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos… 文章目录 seata的部署和集成一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务 二、微服务集成seata1.引入依赖2.修改配置文件 TODO三、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos配置 seata的部署和集成 一、部署Seata的tc-server 1.下载 链接https://pan.baidu.com/s/1MsbbF0rseNy74r7lLPbpwQ 提取码hzan 首先我们要下载seata-server包地址在http/seata.io/zh-cn/blog/download.html 当然课前资料也准备好了 2.解压 在非中文目录解压缩这个zip包其目录结构如下 3.修改配置 修改conf目录下的registry.conf文件 内容如下修改大量删除 registry {# tc服务的注册中心类型这里选择nacos也可以是eureka、zookeeper等type nacosnacos {# seata tc 服务注册到 nacos的服务名称可以自定义application seata-tc-serverserverAddr 192.168.59.1:8848group DEFAULT_GROUPnamespace cluster SHusername nacospassword nacos} }config {# 读取tc服务端的配置文件的方式这里是从nacos配置中心读取这样如果tc是集群可以共享配置type nacos# 配置nacos地址等信息nacos {serverAddr 172.0.0.1:8848namespace group SEATA_GROUPusername nacospassword nacosdataId seataServer.properties} }注意nacos地址默认127.0.0.1可以都是本地IP端口是8848没错就行 名称换了下中间加了一个-tc- 待会儿nacos控制台显示的就是这个名称 nacos组的名称直接到nacos控制台查看 注册中心是nacos配置文件也给中心去管理方便集群下的共享 4.在nacos添加配置 特别注意为了让tc服务的集群可以共享配置我们选择了nacos作为统一配置中心。因此服务端配置文件seataServer.properties文件需要在nacos中配好。 dataId “seataServer.properties” 上面配置文件配置的一个文件名称 格式如下 配置内容如下 # 数据存储方式db代表数据库 (这里的数据指的是分支事务全局事务的信息) store.modedb store.db.datasourcedruid store.db.dbTypemysql store.db.driverClassNamecom.mysql.jdbc.Driver store.db.urljdbc:mysql://127.0.0.1:3306/seata?useUnicodetruerewriteBatchedStatementstrue store.db.userroot store.db.password1234 store.db.minConn5 store.db.maxConn30 store.db.globalTableglobal_table store.db.branchTablebranch_table store.db.queryLimit100 store.db.lockTablelock_table store.db.maxWait5000 # 事务、日志等配置 server.recovery.committingRetryPeriod1000 server.recovery.asynCommittingRetryPeriod1000 server.recovery.rollbackingRetryPeriod1000 server.recovery.timeoutRetryPeriod1000 server.maxCommitRetryTimeout-1 server.maxRollbackRetryTimeout-1 server.rollbackRetryTimeoutUnlockEnablefalse server.undo.logSaveDays7 server.undo.logDeletePeriod86400000# 客户端与服务端传输方式 transport.serializationseata transport.compressornone # 关闭metrics功能提高性能 metrics.enabledfalse metrics.registryTypecompact metrics.exporterListprometheus metrics.exporterPrometheusPort9898其中的数据库地址、用户名、密码都需要修改成你自己的数据库信息。 5.创建数据库表 特别注意tc服务在管理分布式事务时需要记录事务相关数据到数据库中你需要提前创建好这些表。 新建一个名为seata的数据库运行课前资料提供的sql文件 上面nacos新增的配置项seataServer.properties里面的数据库地址数据库名称就是 seata 先创建数据库 create database seata; use seata;再执行sql文件 这些表主要记录全局事务、分支事务、全局锁信息 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- 分支事务表 -- ---------------------------- DROP TABLE IF EXISTS branch_table; CREATE TABLE branch_table (branch_id bigint(20) NOT NULL,xid varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,transaction_id bigint(20) NULL DEFAULT NULL,resource_group_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,resource_id varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,branch_type varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,status tinyint(4) NULL DEFAULT NULL,client_id varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,application_data varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,gmt_create datetime(6) NULL DEFAULT NULL,gmt_modified datetime(6) NULL DEFAULT NULL,PRIMARY KEY (branch_id) USING BTREE,INDEX idx_xid(xid) USING BTREE ) ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci ROW_FORMAT Compact;-- ---------------------------- -- 全局事务表 -- ---------------------------- DROP TABLE IF EXISTS global_table; CREATE TABLE global_table (xid varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,transaction_id bigint(20) NULL DEFAULT NULL,status tinyint(4) NOT NULL,application_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,transaction_service_group varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,transaction_name varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,timeout int(11) NULL DEFAULT NULL,begin_time bigint(20) NULL DEFAULT NULL,application_data varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,gmt_create datetime NULL DEFAULT NULL,gmt_modified datetime NULL DEFAULT NULL,PRIMARY KEY (xid) USING BTREE,INDEX idx_gmt_modified_status(gmt_modified, status) USING BTREE,INDEX idx_transaction_id(transaction_id) USING BTREE ) ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci ROW_FORMAT Compact;SET FOREIGN_KEY_CHECKS 1;6.启动TC服务 进入bin目录运行其中的seata-server.bat即可 启动成功后seata-server应该已经注册到nacos注册中心了。 打开浏览器访问nacos地址http://192.168.59.1:8848/nacos/index.html然后进入服务列表页面可以看到seata-tc-server的信息 启动nacos的黑窗口有nacos控制台地址 点击详情查看详细信息 二、微服务集成seata 注意参与全局事务的每个微服务都要做下面这几步 下面3个微服务都要做下面两步 配置好了各个微服务集成seata将来各个微服务之间的分布式事务就有中心化机构能够自动管理了 1.引入依赖 首先我们需要在微服务中引入seata依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactIdexclusions!--版本较低1.3.0因此排除--exclusionartifactIdseata-spring-boot-starter/artifactIdgroupIdio.seata/groupId/exclusion/exclusions /dependency !--seata starter 采用1.4.2版本-- dependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactIdversion${seata.version}/version /dependency${seata.version} 是父工程的pom.xml里配置的变量 2.修改配置文件 需要修改application.yml文件添加一些配置 seata:registry: # TC服务注册中心的配置微服务根据这些信息去注册中心获取tc服务地址# 参考tc服务自己的registry.conf中的配置type: nacosnacos: # tcserver-addr: 127.0.0.1:8848 # 127.0.0.1就是localhostnamespace: group: DEFAULT_GROUPapplication: seata-tc-server # tc服务在nacos中的服务名称cluster: SHtx-service-group: seata-demo # 事务组根据这个获取tc服务的cluster名称service:vgroup-mapping: # 事务组与TC服务cluster的映射关系seata-demo: SH配完后nacos配置了两份seata一份springCloud一份这是因为seata框架目前做得还不好没有做好和springCloud的集成关系所以还得独立再去配一次nacos . 配置文件的配置除了集群名称cluster其他完全按照TC的配置文件conf/registry.conf来配 TC已经作为一个独立的软件, 以微服务的形式注册到nacos注册中心去了 现在TM、RM需要和TC进行交流也就是让他们找到TC微服务就行了。配置好让他们找到后面就不需要我们操心了 那么要找到一个微服务得同时知道这四个信息 仔细一看配置文件里都有 namespace: “” 这里的空就是默认配置public这里集群的名称配置也有点特别因为有一个事务组的概念后面详细介绍现在只需要知道订单、商品、库存3个微服务的3个分支事务都在一个事务组里被管理即可。 事务组和集群有个映射关系所以集群名称SH在事务组下面配置的 四个配置图示 (找到一个微服务必备的四个配置信息) 修改完成后重启若报错 Error creating bean with name globalTransactionScanner defined in class path resource [io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.class]: Bean instantiation via factory method failed; nested 请切换到jdk8。不要用jdk17很多类被弃用了 正常重启后seata黑窗口能看到服务的注册信息说明该微服务确实创建的RM和TM并且确实都和TC中心连接上了 21:48:30.657 INFO --- [rverHandlerThread_1_1_500] i.s.c.r.processor.server.RegRmProcessor : RM register success,message:RegisterRMRequest{resourceIdsjdbc:mysql:///seata_demo, applicationIdstorage-service, transactionServiceGroupseata-demo},channel:[id: 0x01e2d561, L:/2.0.0.1:8091 - R:/2.0.0.1:51715],client version:1.4.2 21:49:29.798 INFO --- [ttyServerNIOWorker_1_2_40] i.s.c.r.processor.server.RegTmProcessor : TM register success,message:RegisterTMRequest{applicationIdstorage-service, transactionServiceGroupseata-demo},channel:[id: 0x98e48203, L:/2.0.0.1:8091 - R:/2.0.0.1:52226],client version:1.4.2同时重启3个微服务会看到3个RM和3个TM的注册信息TM注册比较慢请耐心等待 TODO 三、TC服务的高可用和异地容灾 1.模拟异地容灾的TC集群 计划启动两台seata的tc服务节点 节点名称ip地址端口号集群名称seata127.0.0.18091SHseata2127.0.0.18092HZ 之前我们已经启动了一台seata服务端口是8091集群名为SH。 现在将seata目录复制一份起名为seata2 修改seata2/conf/registry.conf内容如下 registry {# tc服务的注册中心类这里选择nacos也可以是eureka、zookeeper等type nacosnacos {# seata tc 服务注册到 nacos的服务名称可以自定义application seata-tc-serverserverAddr 127.0.0.1:8848group DEFAULT_GROUPnamespace cluster HZusername nacospassword nacos} }config {# 读取tc服务端的配置文件的方式这里是从nacos配置中心读取这样如果tc是集群可以共享配置type nacos# 配置nacos地址等信息nacos {serverAddr 127.0.0.1:8848namespace group SEATA_GROUPusername nacospassword nacosdataId seataServer.properties} }进入seata2/bin目录然后运行命令 seata-server.bat -p 8092打开nacos控制台查看服务列表 点进详情查看 2.将事务组映射配置到nacos 接下来我们需要将tx-service-group与cluster的映射关系都配置到nacos配置中心。 新建一个配置 配置的内容如下 # 事务组映射关系 service.vgroupMapping.seata-demoSHservice.enableDegradefalse service.disableGlobalTransactionfalse # 与TC服务的通信配置 transport.typeTCP transport.serverNIO transport.heartbeattrue transport.enableClientBatchSendRequestfalse transport.threadFactory.bossThreadPrefixNettyBoss transport.threadFactory.workerThreadPrefixNettyServerNIOWorker transport.threadFactory.serverExecutorThreadPrefixNettyServerBizHandler transport.threadFactory.shareBossWorkerfalse transport.threadFactory.clientSelectorThreadPrefixNettyClientSelector transport.threadFactory.clientSelectorThreadSize1 transport.threadFactory.clientWorkerThreadPrefixNettyClientWorkerThread transport.threadFactory.bossThreadSize1 transport.threadFactory.workerThreadSizedefault transport.shutdown.wait3 # RM配置 client.rm.asyncCommitBufferLimit10000 client.rm.lock.retryInterval10 client.rm.lock.retryTimes30 client.rm.lock.retryPolicyBranchRollbackOnConflicttrue client.rm.reportRetryCount5 client.rm.tableMetaCheckEnablefalse client.rm.tableMetaCheckerInterval60000 client.rm.sqlParserTypedruid client.rm.reportSuccessEnablefalse client.rm.sagaBranchRegisterEnablefalse # TM配置 client.tm.commitRetryCount5 client.tm.rollbackRetryCount5 client.tm.defaultGlobalTransactionTimeout60000 client.tm.degradeCheckfalse client.tm.degradeCheckAllowTimes10 client.tm.degradeCheckPeriod2000# undo日志配置 client.undo.dataValidationtrue client.undo.logSerializationjackson client.undo.onlyCareUpdateColumnstrue client.undo.logTableundo_log client.undo.compress.enabletrue client.undo.compress.typezip client.undo.compress.threshold64k client.log.exceptionRate1003.微服务读取nacos配置 接下来需要修改每一个微服务的application.yml文件让微服务读取nacos中的client.properties文件 seata:config:type: nacosnacos:server-addr: 127.0.0.1:8848username: nacospassword: nacosgroup: SEATA_GROUPdata-id: client.properties重启微服务现在微服务到底是连接tc的SH集群还是tc的HZ集群都统一由nacos的client.properties来决定了。
http://www.dnsts.com.cn/news/34866.html

相关文章:

  • 网站推广制作附子seo
  • 别人做的网站不能用怎么办巴中交通建设有限公司网站
  • 精品课程网站建设总结报告天眼查询系统
  • 网站怎样做的高大上有错误的wordpress
  • 南京网站制作哪家专业外贸网站建设哪家有名
  • 六安城市网优选佛山网站关键词优化公司
  • 网站建设费钱吗wordpress怎么增加按钮
  • 免费画图网站平阴网站建设费用
  • 哈尔滨网站建设制作费用网页设计和网站制作
  • iis7发布网站教程做专题页的背景网站
  • 什么语言做网站快简诉网站建设的基本流程
  • 衡水高端网站建设动漫设计和动漫制作技术的区别
  • 如何提高网站收录量南昌公路建设有限公司网站
  • 长治一般建一个网站需要多少钱沈阳网站建设思路
  • 网站建设数据录入沈阳网站建站推广
  • 酒水食品做的好网站网站内容建设的原则是什么
  • 电子商务网站开发基础事件营销怎么做
  • 网站建设一年多少网站宽度设置
  • 傻瓜式网页制作网站做直播网站有哪些
  • 长治个人做网站开福区城乡建设局网站
  • 镇江手机网站制作上海网站建设企业
  • 贵阳网站建设王道下拉惠个人主页是指什么
  • 小型网站项目策划书广州网站建设高端
  • 余姚网站如何进行优化网站建设与维护理解
  • 外贸网站有必要吗网站建设服务兴田德润
  • 眉山住房和城乡建设局网站网络品牌营销策略
  • 广东省建设工程金匠奖公布网站中山百度关键词搜索
  • 自己电脑做的网站如何映射到公网济宁君天建设公司网站
  • python 网站开发怎么部署哈尔滨互联网公司
  • php网站怎么做302做虚假彩票网站判几年