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

卖书网站开发的背景家电企业网站推广方案

卖书网站开发的背景,家电企业网站推广方案,亚马逊海外网站,建设网站建设多少钱一、Seata简介1、Seata组件Seata是一款开源的分布式事务解决方案#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式#xff0c;为用户打造一站式的分布式解决方案。2、支持模式AT 模式基于支持本地 ACID 事务的关系型数…一、Seata简介1、Seata组件Seata是一款开源的分布式事务解决方案致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式为用户打造一站式的分布式解决方案。2、支持模式AT 模式基于支持本地 ACID 事务的关系型数据库。Java应用通过 JDBC 访问数据库。一阶段业务数据和回滚日志记录在同一个本地事务中提交释放本地锁和连接资源。二阶段提交异步化非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿。TCC模式一个分布式的全局事务整体是两阶段提交的模型全局事务是由若干分支事务组成的分支事务要满足两阶段提交的模型要求即需要每个分支事务都具备自己的一阶段 prepare 行为二阶段 commit 或 rollback 行为Saga模式Saga模式是SEATA提供的长事务解决方案在Saga模式中业务流程中每个参与者都提交本地事务当出现某一个参与者失败则补偿前面已经成功的参与者一阶段正向服务和二阶段补偿服务都由业务开发实现。XA模式XA是一个分布式事务协议对业务无侵入的分布式事务解决方案XA提交协议需要事务参与者的数据库支持XA事务具有强一致性在两阶段提交的整个过程中一直会持有资源的锁性能不理想的缺点很明显。二、服务端部署1、下载组件包1.2版本seata-server-1.2.0.zip解压目录bin存放服务端运行启动脚本;lib存放服务端依赖的资源jar包conf配置文件目录。2、修改配置file.conf配置mode:db 即使用数据库存储事务信息这里还可以选择file存储方式。file模式为单机模式全局事务会话信息内存中读写并持久化本地文件root.data性能较高;db模式为高可用模式全局事务会话信息通过db共享相应性能差些;redis模式Seata-Server 1.3及以上版本支持,性能较高,存在事务信息丢失风险,请提前配置合适当前场景的redis持久化配置.store { ## store mode: file、db mode db db { datasource druid dbType mysql driverClassName com.mysql.jdbc.Driver url jdbc:mysql://127.0.0.1:3306/seata_server user root password 123456 minConn 5 maxConn 30 globalTable global_table branchTable branch_table lockTable lock_table queryLimit 100 maxWait 5000 }}registry.conf配置这里选择eureka作为注册中心seata-server也要作为一个服务添加到注册中心不使用配置中心所以config配置默认即可。registry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type eureka eureka { serviceUrl http://localhost:8761/eureka application default weight 1 }}3、事务管理表需要在seata-server即上述配置的MySQL库中建立3张事务管理表全局事务global_table分支事务branch_table全局锁lock_table事务回滚undo_logSQL脚本mysql-script目录4、启动命令Linux环境sh seata-server.sh三、业务服务搭建1、代码结构seata-eureka注册中心seata-order订单服务seata-account账户服务seata-inventor库存服务seata-client客户端服务account-feign账户Feign接口inventory-feign库存Feign接口order-feign订单Feign接口请求链路客户端-订单-账户库存测试整个流程的分布式事务问题。2、数据库结构seata_serverseata组件服务端依赖库seata_account模拟账户数据库seata_inventor模拟库存数据库seata_order模拟订单数据库各个库脚本位置mysql-script/data-biz.sql3、启动服务依次启动注册中心库存服务账户服务订单服务客户端服务Eureka服务列表如下四、Seata用法详解1、Seata基础配置几个基础服务的配置方式一样。conf配置file.conf重点关注下面内容事务组的名称需要在yml文件中使用。my_test_tx_group defaultregistry.conf是注册中心的选择。2、数据库配置注意这里的事务组名称配置。spring: # 事务组的名称 cloud: alibaba: seata: tx-service-group: my_test_tx_group # 数据源配置 datasource: type: com.alibaba.druid.pool.DruidDataSource druid: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/seata_account username: root password: 123456将数据库整体由Seata进行代理管理核心APIDataSourceProxy。Configurationpublic class SeataAccountConfig { Value(${spring.application.name}) private String applicationName; Bean public GlobalTransactionScanner globalTransactionScanner() { return new GlobalTransactionScanner(applicationName, test-tx-group); } Bean ConfigurationProperties(prefix spring.datasource.druid) public DruidDataSource druidDataSource() { return new DruidDataSource() ; } Primary Bean(dataSource) public DataSourceProxy dataSourceProxy(DataSource druidDataSource) { return new DataSourceProxy(druidDataSource); } Bean public SqlSessionFactory sqlSessionFactory(DataSourceProxy dataSourceProxy)throws Exception{ SqlSessionFactoryBean sqlSessionFactoryBean new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSourceProxy); sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(classpath*:/mapper/*.xml)); sqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory()); return sqlSessionFactoryBean.getObject(); }}3、业务代码核心注解GlobalTransactional管理整体的分布式事务。Servicepublic class OrderServiceImpl implements OrderService { private final Logger LOGGER LoggerFactory.getLogger(OrderServiceImpl.class); Resource private OrderMapper orderMapper ; Resource private AccountFeign accountFeign ; Resource private InventoryFeign inventoryFeign ; GlobalTransactional Override public Integer createOrder(String orderNo) { LOGGER.info(Order 生成中 orderNo); // 本服务下订单库 Integer insertFlag orderMapper.insert(orderNo) ; // 基于feign接口处理账户和库存 accountFeign.updateAccount(10L) ; inventoryFeign.updateInventory(10) ; return insertFlag ; }}测试流程在任意服务下抛出异常观察整体的事务状态观察是否有整体的事务控制效果。
http://www.pierceye.com/news/534308/

相关文章:

  • 长沙企业网站制作宝安公司网站建设
  • 做网站需要拉多大的宽带dw做的网站怎么做后台
  • 公司网站建设设计公司哪家好wordpress自动封ip
  • 郫县网站制作wordpress搜索打钩
  • 哪些网站可以做招商广告语wordpress发文章的id怎么不连续
  • 家私网站栏目和功能需求策划网页样式库
  • 什么是网站网页主页企业电子邮箱格式
  • 金属建材企业网站建设方案用pycharm做网站
  • 重庆网站空间黄骅港一期码头潮汐表
  • 推广网站如何做做酒店网站所用到的算法
  • 最好的网站建设组织wordpress 删除google
  • 生物科技 网站模板下载在线室内设计
  • 网站兼容性问题线上设计师接单
  • 外包网站平台可以做电算化的网站
  • 教育网站设计案例学校网站设计
  • 网站建设入门教程pdf网络推广和seo
  • 闲鱼钓鱼网站怎么做百度网页版主页
  • 一次备案多个网站alexa排名查询
  • 郑州做招商的网站网站建设的流程推广方案
  • wordpress手机网站插件海口seo关键词优化
  • wordpress随机文章佛山网站优化美姿姿seo
  • 做酒类网站中铁三局最新消息
  • 网站建设教程给赚湖南岚鸿官 网英语培训学校网站建设多少钱
  • 电子商务网站的建设步骤有注册咨询公司经营范围
  • 手机端网站做app开发wordpress建站论坛
  • 四合一做网站微信公众平台怎么做微网站
  • 法治与安全做讲座网站系统工具
  • wap网站怎么做白石洲网站建设
  • 网站备案 关闭网站广州安全教育平台登录入囗
  • 做常州美食网站首页的背景图招聘网站建设费用多少