socket 属性介绍
ZMQ_SNDHWM
高水位标志也即阈值,是发送消息队列中未发送消息的最大值(0无限制),若达到此值,进入静默状态
ØMQ does not guarantee that the socket will accept as many as ZMQ_SNDHWM messages, and the actual limit may be as much as 60-70% lower depending on the flow of messages on the socket.
但socket实际能接受的消息不一定能达到最大值。
- 选项值类型 int
- 值单位 message
- 默认值 1000
- 适用socket类型 all
ZMQ_RCVHWN
接受消息队列阈值(0无限制)
- 选项值类型 int
- 值单位 message
- 默认值 1000
- 适用socket类型 all
ZMQ_AFFINITY
线程亲和性,决定哪些线程应处理新创建的连接,为0则对各线程公平处理,若非0,第1位对应线程1,第2位对应线程2,依此类推。为1有亲和。
- 选项值类型 uint64_t
- 值单位 N/A(bitmap)
- 默认值 0
- 适用socket类型 N/A
ZMQ_SUBSCRIBE
用于在ZMQ_SUB上建立一个新的消息过滤器。由于新建的ZMQ_SUB socket会过滤掉所以消息,因此必须设置该项去建立一个初始过滤器。
其值为空,则接收所以消息,若非空则接收所有以这个值为前缀的消息。
同时可在一个socket上建立多个过滤器。接收的消息至少满足一个过滤器条件。
- 选项值类型 binary data
- 值单位 N/A
- 默认值 N/A
- 适用socket类型 ZMQ_SUB
ZMQ_UNSUBSCRIBE
删除过滤器,只可删除一个过滤器。
- 选项值类型 binary data
- 值单位 N/A
- 默认值 N/A
- 适用socket类型 ZMQ_SUB
ZMQ_IDENTITY
此选项用来设置Socket的身份标识,只能用于请求/答应模式。ROUTER Socket可以根据这个身份标识来路由信息。
身份标识的长度规定在1-255 bytes. 由二进制零开头的标识符为ZMQ保留使用。
如果两个身份标识相同的Socket连接到同一个对端(ROUTER),结果行为是未定义的,因为只有一个可以连上,但不能确定是哪一个。
- 选项值类型 binary data
- 值单位 N/A
- 默认值 NULL
- 适用socket类型 ZMQ_REQ, ZMQ_REP, ZMQ_ROUTER, ZMQ_DEALER.
ZMQ_RATE
设置组播的最大发送和接收速率。
- 选项值类型 int
- 值单位 kilobits per second
- 默认值 100
- 适用socket类型 all, when using multicast transports
ZMQ_RECOVERY_IVL
设置多播恢复间隔
- 选项值类型 int
- 值单位 milliseconds
- 默认值 10000
- 适用socket类型 all, when using multicast transports
ZMQ_SNDBUF ZMQ_RCVBUF
设置底层内核发送/接收缓冲区大小
- 选项值类型 int
- 值单位 bytes
- 默认值 0
- 适用socket类型 all
ZMQ_RECONNECT_IVL
设置重连间隔
- 选项值类型 int
- 值单位 milliseconds
- 默认值 100
- 适用socket类型 all, only for connection-oriented transports
ZMQ_RECONNECT_IVL_MAX
在每次重连后重连间隔加倍,直到到达这个值,小于ZMQ_RECONNECT_IVL或为0,则按设置的固定间隔重连
- 选项值类型 int
- 值单位 milliseconds
- 默认值 0
- 适用socket类型 all, only for connection-oriented transports
ZMQ_BACKLOG
设置未连接队列的最大长度
- 选项值类型 int
- 值单位 connections
- 默认值 100
- 适用socket类型 all, only for connection-oriented transports
ZMQ_RCVTIMEO ZMQ_SNDTIMEO
设置接收/发送超时时间
- 选项值类型 int
- 值单位 milliseconds
- 默认值 -1(infinite)
- 适用socket类型 all
Others
- ZMQ_LINGER: Set linger period for socket shutdown
- ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size
- ZMQ_MULTICAST_HOPS: Maximum network hops for multicast packets
- ZMQ_IPV4ONLY: Use IPv4-only sockets
- ZMQ_DELAY_ATTACH_ON_CONNECT: Accept messages only when connections are made
- ZMQ_ROUTER_MANDATORY: accept only routable messages on ROUTER sockets
- ZMQ_XPUB_VERBOSE: provide all subscription messages on XPUB sockets
- ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option
- ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT(or TCP_KEEPALIVE on some OS)
- ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option
- ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option
- ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections