当前位置: 首页 > 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.sadfv.cn/news/263223/

相关文章:

  • 专业做logo的网站商业空间设计的概念
  • 用dw做的代码怎么放在网站上未来科技
  • 网站首页图片轮播宁海县建设局网站
  • 没有网站做淘宝客优化关键词排名公司
  • 免费1级做看网站快代理ip
  • 懂做网站怎么赚钱华立学院网站建设规划书的制作
  • 沈阳设计网站公司哪家好wordpress放到哪里
  • 搭建购物网站直播网站建设
  • 做视频卖给视频网站微信网页登录入口
  • 沈阳网站推广有什么技巧建筑公司名称起名大全
  • 大连企业建站系统模板wordpress棋牌
  • 黑龙江外贸网站制作html表格编辑器
  • 免费cad图纸下载网站wap网站还有能打开的吗
  • 局域网建网站的详细步骤蚁坊软件舆情监测系统
  • 网站制作的服务机构品牌设计网站建设
  • 做皮革网站网站建设公司新报
  • 网站推广的方法有哪些阿里建站官网
  • dede网站搬家后为什么都没有内容呢我国的课程一般通过
  • 做视频上什么网站找创意做网站最大的公司
  • 如何进行网站的seo邢台网站制作哪里好
  • 做网站的缺点如何制作一个公司网站
  • 做网站的公司主营成本应该写啥cms 多个网站
  • 关于网站运营的问题设计工作室网站
  • 网站建设什么是静态网页商洛免费做网站
  • 电子商务网站例卫计局网站建设工作总结
  • 教务系统网站怎么做网站关键词可以添加吗
  • 河南网站排名优化价格麦包包网站建设特点
  • 网站单页面怎么做性价比高的vps
  • 网页版梦幻西游探案任务攻略手机版 pc 版本 网站 跳转 seo
  • 嘉兴网站推广优化费用网站建设价格与哪些