1. 1.11 分布式系统通讯historical

    1. 什么是分布式系统通讯 - 单体系统拆分成多个子系统后,子系统之间需要通讯提供完成的服务 2. 分布式系统间通讯方式 2.1. 同步通讯 - A调用B,等待结果返回 2.1.1. REST vs RPC - Restful.md - 如何设计一个RPC框架.md RPC REST -------

  2. 1.12 分布式系统服务状态historical

    1. 什么是状态 - 状态指的是程序的上下文信息或者数据 - 有状态:用户的前一次请求和后一次请求有关联,必须打到某个节点才能正常处理 - 无状态:用户的前一次请求和后一次请求有关联,打到任意一个节点都能正常处理 2. 有状态服务 vs 无状态服务 有状态服务 无状态服务 --- ---------

  3. 1.13 分布式系统升级回滚historical

    1. 什么是服务升级回滚 - 分布式系统一个服务有多个实例,新功能发布或者旧系统重构时需要对这些实例都进行升级替换,如果出现问题了那么得及时回滚 2. 部署策略 2.1. 停机部署 - 把现有版本的服务停机,然后部署新的版本 - 优点:在部署过程中不会出现新老版本同时在线的情况,保证一致性 - 缺点

  4. 1.14 分布式系统故障historical

    1. 什么是分布式系统故障 某个节点宕机或者网络不通 2. 如何检测分布式系统故障 2.1. 心跳检测 2.2. Gossip协议检测 分布式一致性算法之Gossip.md 3. 如何处理分布式系统故障 3.1. 故障转移(Fail-Over) - A调用B,如果B出现故障,且B有其他副本,那么A转

  5. 1.15 分布式系统节点通信historical

    1. 什么是节点通信 分布式系统节点之间需要通信,交换元数据 1.1. 元数据是什么 master、slave的关系 数据的分布情况等 1.2. 元数据维护方式 一般集群中元数据的维护有两种方式 1.2.1. 集中式 由一台机器维护,master负责将信息写入这台机器,代表由zookeeper 1.

  6. 2.分布式事务historical

    1. 什么是分布式事务 - 分布式环境下的事务。 - 传统的事务是单个数据库节点的,而分布式事务则是跨多个数据库节点的,甚至是其他数据源比如Redis、MongoDB 2. 为什么需要分布式事务 传统的数据库事务只能保证单个库内的事务,跨多个库就不行了 参考数据库事务.md 3. 分布式事务使用场景

  7. 2.1 分布式事务方案之2PChistorical

    1. 2PC是什么 保证强一致性的一种分布式事务方案 2. 2PC流程 - 把事务分成两个阶段 - 第一阶段:由事务管理器向所有database发送prepare请求 - 第二阶段根据第一阶段的结果决定。 - 如果第一阶段全部响应ok那么执行第二阶段的commit; - 如果第一阶段有一个datab

  8. 2.2 分布式事务方案之TCChistorical

    1. TCC是什么 保证最终一致性的一种分布式事务方案 2. TCC流程 - TCC:Try、 Confirm、 Cancel - 把事务分成两个阶段 - 第一阶段执行Try操作,对业务检查及资源预留 - 第二阶段根据第一阶段的结果决定。 - 如果第一阶段成功则执行Confirm 做业务确认操作; -

  9. 2.3 分布式事务方案之可靠消息最终一致性historical

    1. 可靠消息最终一致性是什么 保证最终一致性的一种分布式事务方案 2. 可靠消息最终一致性流程 3. 可靠消息最终一致性的使用场景 - 适用于一些最终一致性、时间敏感度低、分布式事务只能成功不能失败的业务,比如注册送积分,登录送优惠券等 - 多个服务多个数据源且数据源可以不是DB 4. 可靠消息最

  10. 2.4 分布式事务方案之最大努力通知historical

    1. 最大努力通知是什么 保证最终一致性的一种分布式事务方案 2. 最大努力通知流程 3. 最大努力通知使用场景 - 适用于一些最终一致性、时间敏感度低、允许少量的分布式事务失败的业务,且被动方处理结果不影响主动方的处理结果,比如银行通知、支付结果通知等。 - 多个服务多个数据源且数据源可以不是DB