python 多线程 多进程 zmq_python zmq处理分布式的问题

最近手头有个任务最要是做实时数据分析的,由于数据量的庞大想到效率就想到了分布式,大体需求是不断从原始脏数据中提取自己需要的数据做分析,原始数据会不断更新,起先我的想法是用如下这种方式

zmq:1.push-->2.pull+pub--->3.sub

1.push端直接拉取源数据然后由2.pull端一次处理数据然后pub模式下发3.sub端订阅后进行实际的处理然后录入数据库,然后领导对我这个方案有了质疑,因为1到2,2再到3是逻辑上是单向的,理论上1拿数据最快,2稍慢,3最慢(因为设计到数据库操作)所以必定会造成数据堵塞,3处理数据的快慢直接影响到数据的实时性,或许3加入更多的机子会变快,但是数据阻塞的同时我2程序异常断开(守护已有)我阻塞的这部分数据肯定是丢掉了,所以又想到了应答模式,这样上端做处理就必须得到下端的应道再去处理,大致思路如下:

zmq:1.push|repreq|pull|rep|pubreq|sub

但是req|rep有个我无法处理的地方,就是如果服务端是在收到req后断掉了,还没来得及rep,客户端会处于永远等待状态,这我就死循环了,翻阅各种资料都没查到如何应对。

请有经验的大神能给我个解决方法或者我的这个思路本身就很奇葩还有更好的解决思路,因为就只看过zmq的3个模式一边摸索一边做的,烦请大家帮我看看,已经纠结死了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值