- 主题:boost/asio的协程调试非常麻烦,有没什么法子
那么复杂,报错就不意外了,建议简化逻辑。
【 在 ylh0315 的大作中提到: 】
: 现成的框架,异步失败就是失败。我的框架,异步失败就改同步,尽可能保证IO完成。
--
FROM 171.221.52.*
是没几句话,但你在上万并发的纤程里用同步IO,你自己品。
【 在 ylh0315 的大作中提到: 】
: 逻辑很简单,异步失败,设置成同步继续IO,没几句话。
--
FROM 171.221.52.*
每个同步IO会阻塞一条线程的所有协程,所以全部线程/协程被阻塞的概率是存在的。
【 在 ylh0315 的大作中提到: 】
: 没问题。系统可以承担少量同步过程。
: 失败毕竟是极少数。
--
FROM 171.221.52.*
总之你这个模型被DoS的代价比较低,所以我建议你简化。
【 在 ylh0315 的大作中提到: 】
: 是的,但是,我的是多线程协程。线程协程之间没有绑定关系。最多就是退化成线程池模式。就是系统没有改造升级的状态呗。
--
FROM 171.221.52.*
更好的方案是将异步IO失败的链接从处理中移除,放在单独的线程/协程里排队做同步IO重试,这样它们只会阻塞自己,不会影响主要工作线程。
【 在 ylh0315 的大作中提到: 】
: 这个早有考虑。
: 协程有限,呼叫成功一个分配一个。
: DDOS一般是无协议呼叫,不符合既有的协议,在对协议的过程中就被踢了。不会为它分配协程。已有的协程继续工作,基本不受影响。
: ...................
--
FROM 171.221.52.*