Qpid第五课 消息总线使用经验

简介:

qpid-broker服务器采用Java语言版本6.1.4

相关资料

http://qpid.apache.org/documentation.html


问题1)

发送到qpid服务器上的消息,如果没有被其他的客户端消费是否一直保存在内存中,

可能导致服务器内存耗尽,服务器崩溃,因为服务器的内存一开始就是设置为512MB


问题2)

发送到qpid服务器上的消息,如果由于超时,客户端断开连接,是否也会出现上述类似的问题


qpid-cpp项目编译参考

http://www.it165.net/admin/html/201406/3341.html

由于复杂以及时间问题,并没有在短时间内编译出来


qpid C++编程例子

http://qpid.apache.org/releases/qpid-cpp-1.36.0/messaging-api/cpp/examples/client.cpp.html


下载版本qpid-cpp-1.35.0

详细的编译参考可以在源码中找到文件INSTALL-WINDOWS.txt

代码

int HandleQPID()

{

std::string connectionOptions = "";

Connection connection("192.168.1.12:7070", connectionOptions);

connection.setOption("username", "admin");

connection.setOption("password", "admin");

//true的情况下,尝试重连会导致后续一直的阻塞

connection.setOption("reconnect", false);

try

{

connection.open();

Session session = connection.createSession();

Sender sender = session.createSender(info.strMessageAddress);


Message request;

request.setContent(info.strSendContext);

session.sync();


Address responseQueue("#response-queue; {create:always, delete:always}");

request.setReplyTo(responseQueue);

sender.send(request);

Receiver receiver = session.createReceiver(responseQueue);


try 

{

Message response;

//如果不指定Duration,如果服务器接收到的报文一直没有返回,在这里会一直阻塞!!

if (receiver.fetch(response, Duration(300)))

{

info.strRecvContext = response.getContent();

std::cout << "info" << std::endl;

std::cout << info.strRecvContext << std::endl;

}

session.acknowledge();

}

catch (const std::exception& error) 

{

std::cout << "receiver.fetch exception:" << error.what() << std::endl;

session.acknowledge();

session.close();

connection.close();

return -1;

}

session.close();

connection.close();

return 0;

}

catch (const std::exception& error)

{

//std::cout << "E:" << error.what() << std::endl;

info.strRecvContext = "";

connection.close();

return -1;

}

}




     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/2071763,如需转载请自行联系原作者


相关文章
|
3月前
|
消息中间件 监控 Kafka
不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了
分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。
|
4月前
|
Dubbo 应用服务中间件
电子好书发您分享《Dubbo分布式服务治理实战》
电子好书发您分享《Dubbo分布式服务治理实战》
124 2
|
3月前
|
消息中间件 分布式计算 监控
腾讯技术官手撸笔记,全新演绎“Kafka部署实战”,已开源
我们知道,当下流行的MQ非常多,不过很多公司在技术选型上还是选择使用Kafka。与其他主流MQ进行对比,我们会发现Kafka最大的优点就是吞吐量高。实际上Kafka是高吞吐低延迟的高并发、高性能的消息中间件,配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。
|
4月前
|
Dubbo 应用服务中间件 Apache
电子好书发您分享《Apache Dubbo 微服务开发从入门到精通》
电子好书发您分享《Apache Dubbo 微服务开发从入门到精通》
139 1
|
5月前
|
消息中间件 存储 Kafka
三分钟白话RocketMQ系列—— 核心概念
三分钟白话RocketMQ系列—— 核心概念
|
XML Java 数据格式
最近很火的SOFARPC是什么?带你快速入门SOFARPC
最近很火的SOFARPC是什么?带你快速入门SOFARPC
最近很火的SOFARPC是什么?带你快速入门SOFARPC
|
10月前
|
消息中间件 存储 网络协议
《微服务实战》 第十四章 RabbitMQ应用
《微服务实战》 第十四章 RabbitMQ应用
74 0
|
消息中间件 存储 安全
【Alibaba中间件技术系列】「RocketMQ技术专题」小白专区之领略一下RocketMQ基础之最!
【Alibaba中间件技术系列】「RocketMQ技术专题」小白专区之领略一下RocketMQ基础之最!
110 1
|
缓存 NoSQL 网络协议
|
负载均衡 Dubbo JavaScript
架构设计91-闲聊03-我为什么开始不推荐RPC
架构设计91-闲聊03-我为什么开始不推荐RPC
125 0