消息队列-ZeroMQ的安装以及使用


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 

 #include 

 #include 

 #include 

 

 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
#include
#include
#include

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

你可能感兴趣的:(分布式消息队列)