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

昆山市住房和城乡建设局网站樟木头建网站的

昆山市住房和城乡建设局网站,樟木头建网站的,内蒙古旅游攻略,网站推广专员的岗位职责是什么文章目录 一、Seata Server端1、下载seata server2、客户端配置-application.yml3、初始Mysql数据库4、导入初始配置到nacos5、启动测试 二、Seata Client端搭建1、为示例业务创建表2、业务代码集成 Seata 本文以seata-server-1.5.2#xff0c;以配置中心、注册中心使用Nacos以配置中心、注册中心使用Nacosstore.modedbmysql为例进行操作。 Seata简介及入门参看SpringCloud入门实战十五分布式事务框架Seata简介 一、Seata Server端 1、下载seata server 链接: http://seata.io/zh-cn/blog/download.html下载压缩包解压至非中文目录。 本文版本环境 Spring Cloud Alibaba 2021.0.4.0 Spring Boot 2.6.11 Nacos 2.2.1 Seata1.5.2 下载版本参考之前我们提到的SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表详细准确选择适合自己环境的版本。 解压后可以发现原来的conf/registry.conf配置文件没有了可直接修改application.yml进行配置。 2、客户端配置-application.yml 配置application.yml低版本的是file.confregistry.conf文件主要配置config:配置中心部分及registry:注册中心部分。 server:port: 7091spring:application:name: seata-server # 日志配置 logging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seata# 不外接日志故如下配置可暂不考虑extend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstash # 新增加的console控制台 # 可通过访问http://localhost:7091进行登录账号如下seata/seata console:user:username: seatapassword: seataseata:# Seata接入Nacos配置中心config:# support: file, nacos, consul, apollo, zk, etcd3type: nacosnacos:server-addr: 127.0.0.1:8848namespace: 891d7906-dd03-4b8c-9fe9-a1f0609b3189group: SEATA_GROUPusername: nacospassword: nacos##if use MSE Nacos with auth, mutex with username/password attribute#access-key: #secret-key: # Seata接入Nacos服务注册中心registry:# support: file, nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-serverserver-addr: 127.0.0.1:8848group: SEATA_GROUPnamespace: 891d7906-dd03-4b8c-9fe9-a1f0609b3189cluster: defaultusername: nacospassword: nacos##if use MSE Nacos with auth, mutex with username/password attribute#access-key: #secret-key: # 此处可不必配置由于接入了nacos配置以下store相关配置可直接通过seataServer.properties进行配置# store:# support: file 、 db 、 redis# mode: db # server: # service-port: 8091 #If not configured, the default is ${server.port} 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login Tip:seata 版本客户端和服务端最好还保持一样 3、初始Mysql数据库 新建seata库-执行mysql.sql初始化脚本-【Seata 1.5版本mysql脚本】压缩包目录seata/script/db/mysql.sql 4、导入初始配置到nacos 1)先任意模式启动nacos不清楚的参看nacos安装运行本文使用单机模式运行nacos。 moonmoondeiMac ~ % cd /Users/moon/Downloads/nacos-2.2.1/distribution/target/nacos-server-2.2.1/nacos/bin moonmoondeiMac bin % sh startup.sh -m standalone2)新建一个namespace用于本地开发使用egdev 3)修改压缩包目录seata/script/config-center/config.txt文件中几处内容 # 存储模式 store.modedbstore.db.datasourcedruid store.db.dbTypemysql # 需要根据mysql的版本调整driverClassName # mysql8及以上版本对应的drivercom.mysql.cj.jdbc.Driver # mysql8以下版本的drivercom.mysql.jdbc.Driver store.db.driverClassNamecom.mysql.jdbc.Driver # 注意根据生产实际情况调整参数host和port store.db.urljdbc:mysql://127.0.0.1:3306/seata?useUnicodetruerewriteBatchedStatementstrue # 数据库用户名密码 store.db.userroot store.db.password12345678 # 微服务里配置与这里一致 service.vgroupMapping.dev_tx_groupdefault 特别说明下 配置事务分组service.vgroupMapping.dev_tx_groupdefault dev_tx_group需要与客户端保持一致 可以自定义 default需要跟客户端和application.yml中的cluster保持一致 default 必须要等于 registry.conf cluster “default” 4)官方推荐通过压缩包目录seatascript/config-center/nacos/nacos-config.sh将修改后的config.txt发布到nacos上 # 运行指令 通过 Git Bash Here sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 891d7906-dd03-4b8c-9fe9-a1f0609b3189# 具体说明参见http://seata.io/zh-cn/docs/user/configurations.html # -h: nacos host默认localhost # -p: nacos端口默认8848 # -g: nacos分组默认SEATA_GROUP. # -t: 租户信息Tenant information对应nacos namespace ID默认 # -u: nacos用户名默认 # -w: nacos用户密码默认5)导入结果 namespace: dev group: SEATA_GROUP 配置项变成了N个每项都可单独修改。 5、启动测试 进入seata/bin 目录下执行命令 sh seata-server.sh 可以看到seata-server成功注入nacos至此Seata Server端处理完毕。 二、Seata Client端搭建 1、为示例业务创建表 以用户购买商品的业务逻辑为例搭建微服务系统 仓储服务Stock对给定的商品扣除仓储数量。 订单服务Order根据采购需求创建订单。 账户服务Account从用户账户中扣除余额。 三个独立的应用分别使用三个独立的数据源。 为示例业务创建库、表及每个库增加undo_log表执行脚本 注意每个业务数据库都要有UNDO_LOG 2、业务代码集成 Seata 源码项目源码 1父pom引入依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion2021.0.4/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2021.0.4.0/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.6.11/versiontypepom/typescopeimport/scope/dependency2子pom引入依赖 !-- seata -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactId /dependency!--seata starter -- dependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactId /dependency!--nacos discovery --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--nacos config -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency!--openfeign -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion3.1.3/version/dependency3yml文件其他两个类似 server:port: 2001spring:application:name: seata-order-servicecloud:nacos:discovery:# 服务分组group: SEATA_GROUPserver-addr: http://localhost:8848# 必须填命名空间的IDnamespace: 891d7906-dd03-4b8c-9fe9-a1f0609b3189datasource:type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/seata_order?allowMultiQueriestrueuseUnicodetruecharacterEncodingUTF-8useSSLfalse #useSSL安全加固username: rootpassword: 12345678# MyBatis Plus配置 mybatis-plus:# 配置mapper的扫描找到所有的mapper.xml映射文件mapper-locations: classpath*:mapper/**/*.xml#实体扫描多个package用逗号或者分号分隔typeAliasesPackage: com.qytest.springcloud.entititesglobal-config:db-config:id-type: autoconfiguration:# 开启驼峰开启后只要数据库字段和对象属性名字母相同无论中间加多少下划线都可以识别map-underscore-to-camel-case: true# Seata 配置 seata:application-id: seata-server# 是否启用数据源bean的自动代理enable-auto-data-source-proxy: falsetx-service-group: dev_tx_group # 必须和服务器配置一样registry:type: nacosnacos:# Nacos 服务地址server-addr: http://localhost:8848group: SEATA_GROUPnamespace: 891d7906-dd03-4b8c-9fe9-a1f0609b3189application: seata-server # 必须和服务器配置一样username: nacospassword: nacoscluster: defaultconfig:type: nacosnacos:server-addr: ${spring.cloud.nacos.discovery.server-addr}group: SEATA_GROUPnamespace: 891d7906-dd03-4b8c-9fe9-a1f0609b3189service:vgroup-mapping:tx-service-group: dev_tx_group # 必须和服务器配置一样disable-global-transaction: falseclient:rm:# 是否上报成功状态report-success-enable: true# 重试次数report-retry-count: 5 4编写业务测试类 order通过feign接口调用库存及账户系统接口 RestController RequestMapping() Slf4j public class OrderController {Resourceprivate OrderService orderService;GetMapping(/order/create)public CommonResultOrder create(Order order) {orderService.create(order);return new CommonResultOrder(200, 订单创建成功, order);}}public interface OrderService extends IServiceOrder {void create(Order order); }Service Slf4j public class OrderServiceImpl extends ServiceImplOrderMapper, Order implements OrderService {Resourceprivate StorageService storageService;Resourceprivate AccountService accountService;/*** 创建订单-调用库存服务扣减库存-调用账户服务扣减账户余额-修改订单状态* 简单说下订单-扣库存-减余额-改状态*/Overridepublic void create(Order order) {//1 新建订单log.info(-----开始新建订单);baseMapper.create(order);log.info(-----新建订单完成);//2 扣减库存log.info(-----订单微服务开始调用库存做扣减Count);storageService.decrease(order.getProductId(), order.getCount());log.info(-----库存扣减Count完成);//3 扣减账户log.info(-----订单微服务开始调用账户做扣减Money);accountService.decrease(order.getUserId(), order.getMoney());log.info(-----账户扣减Money完成);//4 修改订单状态从0到1,1代表已经完成log.info(-----修改订单状态开始);baseMapper.update(order.getUserId(),0);log.info(-----修改订单状态结束);log.info(-----下订单结束了O(∩_∩)O哈哈~);} }更多内容可查看源码 5启动测试 # 先单机模式启动nacos moonmoondeiMac ~ % cd /Users/moon/Downloads/nacos-2.2.1/distribution/target/nacos-server-2.2.1/nacos/bin moonmoondeiMac bin % sh startup.sh -m standalone# 再启动seata moonmoondeiMac ~ % cd /Users/moon/Downloads/seata/bin moonmoondeiMac bin % sh seata-server.sh 分别访问http://localhost:8848/nacos、http://localhost:7091/确认下nacos和seata启动无误。 然后依次启动seata-account-service、seata-storage-service、seata-order-service 请求接口模拟正常下单:http://localhost:2001/order/create?userId1productId1count10money100 运行结果: 3、常见问题 1can not get cluster name in registry config ‘service.vgroupMapping.xx‘, please make sure registry问题解决 核对项目中和配置文件是否一致 2ERROR — [cos.client.naming.updater] c.a.nacos.client.security.SecurityProxy : [SecurityProxy] login http request failed url: http://127.0.0.1:8848/nacos/v1/auth/users/login, params: {usernamenacos}, bodyMap: {passwordnacos}, errorMsg: Server returned HTTP response code: 500 for URL: http://127.0.0.1:8848/nacos/v1/auth/users/login?usernamenacos 大体上是版本问题参考文章开头更换组件版本。 注意以下几点 Seata相关配置是否正确 Seata Server是否正常启动并可以被访问 Seata Client是否正确配置并与Seata Server保持连接
http://www.pierceye.com/news/239930/

相关文章:

  • 彭阳网站建设多少钱嘉兴专业的嘉兴专业网站建设项目
  • 网站建设导航分哪几类公司网站大全
  • 网站建设 实训题安能建设总公司网站打不开
  • 莱西网站建设龙岗中心城有学网站建设
  • 重庆技术网站建设宝安做网站哪家好
  • 仿制网站建设写网站建设的软文
  • 0基础网站建设教程wordpress去掉rss订阅
  • 爱网站查询外贸推广具体是做什么
  • 商务网站价格找人做效果图那个网站
  • 上传到网站租一个服务器要多少钱
  • 网站制作服务合同安徽建设工程信息网文件
  • 成都企业网站建设公司正规的跨境电商平台有哪些
  • 中山工程建设信息网站网站监控系统
  • 个人网站想添加支付功能怎么做北京二次感染最新消息
  • 上海注册汽车租赁公司网站模板对seo的影响
  • 上海松江做网站公司wordpress 网站暂停
  • 太仓苏州网站建设网站的规划与建设课程设计
  • 遵义住房城乡建设厅网站电子商务网店毕业设计
  • 惠州市博罗县建设局网站防静电产品东莞网站建设技术支持
  • 茂名整站优化百度一下 你知道首页
  • 郑州网站微信微博维护品牌网站建设流程图
  • 网站建站销售怎么做做门窗安装去哪些网站找生意
  • 太原建站司点击查看荆州网站开发
  • 个人音乐网站开发宁波网站推广工作室电话
  • 建设部网站 造价工程师wordpress忘了秘密
  • 如何分析一个网站建设策划案湖南网络推广公司大全
  • 惠州市建设工程交易中心网站如何制作网页导航栏
  • 保山网站建设哪家好做led视频好的网站
  • 如何利用网站策划做好网站建设申请域名要多少钱
  • 专业做公司logo的网站谷歌网站推广方案