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

大连优化网站课程全国住房城乡建设厅网站

大连优化网站课程,全国住房城乡建设厅网站,搞计算机网站建设会亏钱吗,ui设计生成器文章目录 分布式服务理论基础前言微服务和分布式的区别CAP定理BASE理论 Seata流程#xff1a;seata部署微服务集成seata 分布式服务理论基础 前言 单体架构#xff1a; 1.项目过于臃肿#xff0c;所有服务在一起#xff0c;一个业务挂了#xff0c;整个项目就不能用了seata部署微服务集成seata 分布式服务理论基础 前言 单体架构 1.项目过于臃肿所有服务在一起一个业务挂了整个项目就不能用了 2.资源不能隔离所有业务用一个资源共享一个数据库如果说一个业务突然增大——导致数据库宕机了那么其他业务就会受到影响 3.扩展不灵活如果我们要对一个服务进行扩展会将整个系统水平扩展 4.所有功能得一起上线一起部署 分布式 1.数据一致性我们先说有个最明显的案例之前我们的单体架构中数据库是多个服务共享的所以事务是ACID的但是分布式中每个微服务都有自己独立的数据库你一个业务串了多个服务那么分布式下的微服务链路原子性就不能保证了——比如下面 例子创建订单扣减用户余额扣减库存涉及三个服务在订单业务中远程调用两个服务我们创建一个订单假设库存为10我们下单11个按道理来说我们是想库存服务和订单服务还有账户服务是会回滚的因为下单超过库存数但是实际上只有库存服务会回滚自己的数据库其余的账户服务和订单服务都会成功 原因每个服务都是独立的有自己的数据库所以事务也是独立的 **2.需要考虑网络问题**因为服务的调用十分依赖网络尤其是节点非常多链路非常长的情况下 **3.异步**引入了各种中间件GateWaymqnacosseata等等异步通信增加了功能实现的复杂度 **4.运维成本**一个系统被拆成多个服务每个服务都得配置部署 总得来说就是将原本一个系统分成多个互相调用通信的服务 微服务和分布式的区别 所以 ~ 分布式 的意思是多个模块共同完成一件事情(也可以是一个模块分多个部署)每个节点可以单独完成任务分开不同机器部署 ~ 微服务的意思也是多个模块共同完成一件事情(不管应用部署在哪里) 总结 微服务和分布式都是拆分单体应用的产物可以理解为微服务只是对服务拆分的形容词分布式是对服务部署方面的考量微服务是可以包含分布式的但是分布式不一定是微服务 CAP定理 分区因为网络故障导致分布式中部分节点与其他节点失去连接从而形成独立分区——一定会有的 解决 让node03节点等待网络的恢复在恢复之前不允许访问——满足了一致性不满足可用性 因为分布式系统中我们的服务节点一定是通过网络连接的那么就一定会出现分区问题毕竟你网络是不能保证百分百良好的 思考 因为es集群当有一个节点宕机时过了一定时间它会被剔除那么我们就访问不到它了牺牲了可用性但是节点上的数据会被分到其他节点上从而保证了一致性所以是CP 这里回顾一下es集群 elasticsearch搭建集群-CSDN博客 突然想到了EureKa和Nacos中的区别里面也涉及AP、CP 区别 Nacos支持服务端主动检测服务提供者状态临时实例采用心跳模式非临时实例采用服务器主动访问模式 临时实例心跳不正常会被踢出非临时实例则不会被剔除 Nacos支持服务列表消息推送模式即时更新 补充 nacos、EureKa涉及ap、cp模式 CP和AP是什么有什么区别-CSDN博客 BASE理论 牛逼之处部分的损失可用A临时的不一致——最终的一致性C权衡 Seata 目的解决分布式系统的事务问题 流程 1.首先TC是维护协调整个全局的事务的帮助事务进行提交和回滚相当于分布式事务一个总的大杂烩 ——2.而作为分布式系统是有个入口的因为我们的微服务之间的调用每调用一个服务就是一个事务出现也就是说我们这个入口管理了整个服务调用的一个范围所以说TM事务管理器就相当于全局事务的入口定义了事务范围然后开启全局事务 ——3.TC它会判断我们的全局服务是否进行提交与回滚 ——4.但是在此之前因为全局事务里面有分支事务分支事务提交就与RM有关管理分支事务处理向TC进行注册事务并且执行对应的sql然后报告状态给TC但是RM此时是没有回滚和提交效果的说白了也就是执行了服务而已但是并没有提交 ——5.TC会进行验证服务状态来判断最后是提交还是回滚由TM处理 总结TM和RM是和业务有关的对服务进行管理而TC是独立出来的维护分支服务状态的 seata部署 新建配置中配置内容: # 数据存储方式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.password123456 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以上我们数据存储的数据库为seata我们还需要定义一个全局事务表和一个分支事务表 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 NULL DEFAULT NULL,gmt_modified DATETIME 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;seata部署成功 目的完成分布式事务管理形成TMRM代理我们的分布式事务 微服务集成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 /dependencyseata-tc-server服务的确定需要再nacos注册中心中进行寻找服务地址namespace默认值分组groupapplication事务组集群 **事务组**相当于管理分布式系统中里面的微服务订单库存…这些服务把他们进行管理这些管理的大组为事务组我们可以根据这个获取TC节点 seata:registry:type: nacosnacos:server-addr: 127.0.0.1:8848namespace: group: DEFAULT_GROUPapplication: seata-tc-serverusername: nacospassword: nacos#事务组名称tx-service-group: seata-demoservice:#配置映射关系vgroup-mapping:seata-demo: SH
http://www.pierceye.com/news/235964/

相关文章:

  • 网站轮播怎么做石家庄网站建设规划
  • 免费软件网站下载深圳网站开发哪个公司好
  • 建设项目验收网站公示内网门户网站建设方案
  • 滨海做网站哪家最好宝安附近做网站公司
  • 详情页的五大模块东莞网站优化科技有限公司
  • 南阳建设网站哪家好昆明网站服务
  • 大潮建设集团有限公司 网站网站改版策划方案
  • 网站开发心路历程烟台网站建设薇企汇互联见效付款
  • 企业网站的制作周期wordpress添加数据库表
  • 广告推广营销网站网站买空间的价格
  • 转转假网站怎么做linux建设视频网站
  • 伍佰亿搜索引擎网站系统wordpress 增加备案
  • 韩国做游戏的电影 迅雷下载网站有哪些网络营销方式文献
  • 大学生兼职网站的融资方案龙华网站建设设计制作公司
  • 青之峰网站建设哪家好用什么l软件做网站了
  • 免费建站资源怎么编写app软件
  • 机关网站建设建议云南响应式网站建设
  • 对网站开发语言的统计杭州网站设计公司有哪些
  • 不会代码 怎么做网站兴义网络推广
  • 综合电子商务型企业网站怎么做网站的网盘
  • ucenter使用自己做的网站房地产新闻时事热点
  • 企业网站备案 过户电商运营视频教程
  • 做网站运营这工作怎么样北京网站优化价格
  • 河南专业网站建设网站怎么做高权重
  • 国内大型电子网站建设做网站时怎么透明化
  • 微应用和微网站的区别手机网站开发的目的
  • 网站ico开一个网站建设公司好
  • wordpress中文站cn外贸网站怎么换域名
  • 淘宝客怎么做直播网站吗学校网站建设发展概况分析
  • 广州网站外贸推广建筑师必看的16部纪录片