千家信息网

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

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,qpid-broker服务器采用Java语言版本6.1.4相关资料http://qpid.apache.org/documentation.html问题1)发送到qpid服务器上的消息,如果没有被其他
千家信息网最后更新 2025年02月23日Qpid第五课 消息总线使用经验

qpid-broker服务器采用Java语言版本6.1.4
相关资料
http://qpid.apache.org/documentation.html

问题1)
发送到qpid服务器上的消息,如果没有被其他的客户端消费是否一直保存在内存中,
可能导致服务器内存耗尽,服务器崩溃,因为服务器的内存一开始就是设置为512MB

解决方案: 指定消息的超时时间,如果超时,就删除

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

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;
}
}


服务器 服务 消息 内存 问题 客户 客户端 版本 阻塞 代码 例子 就是 情况 报文 文件 方案 时间 源码 解决方案 语言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库如何连接代码 正泰售电数据库破解 下列不属于常见网络安全威胁的是 软件开发著作雇佣合同 魔兽世界 服务器 人多 中国5g网络安全 软件开发数据库结构设计 广州程序软件开发费用是多少 计算机及其网络安全保密 桂阳学电脑软件开发哪个学校好 焦作数据库管理工程师证 服务器什么时候优化 自动回复聊天软件开发 网络安全备案警察主动加微信 深圳天luo网络技术 汇友网络技术 企业网网络安全需求分析 榆林第五届市网络安全宣传周 僵尸毁灭工程突然没服务器了 国家对计算机网络技术的政策 安徽智能化软件开发市场报价 北京勤哲软件开发平台 莆田精益管理软件开发 安徽电商软件开发供应商 郑州计算机软件开发大概要多少钱 软件开发增值税普票税点多少 警察大学网络安全专业 网络安全相关责任 cdp数据库设计 国内服务器香港ip
0