zmq是基于tcp实现的吗_zmq模块的理解和使用

最近项目中接触到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. 如果服务端断掉或者客户端断掉会产生怎样的影响?

如果是客户端断掉,对服务端没有任何影响,如果客户端随后又重新启动,那么两方继续一问一答,但是如果是服务端断掉了,就可能会产生一些问题,这要看服务端是在什么情况下断掉的,如果服务端收是在回答完问题后断掉的,那么没影响,重启服务端后࿰

你可能感兴趣的:(zmq是基于tcp实现的吗)