通过机制解决问题的设计原则

本文探讨了在设备间通信中出现的问题及解决方案。通过分析A、B两设备无法正常交互的情况,提出了定时重发机制来避免死锁状态。进一步讨论了引入消息中转层以提高系统的可扩展性和代码复用性。

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

  • 核心:考虑当前设计是否存在“漏洞”
  • 意图:杜绝类似问题的再次发生

案例:消息传递
例如有A设备和B设备。两个设备需要进行通信。

这里写图片描述

问题:当A设备无法收到B设备的RSP消息时,会发生什么?

当A设备无法收到RSP消息时,就无法发送ACK消息给设备B,然后两个设备的就进入了相互等待的状态。

这里写图片描述

问题:如何解决这个问题呢?

我们可以让设备B定时重发RSP消息,这样就可以避免两个设备进入死锁的状态了。

这里写图片描述

问题:但是当我们需要新增一个设备的时候,是否需要在每个设备中添加这种重发机制,这样就会使得代码的复用性不高。还有更好的办法解决这个问题吗?

解决方案二:增加消息中转层
- 负责所有设备之间通信消息的发送和接收
- 处理所有通信异常的处理(阻塞重发,报告错误,etc)

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值