使用VS 2010编译RabbitMQ的c库

原创
2017/08/02 16:07
阅读数 338

使用VS 2010编译RabbitMQ的c库

环境准备

生成VS 2010工程文件

  • 启动CMake GUI程序 输入图片说明
  • 点击Configure按钮
  • 在出现的IDE选择器中,选择VC 2010
  • 如果出现错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    • 进入VC的bin目录,将cvtres.exe文件改名,再次点击Configure
  • 如果出现错误:SSL库找不到之类的
    • 将UI上出现的ENABLE_SSL_SUPPORT设置为DISABLE
  • 当Configure正确后,再点击Generate,将会生成VC 2010的工程文件

用VC 2010打开工程

  • 生成的文件结构如下 输入图片说明
  • 用VC2010打开工程文件后,如下 输入图片说明
  • 在VC中,按F7,全部编译
  • 正常会编译通过

生成库说明

  • rabbitmq-c/build/librabbitmq/Debug/rabbitmq.4.dll 动态链接库
  • rabbitmq-c/build/librabbitmq/Debug/rabbitmq.4.lib 静态链接库

测试

  • CMD命令行,进入 rabbitmq-c/build/example/Debug目录
  • amqp_listen.exe localhost 5672 amq.direct "test queue" 启动消费程序,进行监听,当有消息进入的时候,会打印消息内容到终端屏幕上
  • 再次启动一个CMD,执行
  • amqp_sendstring localhost 5672 amq.direct "test queue" "hello world",当执行完毕后,会在amqp_listen的屏幕上,打印hellow world
  • 再次其对应一个CMD,执行
  • amqp_producer localhost 5672 100 1000 将会以每秒100个消息,共发送1000个消息到amqp_listen中
  • amqp_listen将会显示共1000个小时的信息,由于amqp_listner的代码中,只有1个线程以阻塞模式处理消息,一般的消费速度只有40/秒,因此可以看到amqp_listen会持续性的在cmd界面中输出消息内容

重要概念

  • 发送消息的时候,不能直接将消息发送到队列中,而是发送到exchange,指定routing key。
  • 接收消息的时候,建立队列,供自己消费,同时将该队列使用routing key绑定到指定的exchange中。
  • 新建立的每个队列,都会以队列名字作为routing key,自动绑定到空字符串的exchang中。因此发送给空字符串的exchange,如果routing key设置为了某个队列名,消息会路由到该队列上。
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部