消息队列-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

1 0