如何构建并发系统

本文简单说明几个设计并发系统时需要考虑的问题,内容摘抄自《GO语言并发之道》

异常传递

异常是什么,什么时候发生,提供了哪些好处

首先,异常需要传达几个关键信息:

  1. 发生了什么:
    这部分异常信息包括了岁异常时间的描述。例如:磁盘已满,连接被重置,证书过期等
  2. 发生在什么时间,什么位置:
    异常应该包含完整的轨迹信息,从调用的启动方式开始,已异常的实例结尾。栈轨迹信息不应该被包含在异常信息中,但当需要处理栈中的异常时应该很容易被找到
  3. 对用户友好的信息:应当对展现给用户的信息进行自定义,应该只包含前两点的概述以及相关信息。对用户友好的信息是从用户的角度出发,给出一些信息,说明这些信息是否是暂时的,并且最好是一行以内的文本
  4. 告诉用户如何获取更多信息:某些情况下,用户希望知道当异常发生时具体发生了那些故障,展示给用户的异常信息应该提供一个id,利用这个id可以查到对应的详细日志,日志应该包含有完整的信息(异常的发生时间和异常时的堆栈调用)

当展示给用户的信息不包含这些信息,不是出错了就是有BUG。所以异常可以分为两类:

  • BUG
  • 已知信息

超时和取消

为什么要支持超时?
系统饱和

如果系统已经饱和(已经达到系统处理请求的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值