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

分布式系统简述

一、什么是分布式系统?

分布式系统是一个硬件或软件组件分别在不同的网络计算机上,彼此之间通过消息传递进行通信和协调的系统。通俗的理解,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统成为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可以在不同机房中,甚至分布在不同城市。

分布式也代来了复杂度。它需要考虑:一致性、可用性、分区容错性问题。

一致性的话,外部所有节点访问该系统的时候,不管请求系统的哪些节点返回的都是同一份数据。

可用性的话,就是每次请求都能获取到非异常的响应。

分区容错性,其实也可以归纳为系统高可用,分布式系统遇到任何网络分区故障的时候,仍然能对外提高一致性和可用性服务。

系统高可用的几种方案:

主备、互备、集群模式。

主备模式,搭建一个主节点和一个从节点,主节点负责读写请求,从节点负责读请求和同步主节点。主流技术,主要是同bin-log日志就是主从同步。

互备模式比较少见,就是两个都可以读写,当一台出问题,迁移使用备用机。

集群模式,集群模式就是指多个节点运行,同时分担服务请求。

前面提到的事高可用相关,分布式系统还带来了一个非常麻烦的问题,那就是如何一致性。

业界,常用的方案有,三阶段提交协议。它包含一种关键角色,称之为协调者,通过协调者来控制三个阶段的提交管理。第一阶段(canCommit),当事务发起到达协调者之后,协调者询问其他涉及到的事务集群服务是否可以正常执行,如果失败或者超时直接结束丢弃。第二阶段,当接收到反馈之后,执行第二阶段PreCommit,想参与者服务发起事务预提交通知。接收到反馈之后,执行第三阶段,提交事务,也就是运行事务,如果失败直接回滚,最终参与返回提交结果。这套方案有个弊端就是协调者可能出现宕机,则整个事务就没法执行。

http://www.xdnf.cn/news/956035.html

相关文章:

  • Appium下载安装配置保姆教程(图文详解)
  • 基于 Three.js 的数字雨波纹效果技术解析
  • 浏览器工作原理11 [#] this:从JavaScript执行上下文视角讲this
  • SpringBoot请求限流(RateLimiter)
  • 针对药品仓库的效期管理问题,如何利用WMS系统“破局”
  • align-items: start和align-items: flex-start的区别
  • 技术创新赋能产业升级:国际数字影像产业园引领变革浪潮
  • 【网络安全】开源系统getshell漏洞挖掘
  • UI 自动化测试工具推荐
  • [KCTF]CORE CrackMe v2.0
  • ​小学五年级的语言来解释符号​
  • ui框架-文件列表展示
  • 拉曼光谱效应:分子指纹的科学与应用
  • 视觉slam--三维刚体运动
  • java教程笔记(十四)-线程池
  • DAY 44 训练
  • RK3588开发笔记-wifi6 SDIO接口rtl8822cs调试笔记
  • Mysql故障排插与环境优化
  • ESP32-S3 IDF V5.4.1 LVGL 9.2.0 fatfs
  • RabbitMQ优先级队列的使用
  • 掌握业务三板斧:目标、过程、成果
  • 视频监控管理平台EasyCVR接入RTMP推流后FLV格式流高延时问题解决方案
  • 会计 - 股份支付
  • 六、接口关联
  • 对云边协同技术的理解
  • Python 协程全解析:async/await、asyncio.run、协程 vs 多线程、I/O 密集首选协程
  • EasyExcel读取csv文件乱码
  • 在 JavaScript中编写 Appium 测试(入门)
  • 【后端】单点登录
  • BI系统帮助企业释放数据价值