2、探索分布式系统中的不可变架构

探索分布式系统中的不可变架构

1. 分布式系统的挑战

分布式系统的构建充满了困难。在日常生活中,我们在使用网站购物时,可能会看到“请勿重复点击提交”的警告,或者有些网站在点击购买按钮后会将其禁用。这其实反映了分布式系统中的一个难题,网站开发者可能没有找到解决重复收费问题的有效办法。

再比如在火车上使用移动应用保存数据时,如果火车进入隧道,应用可能会卡顿。此时我们会面临一系列问题:火车能否在应用放弃前驶出隧道?网络恢复后应用能否自行修正?还是会丢失数据需要重新输入?

对于参与分布式系统创建的人员来说,不同角色有不同的职责:
- QA 人员需要设想所有可能的场景,并在实验室中进行复现。
- 开发人员要为各种异常和竞态条件编写代码。
- 架构师则要解决可能出现的故障和缓解措施的难题。

2. 不可变解决方案

分布式系统在编写、测试和维护方面都存在困难,它们不可靠、不可预测且不安全。传统构建分布式系统的过程很可能会遗漏影响用户的缺陷,但这并非个人的过错,只要依赖人工去发现、修复和缓解这些问题,就难免会有缺陷被遗漏。

不可变的概念为解决分布式系统问题提供了新思路。简单来说,不可变就是将数据记录下来,确保其永远不会被修改、更新或删除。不可变能够解决分布式系统的问题,原因在于每个不可变对象的副本都与其他副本一样可靠。只要数据不发生变化,保持远程副本的同步就变得非常简单。

3. 不可变面临的问题

然而,不可变与计算机的实际工作方式相悖。计算机的内存是有限的,它通过修改内存位置的内容来更新内部状态。因此,在计算机上对不可变数据进行建模面临两个主要问题:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值