为什么要使用分布式系统?

一. 分布式系统可解决的问题

1. 解决稳定性可用性问题。

2. 解决单机处理能力差问题。

 

二. 分布式系统的发展历程

1. 单体结构 

    所有代码在一个系统中,所有模块在一个应用中。 一个数据库,一个文件系统,一个应用系统。

优势:事务简单,不存在远程调用问题,不存在网络问题,适合微型系统。

问题: 一个模块有issue可能导致整个系统都不可用,可用性差,数据库压力大,性能差。

2. 垂直结构

    将系统按照业务模块分进行垂直拆分成多个系统,每个垂直子系统为一个单体结构。

优势:数据库压力得到缓解,性能得到提升。

问题:数据库表的join受到限制,存储过程实现逻辑受到限制,会有很多重复代码。

3. 分布式结构

将可复用的业务水平拆分开当做公用服务,并下层作为低层服务。

优势:抽象部分逻辑减少代码量。

问题:系统更加复杂。

4. 微服务架构

将公共的服务集合成一个系统。

三. 分布式系统成本

分布式事务问题,在多个系统中如何实现事务一致性。

不允许服务有状态,服务有多个实例运行在不同的服务器中,这些多个实例的内部是不能有中间状态的。

服务的依赖关系变得复杂,调用关系非常复杂,定位问题变得复杂,维护成本变高。

分布式会话,需要一个session管理所有的会话,不能让用户在一台机器上登录了,其他机器上没有session信息。

分布式job,定时任务不能在每台机器上都出发,应该用主从架构,只让master机器run job,master挂了选举一个master出来。

 

四. 单体架构升级到分布式架构的可能遇到的问题

1. 新功能和旧系统维护的问题 

新需求在新旧版本都开发成本高,旧bug fix在新系统中也需要fix成本高。

2. 业务完整性问题

migration 时候不知道某些功能是否有用,导致部分功能缺失。

3. 团队协作方式改变

不同的调用层,是按照功能

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值