ZeroMQ接口函数之 :zmq_proxy – 开始ZMQ内置代理

ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-proxy

zmq_proxy(3)             ØMQ Manual - ØMQ/4.1.0

Name

zmq_proxy – 开始ZMQ内置代理

Synopsis

int zmq_proxy (const void *frontend, const void *backend, const void *capture);

Description

zmq_proxy()函数在当前线程内开始ZMQ内置代理。

代理将一个前端socket连接到一个后端。一般来说,数据会从前端流向后端。根据socket的类型,数据可能向相反的方向流动。方向指示概念上的;代理是完全对称的,在技术上前端和后端没有什么区别。

在调用zmq_proxy()函数之前,你最好把该设置的socket属性都设置了,并且前端和后端都要进行连接或绑定。这两个传统的代理模式是:

zmq_proxy()函数在当前的线程空间中运行,并且只有在当前使用的context被关闭之后才会返回。

如果捕捉到的socket不是NULL,代理会发送从前端和后端接收到的所有消息给捕捉到的socket。获取的socket的类型应该是ZMQ_PUB、ZMQ_DEALER、ZMQ_PUSH、ZMQ_PAIR。

参见zmq_socket(3)函数获取socket类型更详细的说明。

Example  usage

  共享队列

  当前端是一个ZMQ_ROUTER类型的socket,并且后端是一个ZMQ_DEALER类型的scoket的时候,代理会扮演一个共享队列的角色,从许多的客户端接收消息,并且把这些消息公平的分发到服务端。这些请求会被前端公平的放置在队列里进行接收,并通过后端进行均衡的分发。回复会自动的返回给原始的请求者。

  Forwarder

  当前端是一个ZMQ_XSUB类型的socket,并且后端是ZMQ_XPUB类型的socket的时候,代理会扮演一个运送者的角色。从大量的分发者中手机消息,并把这消息发送给一批订阅者。这可以被用于桥接传输模式。更多信息请参见tcp://和pgm://。

  Streamer

  当前端是ZMQ_PULL类型的socket,后端是ZMQ_PUSH类型的消息时,代理会从一批客户端手机消息并发送给一批使用管道传输模式的工作端。

Return value

zmq_proxy()函数只会返回 -1,并且设置errno的值为ETERM(ZMQ context被关闭了或者任何一个给定的socket被关闭了)。

Example

  创建一个共享队列代理

//  Create frontend and backend sockets
void *frontend = zmq_socket (context, ZMQ_ROUTER);
assert (backend);
void *backend = zmq_socket (context, ZMQ_DEALER);
assert (frontend);
//  Bind both sockets to TCP ports
assert (zmq_bind (frontend, "tcp://*:5555") == 0);
assert (zmq_bind (backend, "tcp://*:5556") == 0);
//  Start the queue proxy, which runs until ETERM zmq_proxy (frontend, backend, NULL);

See also

zmq_bind(3)  zmq_connect(3)  zmq_socket(3)  zmq(7)

Authors

This page was written by the ØMQ community. To make a change please read the ØMQ Contribution Policy at http://www.zeromq.org/docs:contributing.

Web site design and content is copyright (c) 2007-2012 iMatix Corporation. Contact us for professional support. Site content licensed under the Creative Commons Attribution-Share Alike 3.0 License. ØMQ is copyright (c) Copyright (c) 2007-2012 iMatix Corporation and Contributors. ØMQ is free software licensed under the LGPL. ØMQ, ZeroMQ, and 0MQ are trademarks of iMatix Corporation. Terms of Use — Privacy

Policy

更多 ZeroMQ API :http://www.cnblogs.com/fengbohello/p/4230135.html

翻译:风波

mail : [email protected]

时间: 2024-12-10 16:43:14

ZeroMQ接口函数之 :zmq_proxy – 开始ZMQ内置代理的相关文章

ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议

ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ————————————————————————————————————— ZeroMQ 官方地址:http://api.zeromq.org/3-2:zmq-ipc zmq_ipc(7)          ØMQ Manual - ØMQ/3.2.5 Name zmq_ipc – ZMQ本地进程间通信传输协议 Synopsis 进程间传输采用与系统相关的IPC机制进

ZeroMQ接口函数之 :zmq_proxy_steerable – 以STOP/RESUME/TERMINATE控制方式开启内置的ZMQ代理

ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ————————————————————————————————————— ZeroMQ 官方地址:http://api.zeromq.org/4-1:zmq-proxy-steerable zmq_proxy_steerable(3)      ØMQ Manual - ØMQ/4.1.0 Name zmq_proxy_steerable – 以STOP/RESUM

ZeroMQ接口函数之 :zmq_term - 终结ZMQ环境上下文(context)

ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_term zmq_term(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_term - 终结ZMQ环境上下文(context) Synopsis int zmq_term (void *context); Description zmq_term()函数将终结环境上下文context. 函数 zmq_ctx_term() 会销毁ZMQ环境上下文context. 环境上下文的终止过程会按下

ZeroMQ接口函数之 :zmq_ctx_term - 终结一个ZMQ环境上下文

ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_ctx_term zmq_ctx_term(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_ctx_term - 终结一个ZMQ环境上下文 Synopsis int zmq_ctx_term (void *context); Description 函数 zmq_ctx_term() 会销毁ZMQ环境上下文context. 环境上下文的终止过程会按下列步骤进行: ● 当在前进程中,对基于c

ZeroMQ接口函数之 :zmq_null - 无安全和加密

ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_null zmq_null(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_null - 无安全和加密 Synopsis NULL机制在ZMQ RFC文档ZMTP 3.0中进行了定义.http://rfc.zeromq.org/spec:23 这是ZMQ socket的默认安全机制. See also zmq_plain(7)  zmq_curve(7)  zmq(7) Authors T

python函数(6):内置函数和匿名函数

我们学了这么多关于函数的知识基本都是自己定义自己使用,那么我们之前用的一些函数并不是我们自己定义的比如说print(),len(),type()等等,它们是哪来的呢? 一.内置函数 由python内部定义好我们可以直接调用的函数就叫内部函数.python一共给我们68个内置函数: abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() as

五、python函数、装饰器、内置函数、json及模块

一.递归调用 1.一个函数自己调用自己就是递归调用,最多一个函数递归调用自己999次,超过就会出错2.递归必须有一个明确的结束条件3.每次进入更深一层递归时,问题规模相比上次递归都应有所减少4.递归效率不高,少用递归 eg:def test1(): num = int(input('please enter a number:')) if num%2==0:#判断输入的数字是不是偶数 return True #如果是偶数的话,程序就退出了,返回true print('不是偶数请重新输入!') r

python函数六(生成器,内置函数)

一.生成器 生成器三种方式: 1)生成器函数 2)数据转化 def gener(): print(111) yield 222 print(333) count = yield 444 print(count) print(555) yield 666 g = gener() print(g) # print(list(g)) print(g.__next__()) print(g.__next__()) print(g.send('asd')) print(list(g)) # 输出结果: #

pythone函数基础(8)内置函数学习

内置函数学习# sorted# map# filter# max# sum# round# chr# ord# dir# bool# eval# exec# zipimport mathres = max([1,2,3,4])res = sum(range(1,101))# print(chr(66)) #把数字转成对应ascii码表里面对应的值# print(ord('A')) #把字母转成对应ascii码表里面对应的数字# sum_num = 0# for i in range(1,101)