RabbitMQ-c学习和开发client经验分享

RabbitMQ-c学习和开发client经验分享

    最近在学习RabbitMQ,并且需要开发一个client,向RabbitMQ server发送日志消息。记录其中遇到的坑。我使用的开发语言是C++。

   俗话说“知其然,知其所以然”。所以首先需要了解相关的RabbitMQ的原理什么的。这里可以读http://blog.csdn.net/column/details/rabbitmq.html 的博客,里面说的很清楚。当然了,如果你的英文很牛掰,可以去官网看看https://www.rabbitmq.com/devtools.html 里面最新的源码包、文档说明、讨论应有尽有。看完之后,你就了解了相关知识点了。然后呢,可以到http://download.csdn.net/detail/u013928720/9705472(ps:怎么感觉我这博客就一直在贴链接呢??)下载我已经上传的RabbitMQ-c的源码包和vs2010工程文件和自己写的一个publish的客户端类。

     下面说说我在开发过程中遇见的一个bug。在申明exchange,调用amqp_exchange_declare接口的时候,竟然报错 “table too large for buffer”,关键是这种情况不是必现,而是有时出现有时不出现,当时好头疼啊。然后各种百度,发现一哥们直接找RabbitMQ的开发大牛,大牛讲了一丢高深莫测的话,然后交流了好几次,最后来了一句“下个最新版的RabbitMQ-c版本,你的那个太老了”。

     结果???当然ok了。这里我想吐槽一下,为什么现在才发到v0.8版本呢?什么时候来个v1.0。希望以后不要有不知名的bug把。


ps:写下最近发现的遇到的一些问题 

  1.多线程下,调用同一个实例的publish接口,会出现 publish消息不成功的现象(即函数返回正常,但是从rabbitmq的监控服务上看,根本没有数据publish),结果只能在publish数据之前加把锁了。网上有人说这种加锁产生的性能影响是在可接受范围内的(有可能别人的性能要求不高把)。

你可能感兴趣的:(点滴记录)