您的位置:首页 > 运维架构 > 网站架构

CZMQ之可靠的请求-应答模式

2017-12-11 10:55 169 查看
ZMQ多种架构:

懒惰海盗模式:

1,确认信号到达,轮询套接字并接收应答;

2,超时没有应答,重新发送请求;

3,多次请求后没有应答,放弃事务.

代码见:lpclient.c

缺点:不能执行到备份或备份服务器的故障切换.

简单海盗模式:

一个工人崩溃,另一个工人接管它,最终工人都崩溃.

需要重启工人和客户端.

代码见spqueue.c和spworker.c

偏执海盗模式:(健壮的可靠队列)

多个worker,客户端依次路由每个workers.

客户 客户 客户

|———|———|

|

ROUTER

|

|———|———|

worker worker worker

其中一个worker崩溃,客户端请求会自动路由到下一个worker,继续完成自己的请求.

可以自动检测有几个worker存活.

int worknum = zlist_size (workers);

worker_t worker = (worker_t ) zlist_first (workers);

while (worker)

{

获取worker->identity发送给worker

worker = (worker_t *) zlist_next (workers);

}

主要参考zguide/examples/C中ppworker.c和ppqueue.c.

在一定条件下,自动路由这一优点保证了客户端请求一定可以得到应答的特点.对于大数据量的数据也可以进行拆分处理,并且不会因为一个死机而导致该次处理失败.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 故障 架构