最近项目中接触到ZeroMQ, 内部实现挺复杂的,没时间深入了解,简单记录下使用方法吧,有时间会来填坑。 官方指导文档http://zguide.zeromq.org/page:all
项目主要用ZeroMQ在多个ip主机上的服务间进行项目通信,直接用scoket也可以实现,但比较费时费力,ZeroMQ建立在socket的基础上,提供了一套更加简单强大的API,可以快速搭建起跨进程,跨ip等的通信网络。很多文章中都提到了socket只能实现一对一的通信,ZeroMQ可以实现多对多的连接,而且有三种模式供选择,可以根据业务需要,进行选择和使用。
ZeroMQ的三种通信模式分别是:Request-Reply, Publisher-subscriber, Parallel Pipeline
python安装zmq模块:pip install pyzmq
1. Request-Reply(应答模式)
应答模式特点:
1. 客户端提出请求,服务端必须回答请求,每个请求只回答一次
2. 客户端没有收到答复前,不能再次进行请求
3. 可以有多个客户端提出请求,服务端能保证各个客户端只接收到自己的答复
4. 如果服务端断掉或者客户端断掉会产生怎样的影响?
如果是客户端断掉,对服务端没有任何影响,如果客户端随后又重新启动,那么两方继续一问一答,但是如果是服务端断掉了,就可能会产生一些问题,这要看服务端是在什么情况下断掉的,如果服务端收是在回答完问题后断掉的,那么没影响,重启服务端后