1、zmq_proxy(3)

1.1 名称

  zmq_proxy - 开始内置ZMQ代理

1.2 概要

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

1.3 描述

  zmq_proxy()函数在当前应用程序线程中启动内置的ZMQ代理。

  代理将前端套接字连接到后端套接字。从概念上讲,数据从前端流向后端。根据套接字类型的不同,回复可能会以相反的方向流动。方向只是概念上的;代理是完全对称的,前端和后端没有技术上的区别。

  在调用zmq_proxy()之前,您必须设置任何套接字选项,并连接或绑定前端和后端套接字。这两种传统的代理模式是:

  zmq_proxy()在当前线程中运行,并且仅在当前上下文关闭时返回。

  如果捕获套接字不是NULL,则代理应将在前端和后端收到的所有消息发送到捕获套接字。捕获套接字应该是ZMQ_PUB,ZMQ_DEALER,ZMQ_PUSH或ZMQ_PAIR套接字。

  有关可用套接字类型的说明,请参阅zmq_socket(3)。

1.4 用法示例

1.4.1 共享队列

  当前端是一个ZMQ_ROUTER套接字,并且后端是一个ZMQ_DEALER套接字时,代理服务器将作为一个共享队列来收集来自一组客户端的请求,并在一组服务中公平地分配这些请求。 请求应从前端连接公平排队并均匀分布在后端连接中。 回复将自动返回到发出原始请求的客户端。

1.4.2 转发

  当前端是一个ZMQ_XSUB套接字,并且后端是一个ZMQ_XPUB套接字时,该代理将作为一个消息转发器来收集来自一组发布者的消息,并将这些消息转发给一组订阅者。 这可以用来桥接网络传输,例如, 阅读tcp://并在pgm://上转发。

1.4.3 流

  当前端是ZMQ_PULL套接字,后端是ZMQ_PUSH套接字时,代理服务器应从一组客户端收集任务并使用管道模式将这些任务转发给一组工作人员。

1.4.4 返回值

  zmq_proxy()函数始终返回-1,并将errno设置为ETERM(与任一指定套接字关联的ZMQ上下文已终止)。

2、zmq_proxy_steerable()

2.1 名称

  zmq_proxy_steerable - 内置带控制流的ZMQ代理

2.2 概要

  int zmq_proxy_steerable(const void * frontend,const void * backend,const void * capture,const void * control);

2.3 描述

  zmq_proxy_steerable()函数在当前应用程序线程中启动内置的ZMQ代理,如zmq_proxy()所做的那样。请参阅此功能的一般说明和用法。我们在这里只描述由作为第四个参数“control”传递的套接字提供的附加控制流。

  如果控制套接字不是NULL,则代理支持控制流。如果在此套接字上收到PAUSE,代理将暂停其活动。如果收到RESUME,它会继续。如果接收到TERMINATE,它将顺利终止。在开始时,代理正常运行,就像使用zmq_proxy一样。

  如果控件套接字为NULL,则该函数的行为与调用zmq_proxy时的行为完全相同。

  有关可用套接字类型的说明,请参阅zmq_socket(3)。有关zmq_proxy的说明,请参阅zmq_proxy(3)。

2.4 用法示例

  比较zmq_proxy

2.5 返回值

  如果将TERMINATE发送到其控制套接字,则zmq_proxy_steerable()函数返回0。否则,它返回-1,并将errno设置为ETERM(与任一指定套接字关联的ZMQ上下文已终止)。

ZeroMQ API(六) 代理的更多相关文章

  1. ZeroMQ API(一) 总序

    序 zeromq是一个轻量级的消息库.它扩展了标准的套接字接口,其特性与传统的消息中间件不同,zeromq提供异步消息队列.多消息传递模式.消息过滤(订阅).无缝访问多个传输协议等的抽象. 本系列AP ...

  2. ZeroMQ API(三) 消息

    1.初始化消息 1.1 zmq_msg_init(3) 1.1.1 名称 zmq_msg_init - 初始化空的ZMQ消息 1.1.2 概要 int zmq_msg_init(zmq_msg_t * ...

  3. JS 设计模式六 -- 代理模式

    概念 为一个对象提供一个代用品或占位符,以便控制对它的访问. 当客户不方便直接访问一个对象的时候,需要提供一个替身对象来控制对这个对象的访问. 替身对象对请求做出一些处理之后, 再把请求转交给本体对象 ...

  4. Spring Boot 2.x 编写 RESTful API (六) 事务

    用Spring Boot编写RESTful API 学习笔记 Transactional 判定顺序 propagation isolation 脏读 不可重复读 幻读 不可重复读是指记录不同 (upd ...

  5. ZeroMQ API(七) 安全

    1.无安全性:zmq_null(7) 1.1 名称 zmq_null - 没有安全性或机密性 1.2 概要 NULL机制由ZMTP 3.0规范定义:http://rfc.zeromq.org/spec ...

  6. ZeroMQ API(五) 传输模式

    1.使用TCP的单播传输:zmq_tcp(7) 1.1 名称 zmq_tcp - 使用TCP的ZMQ单播传输 1.2 概要 TCP是一种无处不在,可靠的单播传输.当通过具有ZMQ的网络连接分布式应用程 ...

  7. ZeroMQ API(四) 套接字

    1.创建一个套接字 1.1 zmq_socket(3) 1.1.1 名称 zmq_socket - 创建ZMQ套接字 1.1.2 概要 void * zmq_socket(void * context ...

  8. ZeroMQ API(二) 上下文

    1.创建上下文 1.1 zmq_ctx_new(3) 1.1.1 名称 zmq_ctx_new - 创建新的ZMQ上下文 1.1.2 概要 void * zmq_ctx_new(); 1.1.3 描述 ...

  9. 天气预报API(六):中国气象频道、腾讯天气--“新编码”接口的测试

    说明 本文所有测试均以青岛为例. 本文所列接口城市代码(cityid)参数都使用的 "新编码": 全国城市代码列表(新) 本文接口均不是官方接口,仅供测试使用! 腾讯天气 空气质量 ...

随机推荐

  1. java thread start() 和 run() 区别

    1.start() public static void main(String[] args) { // TODO 自动生成的方法存根 Thread t = new Thread() { publi ...

  2. AVL树/线索二叉树

    此文转载: http://www.cnblogs.com/skywang12345/p/3577360.html AVL树是一棵特殊的高度平衡的二叉树,每个节点的两棵子树高度最大差为1.所以在每次的删 ...

  3. JAVA自学日记——Part Ⅰ.

    和C++比较相似,Java同样是面向对象的设计语言,在基础的语句上有一些不大的差别,经过两天的学习,大概的了解了在eclipse中如何进行简单的编程,解决一些简单的问题,诸如在学习C时做过的“字符串倒 ...

  4. 29_Java_数据库_第29天(JDBC、DBUtils)_讲义

    今日内容介绍 1.JDBC 2.DBUtils 01JDBC概念和数据库驱动程序 * A: JDBC概念和数据库驱动程序 * a: JDBC概述 * JDBC(Java Data Base Conne ...

  5. String 类 常用函数

    构造方法摘要: String(byte[] bytes)           通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String. String(char[] value) ...

  6. SQL Server学习记录之获取每月每季度每年第一天和最后一天

    DECLARE@dtdatetime SET@dt=GETDATE() DECLARE@numberint --1.指定日期该年的第一天或最后一天 --A. 年的第一天 SELECTCONVERT() ...

  7. Python基础:Python函数、文件操作、递归

    函数参数 函数参数包括位置参数,关键字参数,动态参数(*args, **args)三种. 传参的过程是形式参数的赋值. *args传入的参数是元组形式,**args传入的参数是字典形式. 示例代码如下 ...

  8. 二叉树 Java 实现 前序遍历 中序遍历 后序遍历 层级遍历 获取叶节点 宽度 ,高度,队列实现二叉树遍历 求二叉树的最大距离

    数据结构中一直对二叉树不是很了解,今天趁着这个时间整理一下 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显 ...

  9. SGU438_The Glorious Karlutka River =)

    好题,有一些人在河的一边,想通过河里的某些点跳到对岸去.每个点最多只能承受一定数量的人,每人跳跃一次需要消耗一个时间.求所有人都过河的最短时间. 看网上说是用了什么动态流的神奇东东.其实就是最大流吧, ...

  10. Spring(2):Spring Ioc

    1.下载spring-framework-3.2.0 完整包下载路径: https://repo.spring.io/webapp/#/artifacts/browse/tree/Properties ...