美文网首页工作生活
系统设计的注意事项

系统设计的注意事项

作者: circle_hyy | 来源:发表于2019-06-30 23:31 被阅读0次

服务的健壮性跟系统设计有很大关系,前期设计时考虑多一些处理逻辑,可以避免后期出现问题带来的损失以及修复问题的成本。在前期讨论设计方案时测试同学也需要参与,而不只是埋头设计用例和测试,开发同学可能因为思维局限或者思考疲劳,不一定能想到异常处理,测试同学可以利用自身优势多给一些建议。 如果等测试评审时再跟开发同学强调这些设计,或者是到测试中才发现这类问题,可能就有点迟了,因为越到后期改动代码的影响范围越大,改动的风险也越高。
1、补偿机制
业务中有一个功能,用户提交申请后要将数据回调给某个第二方系统或者是第三方系统,这时候你要考虑,如果请求失败了怎么办。重要事件的处理要记录请求情况,特别是异步请求,虽然不影响主流程,但是如果失败了又没有记录就不方便回溯,想重新发起请求也没有入口。不管是通过HTTP通信还是通过MQ进行通信,都是可以记录请求状态的:前一步成功后将状态置为待推送,推送前置为推送中(为什么先置为推送中,因为有可能结果更快回来),推送后再置为成功/失败,然后针对待推送、推送失败的记录要做定时任务来进行重试。
2、功能特性开关
假设原本交互逻辑是A直接请求B系统,后来新增了C系统作为中间处理系统,A不直接请求B了,或者是原本A请求B的方式由MQ改成了HTTP,接到这样的需求要第一时间想到做开关,即某个配置确定了业务是走方式1还是方式2的逻辑。对旧功能的大逻辑修改最好做特性开关,新功能要能兼容开关的两种方式都能正常运行。上线后,当有需求时再开启使用,功能下架时也可以直接将开关关闭,最重要的是,如果上线后出现问题不需要回滚代码,直接将开关关闭即可。这样出现问题后改动的成本和影响范围是最小的,修复问题花费的时间也是最少的。
3、请求内部系统失败
如果外部请求进来网关时,网关要先请求内部系统A,然后处理完再返回最终结果,比如外部发起注册请求,而网关要先请求信用系统判断用户资质,这时候要考虑请求信用系统失败的处理。如果将请求失败和信用系统返回失败一样处理,返回拒绝的结果给外部系统,那是不合理的,因为这属于内部系统的错误,并不是业务处理的结果。这时候应该要返回请求失败给外部系统,让外部系统自己重新发起请求进行重试。从系统的角度说,请求A系统时失败,相当于并没有进行处理,那么返回失败十分合理;从业务的角度说,虽然是我们自己的服务挂了,但是我们不能就这样把用户拒绝,我们都希望做到收益最大化,那么最好的方式当然是能把用户留住,而不是直接就把用户拒绝。
4、获取配置失败
为了更灵活地方便产品同学配置维度,而不用每次都通过改代码上线来实现,降低业务逻辑实现难度,到配置系统获取配置结果并根据结果进行相应处理是非常常见的实现方式。但是多请求一套系统就多增加一个不确定性,特别是对配置来说,需要考虑请求失败和返回的配置无法使用、有缺漏的情况如何处理,至少不应该阻塞正常流程,比如可以在请求配置失败时使用默认配置的方式降低风险。
其实这几个都是“兜底”的设计方式,遇到一个功能不要只想到正常场景,要思考可能出现的异常场景,最重要的是出现这些异常场景的处理方式,尽可能覆盖异常情况,才能做到胸有成竹地上线。

相关文章

  • 设计单位商务标编写注意事项

    设计单位商务标编写注意事项: 1、密码狗使用注意事项 ① XP系统运行 ② 开机后在插密码狗 ③ 上传的商务...

  • 如何设计消息通知系统

    消息通知系统设计注意事项 总结一下我在设计消息通知系统时候,遇到的难点与考虑到的问题,供大家参考,如有疏漏,还请多...

  • 系统设计的注意事项

    服务的健壮性跟系统设计有很大关系,前期设计时考虑多一些处理逻辑,可以避免后期出现问题带来的损失以及修复问题的成本。...

  • 2017年11月7日 星期:二 天气:小雨

    我们今天学习了可见光分系统的具体结构和设计基础要素。老师讲解了很多可见光系统的机械设计方 法和注意事项。还通过...

  • 2017年11月7日

    今天学习了可见光系统机械结构设计。老师讲解了很多可见光系统的机械设计方法和注意事项。很多经验之谈让我们这些...

  • 2018-03-01

    家用新风系统安装 家用新风安装注意事项 家用新风是一个系统工程,不仅在产品选择和设计上要严格把关,家用新风系统安装...

  • 喷淋水系统设计-注意事项

    1、管道的画法-尽量省材料,管道上体现喷淋头。 2、在支管上的喷头数量不要超过8个。以8个喷淋为上限 3、喷淋支管...

  • lesson 6 | Mobile

    ios设计 新手设计指南 注意事项 工作流程 有个设计iphone music player app交互的例子 简...

  • 2018.8.17深圳杨涛 日清

    今天上午,是集团售后服务的老师,为我们讲解有关设计,安装等方面的注意事项。空调,热水器,烟灶,水系统。非常结合我们...

  • 系统设计(八)

    1. 系统设计 什么是系统设计 系统设计需要掌握哪些知识 如何设计和实现一个后端系统服务的设计 系统设计是一个初高...

网友评论

    本文标题:系统设计的注意事项

    本文链接:https://www.haomeiwen.com/subject/rdkicctx.html