作为发布/订阅模式的一个常用场景,大数据量的组播是有必要的。虽然100k/s的数度对于zeromq实在稀松平常,不过,谁会介意更快呢。
模型图:
[img]https://github.com/imatix/zguide/raw/master/images/fig66.png[/img]
提高效率的核心在于充分利用硬件资源,比如多核的cpu,多线程即为此而生(可惜python没有)。
于是,上图的线程级模型就会变成这样:
[img]https://github.com/imatix/zguide/raw/master/images/fig67.png[/img]
需要注意的:
[list]
[*]这里需要两个i/0线程
[*]两张网卡(俩线程各用其一)
[*]这俩还得各自独占一个cpu核,其他线程(worker)根据核数确定数量,并且同时都对应两个i/o线程做连接。
[*]线程数最好不要大于cpu核数,不然,适得其反
[/list]。
额,竟然没有代码,单薄了些~
(未完待续)
模型图:
[img]https://github.com/imatix/zguide/raw/master/images/fig66.png[/img]
提高效率的核心在于充分利用硬件资源,比如多核的cpu,多线程即为此而生(可惜python没有)。
于是,上图的线程级模型就会变成这样:
[img]https://github.com/imatix/zguide/raw/master/images/fig67.png[/img]
需要注意的:
[list]
[*]这里需要两个i/0线程
[*]两张网卡(俩线程各用其一)
[*]这俩还得各自独占一个cpu核,其他线程(worker)根据核数确定数量,并且同时都对应两个i/o线程做连接。
[*]线程数最好不要大于cpu核数,不然,适得其反
[/list]。
额,竟然没有代码,单薄了些~
(未完待续)