史上最快消息内核——ZeroMQ总体架构解析.docxVIP

  • 34
  • 0
  • 约小于1千字
  • 约 1页
  • 2022-06-30 发布于上海
  • 举报

史上最快消息内核——ZeroMQ总体架构解析.docx

史上最快消息内核——ZeroMQ 总体架构解析 ZMQ (ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。 ZeroMQ 几乎所有的 I/O 操作都是异步的,主线程不会被阻塞。ZeroMQ 会根据用户调用 zmq_init 函数时传入的接口参数,创建对应数量的I/O Thread。每个 I/O Thread 都有与之绑定的 Poller,Poller 采用经典的 Reactor 模式实现,Poller 根据不同操作系统平台使用不同的网络 I/O 模型(select、poll、epoll、devpoll、kequeue 等)。想了解更多关于 ZMQ 的知识么?快来南京宝云官网看看! 主线程与 I/O 线程通过 Mail Box 传递消息来进行通信。Server 开始监听或者Client 发起连接时,在主线程中创建 zmq_connecter 或zmq_listener,通过 Mail Box发消息的形式将其绑定到 I/O 线程,I/O 线程会把 zmq_connecter 或 zmq_listener 添加到 Poller 中用以侦听读/写事件。 Server 与 Client 在第一次通信时,会创建 zmq_init 来发送 identity,用以进行认证。认证结束后,双方会为此次连接创建 Session,以后双方就通过 Session 进行通信。每个 Session 都会关联到相应的读/写管道, 主线程收发消息只是分别从管道中读/写数据。Session 并不实际跟 kernel 交换 I/O 数据,而是通过 plugin 到 Session 中的 Engine 来与 kernel 交换 I/O 数据。

文档评论(0)

1亿VIP精品文档

相关文档