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

成都网站建设及推广年费代运营一般收费

成都网站建设及推广年费,代运营一般收费,自己做网站的费用,福州建设人才市场网站spring cloud 集成 seata 分布式事务 基于 seata-server 1.6.x 序言 下载 seata-server 准备一个数据库 seata 专门为 seata-server 做存储,如, 可以指定 branch_tabledistributed_lockglobal_tablelock_table 准备一个业务库,比如存放定单&#xff…

spring cloud 集成 seata 分布式事务

基于 seata-server 1.6.x

序言

  • 下载 seata-server
    • 准备一个数据库 seata 专门为 seata-server 做存储,如, 可以指定
      • branch_table
      • distributed_lock
      • global_table
      • lock_table
  • 准备一个业务库,比如存放定单,库存表
    • order_tbl
    • stock_tbl
  • 启动好 nacos

工程目录

两个微服务,order 通过 feign 调用 stock 达到 下单扣库存的操作,同时要保证事务

  • svc-order-service
  • svc-stock-service

seata-server 启动

配置 application.yaml

文件在 conf 目录下, 可通过 seata给的 example 文件作相对应的改动,这里采用 nacos 为注册和配置中心,使用 mysql作为存储:

server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seata
console:user:username: seatapassword: seata# 自己加的
vhost:ip: 192.xx.xx.129seata:config:type: nacosnacos:server-addr: ${vhost.ip}:8848namespace: seatagroup: SEATA_GROUPusername:password:context-path:data-id: seataServer.propertiesregistry:type: nacosnacos:application: seata-serverserver-addr: ${vhost.ip}:8848group: SEATA_GROUPnamespace: seatacluster: defaultserver:service-port: 8091 #If not configured, the default is '${server.port} + 1000'max-commit-retry-timeout: -1max-rollback-retry-timeout: -1rollback-retry-timeout-unlock-enable: falseenable-check-auth: trueenable-parallel-request-handle: trueretry-dead-threshold: 130000xaer-nota-retry-timeout: 60000enableParallelRequestHandle: truerecovery:committing-retry-period: 1000async-committing-retry-period: 1000rollbacking-retry-period: 1000timeout-retry-period: 1000undo:log-save-days: 7log-delete-period: 86400000session:branch-async-queue-size: 5000 #branch async remove queue sizeenable-branch-async-remove: false #enable to asynchronous remove branchSessionstore:mode: dbsession:mode: dblock:mode: dbdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://${vhost.ip}:3306/seata?rewriteBatchedStatements=trueuser: rootpassword: 111111min-conn: 10max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 1000max-wait: 5000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

在 nacos 增加 dataId=seataServer.properties, 单独给 seata-server 开一个 namespace ,和 nacos中业务的namespace区别开,当然两者可以相同

# 数据存储方式,db代表数据库, 可以覆盖 seata中 application.yaml中的配置
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://192.xx.xx.129:3306/seata?useUnicode=true&rewriteBatchedStatements=true&serverTimezone=GMTstore.db.user=root
store.db.password=111111
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 事务、日志等配置
server.recovery.committingRetryPeriod=3000
server.recovery.asynCommittingRetryPeriod=3000
server.recovery.rollbackingRetryPeriod=3000
server.recovery.timeoutRetryPeriod=3000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none
# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

然后启动 /bin/seata-server.bat ,看到 nacos注册中心有服务就可以了

微服务应用

这里取 svc-order-service 作为配置举例,svc-stock-service 是一样的

  1. 依赖
<dependencies><!--nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- Seata --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.32</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- feign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><exclusions><exclusion><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></exclusion></exclusions></dependency><!--解决:Did you forget to include spring-cloud-starter-loadbalancer?--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></dependency>
</dependencies>
  1. 配置文件

svc-order-service/application.properties:

spring.application.name=svc-order-service
server.port=9091
spring.cloud.nacos.discovery.server-addr=192.xx.xx.129:8848
spring.cloud.nacos.discovery.namespace=dev
spring.cloud.alibaba.seata.tx-service-group=my_test_tx_group
spring.datasource.url=jdbc:mysql://192.xx.xx.129:3306/seata-biz?allowMultiQueries=true
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=111111spring.datasource.druid.connect-properties.config.decrypt=false
spring.datasource.druid.connect-properties.druid.stat.logSlowSql=true
spring.datasource.druid.connect-properties.druid.stat.slowSqlMillis=200
spring.datasource.druid.filters=config,wall,stat
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=100
spring.datasource.druid.max-wait=60000
spring.datasource.druid.min-evictable-idle-time-millis=30000
spring.datasource.druid.min-idle=5
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.login-password=admin
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.reset-enable=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.validation-query=select 1
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.exclusions=/druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico
spring.datasource.druid.web-stat-filter.session-stat-enable=true
spring.datasource.druid.web-stat-filter.session-stat-max-count=10
spring.datasource.druid.web-stat-filter.url-pattern=/*mybatis-plus.type-aliases-package=com.x.z.order.domain
mybatis-plus.mapper-locations=classpath*:mapper/**/*.xml
spring.main.allow-bean-definition-overriding=true# seata 注册到nacos中的命名空间可以和应用不相同
seata.enabled=true
seata.application-id=${spring.application.name}
# 事务组
seata.tx-service-group=my_tx_group #(事务级名称可以随便取,但是在seata-server配置中心要对应)
seata.service.vgroupMapping.my_tx_group=default# 下面和 seata-server 注册信息保持一致
seata.use-jdk-proxy=true
seata.enable-auto-data-source-proxy=true
seata.registry.type=nacos
# 和 seata-server应用名称一致
seata.registry.nacos.application=seata-server
seata.registry.nacos.server-addr=${spring.cloud.nacos.discovery.server-addr}
# 和 seata-server 配置保持一致
seata.registry.nacos.namespace=seata
seata.registry.nacos.group=SEATA_GROUP# seata-server 所在的配置中心
seata.config.type=nacos
seata.config.nacos.server-addr=${spring.cloud.nacos.discovery.server-addr}
seata.config.nacos.namespace=seata
seata.config.nacos.group=SEATA_GROUP
  1. 向 seata-server 注册事务组

    看 配置文件中有这个

    # 事务组
    seata.tx-service-group=my_tx_group #(事务级名称可以随便取,但是在seata-server配置中心要对应)
    seata.service.vgroupMapping.my_tx_group=default
    

就需要向 seata-server 配置中心注册 dataId= service.vgroupMapping.my_tx_group, value=default(seata-server 配置的中cluster 那个属性的值)

在这里插入图片描述

在这里插入图片描述
也就是 seata-server 中 application.yml中 cluster 属性值 :
在这里插入图片描述

意思就是向 seata-server cluster注册进行事务组注册,如果不配置 就会出现 no available service ‘null‘ found!!问题

有了以下输出信息,就代表分布式事务注册成功:

register TM success. client version:1.3.0, server version:1.6.1,channel:[id: 0x0
register RM success. client version:1.3.0, server version:1.6.1,channel:[id: 0x8
register success, cost 53 ms, version:1.6.1,role:TMROLE,channel:[id: 0x056f8e04
register success, cost 53 ms, version:1.6.1,role:RMROLE,channel:[id: 0x82d3b8b3

问题

no available service ‘null‘ found

原因就是seata-server 注册的cluster 属性 在我们的应用程序中不匹配或者没有找到

请在 seata-server 中配置 dataId= `service.vgroupMapping.my_tx_group`, value=`default(seata-server 配置的中cluster 那个属性的值)`

good luck!


文章转载自:
http://dinncocoulter.tpps.cn
http://dinncotextural.tpps.cn
http://dinncoleisuresuit.tpps.cn
http://dinncowsb.tpps.cn
http://dinncofigmentary.tpps.cn
http://dinncofortepiano.tpps.cn
http://dinncoturkophile.tpps.cn
http://dinncoapostrophize.tpps.cn
http://dinncoimmunoelectrophoresis.tpps.cn
http://dinncoparticipator.tpps.cn
http://dinncotesty.tpps.cn
http://dinncobushtailed.tpps.cn
http://dinncounwitting.tpps.cn
http://dinncorho.tpps.cn
http://dinncoluteous.tpps.cn
http://dinncoallotheism.tpps.cn
http://dinncoinsulant.tpps.cn
http://dinncotracheophyte.tpps.cn
http://dinncodemothball.tpps.cn
http://dinncoclomp.tpps.cn
http://dinncogerodontics.tpps.cn
http://dinncocontrapposto.tpps.cn
http://dinncowaistcoat.tpps.cn
http://dinncodimorphic.tpps.cn
http://dinncoquietive.tpps.cn
http://dinncoalacarte.tpps.cn
http://dinncojal.tpps.cn
http://dinncopridian.tpps.cn
http://dinncofumet.tpps.cn
http://dinncoossein.tpps.cn
http://dinncomottle.tpps.cn
http://dinncopicescent.tpps.cn
http://dinncoglowingly.tpps.cn
http://dinncorubricate.tpps.cn
http://dinncodandyish.tpps.cn
http://dinncoilium.tpps.cn
http://dinncoechinus.tpps.cn
http://dinncolathework.tpps.cn
http://dinncohilliness.tpps.cn
http://dinncokattowitz.tpps.cn
http://dinncomyoelectric.tpps.cn
http://dinncoknavery.tpps.cn
http://dinncocreditability.tpps.cn
http://dinncointenerate.tpps.cn
http://dinncofledge.tpps.cn
http://dinncolobeliaceous.tpps.cn
http://dinncoprotreptic.tpps.cn
http://dinncodiscretionarily.tpps.cn
http://dinncocodefendant.tpps.cn
http://dinncokinsoku.tpps.cn
http://dinncounvoiced.tpps.cn
http://dinncogreeneland.tpps.cn
http://dinncovitaminic.tpps.cn
http://dinncosemiautomatic.tpps.cn
http://dinncosemipermanent.tpps.cn
http://dinncocornerwise.tpps.cn
http://dinncovainness.tpps.cn
http://dinncobiotype.tpps.cn
http://dinncoephesine.tpps.cn
http://dinncotocometer.tpps.cn
http://dinncovibrissa.tpps.cn
http://dinncomiddorsal.tpps.cn
http://dinncophilhellenism.tpps.cn
http://dinncohep.tpps.cn
http://dinncomonophthongize.tpps.cn
http://dinncotawdry.tpps.cn
http://dinncosarcosome.tpps.cn
http://dinncoennui.tpps.cn
http://dinncosba.tpps.cn
http://dinncocivet.tpps.cn
http://dinncocollaboration.tpps.cn
http://dinncoglobalize.tpps.cn
http://dinncobrachylogy.tpps.cn
http://dinncostenographically.tpps.cn
http://dinncohanging.tpps.cn
http://dinncoentoptic.tpps.cn
http://dinncoconventioneer.tpps.cn
http://dinnconetcropper.tpps.cn
http://dinncosettling.tpps.cn
http://dinncoteem.tpps.cn
http://dinncolinguistician.tpps.cn
http://dinncobasilar.tpps.cn
http://dinncosalvershaped.tpps.cn
http://dinncoextramitochondrial.tpps.cn
http://dinncoblastula.tpps.cn
http://dinncoparacasein.tpps.cn
http://dinncograining.tpps.cn
http://dinncodepressive.tpps.cn
http://dinncoderisively.tpps.cn
http://dinncoshunpiking.tpps.cn
http://dinncoseparation.tpps.cn
http://dinncohatchway.tpps.cn
http://dinncooutright.tpps.cn
http://dinncocanty.tpps.cn
http://dinncofloreat.tpps.cn
http://dinncoiconometer.tpps.cn
http://dinncoaxilla.tpps.cn
http://dinncosalvolatile.tpps.cn
http://dinncoralliform.tpps.cn
http://dinncotrike.tpps.cn
http://www.dinnco.com/news/157383.html

相关文章:

  • php做视频直播网站搜狗搜索网页版
  • 新城免费做网站郑州网络推广平台
  • 仿威客网站淘宝指数官网入口
  • 做优化网站注意什么谷歌搜索引擎入口2022
  • 去掉wordpress版权泉州seo培训
  • 企业网站制作公司有哪些合肥seo关键词排名
  • photoshop+做网站logo东营网站建设哪家更好
  • 做网站需不需要云数据库新冠疫情最新消息今天
  • 如何把网站提交给百度营销神器
  • 做直播网站需要什么怎样做关键词排名优化
  • html5网站模板 站长网发免费广告电话号码
  • 潜江网站建设批发北京十大营销策划公司
  • 网站挂到国外服务器关键词优化公司排行
  • 两学一做 网站网域名解析ip查询
  • 前端培训学校长沙网址seo
  • 黔西县城市建设局网站宁波seo网络推广公司排名
  • 宁夏成城建设集团网站西安计算机培训机构哪个最好
  • vs 2015 网站开发神马网站快速排名案例
  • wordpress加备案号广东网络seo推广公司
  • 山东省春季高考网站建设试题上海网络推广招聘
  • 福州男同性做基网站推广app拿返佣的平台
  • 北京做网站便宜的公司哪家好博客seo优化技术
  • 那些影视解析网站怎么做的潍坊seo招聘
  • 社团网站建设广州百度提升优化
  • 上海浦东刚刚发生的命案唐山seo排名
  • 重庆工信部网站推广平台免费b2b网站大全
  • 网站开发和移动开发网络推广站
  • 工信部网站验证码域名是什么意思呢
  • 高端自适应网站建设危机公关处理
  • 公司支付网站服务费怎么做分录百度推广怎么开户