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") == );
assert (zmq_bind (backend, "tcp://*:5556") == );
// 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 : fengbohello@qq.com

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

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

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

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

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  3. Day5 函数递归,匿名、内置行数,模块和包,开发规范

    一.递归与二分法 一.递归 1.递归调用的定义 递归调用:在调用一个函数的过程中,直接或间接地调用了函数本身 2.递归分为两类:直接与间接 #直接 def func(): print('from fu ...

  4. 学习Python函数笔记之二(内置函数)

    ---恢复内容开始--- 1.内置函数:取绝对值函数abs() 2.内置函数:取最大值max(),取最小值min() 3.内置函数:len()是获取序列的长度 4.内置函数:divmod(x,y),返 ...

  5. Python函数04/生成器/推导式/内置函数

    Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...

  6. 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_ ...

  7. 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 - 终 ...

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

    ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_null zmq_null(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_null - 无 ...

  9. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

随机推荐

  1. 在Application中集成Microsoft Translator服务之使用http获取服务

    一.创建项目 首先我们来创建一个ASP.NET Application 选择时尚时尚最时尚的MVC,为了使演示的Demo更简单,这里选择无身份验证 二.创建相关类 项目需要引入之前两个类AdmAcce ...

  2. Zookeeper的安装和使用

    首先在Zookeeper官网下载最新版本,下载后解压到用户目录下. tar -zxvf zookeeper-3.4.8.tar.gz 重命名conf目录下zoo_sample.cfg文件为zoo.cf ...

  3. VBA笔记(二)——基础语法

    数据类型 VBA提供了15种标准数据类型,具体见下表: 变量 Sub 变量学习() 'Dim 变量名 As 数据类型 Dim str1 As String '声明定长的String变量 '使用变量类型 ...

  4. Java牛人

    Java领域有很多著名的人物,他们为Java社区编写框架.产品.工具或撰写书籍改变了Java编程的方式.本文是<最受欢迎的8位Java牛人>的2.0版本. PS:排名不分先后.本文的信息整 ...

  5. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  6. MySQL关键字

    MySQL关键字 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL ...

  7. IIS 输入地址 目录浏览

  8. 一次dell R420 电源故障引发的“血案”

    说“血案”有写夸张了,其实是也就熬了一夜的通宵,做运维的伤不起啊,作为一名运维工程师,像这种服务器突发故障半夜起床的情况属于家常便饭,见怪不怪了,开始说正事: 前几天半夜12点左右,收到服务器宕机的消 ...

  9. OC编程之道-创建对象之原型模式

    一 什么是原型模式?(what) 有些对象的创建代价过大或过于复杂,要是可以重建相同的对象并作轻微的改动,事情会容易的多(效率变高).典型的例子是复制组合结构(eg树形结构),从零开始构建一个树型组合 ...

  10. Ubuntu配置svn

    http://www.cnblogs.com/arrongao/archive/2013/03/30/linux_svn.html