我所希望的分布式服务框架

本文探讨了计算机系统从单一应用到模块化,再到分布式的发展过程。分析了各阶段带来的优势,如提高开发效率、简化测试及运维工作,并讨论了面临的挑战,例如子系统通信和分布式事务等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机系统在几十年的发展,从单一应用到单一应用模块化然后再到现阶段最火的分布式。

这种变化解决的一些问题:

1.提高开发效率
2.测试简单化
3.提高运维效率
4.优化项目管理

第一阶段:单一应用~单一应用模块化。这一阶段是什么事都在一个应用里面实现。

第二阶段:单一应用模块化~分布式。该阶段开始将不同的模块分成不同的应用,发展为分布式应用。

第一阶段解决问题
这一阶段解决部分项目开发效率,代码复用率,项目管理方面的问题。模块化的优势在于,将不同业务模块的实现代码分割开了,一个业务模块出现问题,其他业务模块不会受影响。在模块化阶段,一部分公共代码被单独提曲出来,使代码的复用率得到了一定程度的提高。用业务或其他唯独划分模块,项目管理业更加清晰。

第一阶段遇到的挑战:

1.提取公共代码:什么代码应该被做为公共的?

2.业务之间有交集:交集部分如何处理,这一部分是管理中最容易扯皮的。

3.一个模块出现问题:部署的时候整个应用被关闭。

上面提出的3个问题,我们举个简单:A业务与B业务相互依赖。

在没有模块化之前:大家的实现代码应该是A业务B业务的业务处理都在一个文件下(这个确实是这样的,经历过一家公司的系统是C实现的,所有的业务都在一个.c文件中。看到了若干个函数只有微小的区别,函数名字是这样的。methodName1,mehtodNmae2. 这个例子是代码复用的问题,修改一个地方整个系统的功能都要详细测试一遍)

模块后之后:A业务和B业务之间共用的代码可以相互引用,解决了一些问题。但是这样的方式依然感到很糟糕啊。

模块化的过程解决了:部分开发相率的问题,但是依然会存在重复开发的问题。测试同学工作比未模块化少了很多,至少改一个A模块,只会测试与A相关的模块。运维同学的效率根模块化以前一摸一样有没有。

第二阶段解决问题:
这一阶段按照业务或其他纬度将模块分为独立系统。这一阶段开发效率因为专注单一系统开发,系统考虑范围降低,开发效率提高。增加的个系统对接,联调工作,也增加了相当的工作量。测试工作,由于系统独立,考虑范围减小和较小力度的测试。分布式系统对测试工程师所关注的质量和测试粒度2个维度提供的支持是显而易见的。同样独立系统,对于运维工程师,在部署及故障处理的工作单元也是有很大的改善。管理,自己感受。

第二阶段遇到的挑战:

分布式业务系统的挑战包括且不止于下面所列内容:
1.子系统通信
2.分布式事务
3.公共资源处理

我决定狗尾了!!!!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值