狠狠撸
Submit Search
窜别谤辞惭蚕介绍
?
Download as KEY, PDF
?
12 likes
?
2,662 views
Xu Wang
Follow
介绍,与 thrift/protobuf 的关系, 基本玩法, 部分参考
Read less
Read more
1 of 9
Download now
More Related Content
窜别谤辞惭蚕介绍
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.
谢谢
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
Download