消息队列-ZeroMQ的安装以及使用
来源:互联网 发布:定制衣柜设计软件 编辑:程序博客网 时间:2024/05/16 23:35
1.前言
最近,一方面完成上司分配的工作任务,一方面在看ZeroMQ这个东西,这个库我最早接触是在读研期间,当时为了做一些有关分布式应用使用的一段时间,ZeroMQ给我的感觉就是这个库在搭建一些基于消息的分布式架构很实用,它的最大的特点就是只需要使用几个函数调用,就能够实现一个简单的分布式系统,我当时实现了一个简单的分布式存储系统,感觉挺意思的,最近在做任务时,看着公司的游戏架构,心里面突然想起了ZeroMQ,我想如此高效的消息通讯库,如果应用在我们的服务器架构中,不知道性能会如何,于是,从网上找到了ZeroMQ指南看来起来,下面首先看看如何在Ubuntu上安装使用ZeroMQ。
2. 安装
1)首先使用指令wget http://download.zeromq.org/zeromq-4.0.3.tar.gz;
2) 使用tar -zjvx 指令来解压文件
3)./configure --prefex=/usr/local (这个路径自行配置)
4)sudo make && make install
5)sudo ldconfig
ps:在这其中可能会涉及到的创建文件权限不足的问题,这是使用root的账号来修改部分路径的访问修改权限
3. 简单的使用案例
//Hello World client // #include <zmq.h> #include <string.h> #include <stdio.h> #include <unistd.h> int main (void){ void *context = zmq_init (1); printf ("Connecting to hello world server…\n"); void *requester = zmq_socket (context, ZMQ_REQ); zmq_connect (requester, "tcp://localhost:5555"); int request_nbr; for (request_nbr = 0; request_nbr != 10; request_nbr++) { zmq_msg_t request; zmq_msg_init_size (&request, 5); memcpy (zmq_msg_data (&request), "Hello", 5); printf ("Sending Hello %d…\n", request_nbr); zmq_send (requester, &request, 0); zmq_msg_close (&request); zmq_msg_t reply; zmq_msg_init (&reply); zmq_recv (requester, &reply, 0); printf ("Received World %d\n", request_nbr); zmq_msg_close (&reply); } zmq_close (requester); zmq_term (context); return 0; }
//Hello world server//#include<zmq.h>#include<unistd.h>#include<string.h>#include<stdio.h>int main(){ void* context = zmq_init(1); void* responser = zmq_socket(context,ZMQ_REP); zmq_bind(responser,"tcp://*:5555"); while(1) { zmq_msg_t request; zmq_msg_init(&request); zmq_msg_recv(&request,responser,0); printf("Received Hello\n"); zmq_msg_close(&request); sleep(1); zmq_msg_t reply; zmq_msg_init_size(&reply,5); memcpy(zmq_msg_data(&reply),"world",5); zmq_msg_send(&reply,responser,0); zmq_msg_close(&reply); } zmq_close(responser); zmq_ctx_destroy(context); return 0;}
4. window 安装ZeroMQ 在windows下安装ZeroMQ需要到官网上下载最新版本的ZeroMQ源码,然后解压缩并使用VS2010或2012进行编译,其中需要将其编译成库文件的形式,然后将其导入到你的工程项目中,这个里面容易出现问题的地方是没有将include的文件导入,之后方可运行简单实例看是否会报错,如果报错请查看相应的ZeroMQ库文件以及头文件是否包含在工程项目中,在此,我表示ZeroMQ有些协议在windows下并不支持,所以想学习ZeroMQ的,我建议还是选用Linux
- 消息队列-ZeroMQ的安装以及使用
- gozmq的安装与使用教程(zeromq分布式消息队列+golang)
- 为什么使用ZeroMQ作为消息队列
- ZeroMQ,史上最快的消息队列
- ZeroMQ-史上最快的消息队列
- ZeroMQ消息队列技术研究
- 消息队列ZeroMQ实践
- 开源ZeroMQ消息队列
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
- 关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
- RabbitMq 消息队列的安装、使用 、原理
- 消息队列ActiveMQ的安装与使用
- 消息中间件ZeroMQ+jzmq在centos上的安装调试
- 消息队列与 ActiveMQ, RabbitMQ,ZeroMQ 等
- 消息队列的使用
- 2013总结
- setlocale函数解析
- AS3.0编程 So本地数据存储(“超级cookies”)--AS3:Local SharedObject
- rm用法之 删除除了某个文件之外的所有文件, extglob enable
- Linux系统下图形界面与命令行模式的切换
- 消息队列-ZeroMQ的安装以及使用
- centos 系统挂载操作
- C++赋值操作符与析构函数
- Apache MINA 2.0 用户指南
- Spring RMI客户端读超时设置
- acmclub 1028行车路程
- Win7远程桌面连接设置关键点
- 设计模式-结构型模式总结实例(一)
- Selenium - How to find the element in iframe