【厚积薄发系列】C++项目总结9—ZeroMQ消息队列入门及分布式系统中应用(一)

理论背景:

MQ:消息队列是分布式系统中很重要的中间件。主要用于解决模块解耦,异步消息,流量销峰等问题。

类型:消息队列种类业界比较多,常用的有ZeroMQ、RabbitMQ、RocketMQ等等。

这里不逐一列举了,直奔今天的主题ZeroMQ。本系列将从纯代码的角度先讲ZeroMQ基本使用,再到最终使用ZeroMQ完成一个简单分布式计算系统,最后再理论总结。

具体实现:

ZeroMQ的三种基本模式:请求-应答模式;发布-订阅模式;管道模式。(ZeroMQ第三方库文件可以网上下载或者需要的留言)

1、请求应答模式。

不管是啥网络库,网络的通信的本质,无非就是下面两点:

服务端a、创建socket;b、监听指定端口;d、接收/发送数据

客户端a、创建socket;b、绑定(IP地址、端口) c、连接; d、接收/发送数据

服务端核心程序:

首先要创建上下文:                                                               

创建socket,第二个参数设置模式ZMQ_REP(应答模式)、绑定指定端口、接收/发送数据:

void *context = zmq_ctx_new ();     
void *responder = zmq_socket (context, ZMQ_REP);
int rc = zmq_bind (responder, "tcp://*:5555");   
char buffer [10];                                                                              
zmq_recv (responder, buffer, 10, 0);                                                                                                                                 
zmq_send (responder, "ZeroMQ!", 100, 0);  

客户端核心程序类似:

创建上下文、创建socket(设置请求模式)、连接服务器、接收/发送数据

void *context = zmq_ctx_new ();                                                                    
void *requester = zmq_socket (context, ZMQ_REQ);                                                                                                    
zmq_connect (requester, "tcp://127.0.0.1:5555");       
char buffer [10];                                                                              
zmq_recv (responder, buffer, 10, 0);                                                                                                         

zmq_send (responder, "lujiang", sizeof(buffer), 0);  

(未完待续,下一篇见!)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值