Your SlideShare is downloading. ×
0
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
ZeroMQ简介
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ZeroMQ简介

5,019

Published on

简介,与 thrift/protobuf 的关系, 基本玩法, 部分参考

简介,与 thrift/protobuf 的关系, 基本玩法, 部分参考

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,019
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
83
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. ZeroMQ(ØMQ)简介 高效的并发、 步通信框架
    • 2. 什么是 ØMQ• ØMQ 看起来是一个网络库,实际是一个并发框架。• 它提供的 Socket,支持在进程内、进程间、或通过TCP、组播传递,提供以一 条完整消息为单位的传输接口。• 你可以用不同模式进行N:N的连接,这些模式包括fanout、pub-sub、任务分发 和请求响应。• 它非常快,可以胜任构建集群产品的工作。• 它的 步模型可以让你的应用 步处理消息,利用多处理器架构的并发能 力。• 它提供了多 语言的API,并可以运行在大多数的操作系统上。• ØMQ由iMatrix 发,并在LGPL许可下 源。 译自官方文档 zguide 的“ØMQ in a Hundred Words” http://zguide.zeromq.org/page:all#-MQ-in-a-Hundred-Words
    • 3. ZMQ 与 Thrift, Protobuf• ZMQ 是底层传输库 • ZMQ 解决 1:N 乃至 N:N的高效通信 • ZMQ 支持 PUSH/PULL, PUB/SUB, REQ/REP 等模式 • ZMQ 不解决序列化问题• Thrift 是序列化 + 跨语言通信库 • Thrift 支持跨语言的 杂数据结构的序列化与反序列化 • Thrift 的底层传输(Protocol)是可插拔的 • Thrift 的底层传输是以 RPC 的点到点通信为主的• 有尝试在 Thrift 下面,用 ZMQ 作为传输 Protocol 的,但更多的用法是和 Protobuf 混用
    • 4. ZMQ 中的模式 类繁多的玩法
    • 5. 简洁的代码(一)• N:N PUSH/PULL 模 型,数据源• 先初始化一个zmq socket• 用这个socket连接所有 worker• 生成任务、发送消息
    • 6. 简洁的代码(二)• N:N PUSH/PULL 模 型,接收端• 初始化一个zmq socket• bind 从命令行得到的字 符串• 接收消息,干活
    • 7. 运行上述代码• 编译 gcc -o zsource -lzmq p_source.c gcc -o zsink -lzmq p_sink.c• 启动接收进程 ./zsink tcp://*:5001 > log.1 & ./zsink tcp://*:5002 > log.2 & ./zsink tcp://*:5003 > log.3 &• 始发送 ./zsource 1 tcp://localhost:5001 tcp://localhost:5002 tcp://localhost:5003 & ./zsource 2 tcp://localhost:5001 tcp://localhost:5002 tcp://localhost:5003 & ./zsource 3 tcp://localhost:5001 tcp://localhost:5002 tcp://localhost:5003 & ./zsource 4 tcp://localhost:5001 tcp://localhost:5002 tcp://localhost:5003 &
    • 8. 参考• 官方文档(zguide): http:// zguide.zeromq.org/page:all• Github 仓库: https://github.com/zeromq/ zeromq2-x• 云风的介绍: http://blog.codingnow.com/ 2011/02/zeromq_message_patterns.html
    • 9. 谢谢

    ×