当前位置: 首页 > 知识库问答 >
问题:

AMQP 1.0 Qpid BytesMessage大负载

凌清夷
2023-03-14

我正在使用qpid客户端Java库(版本0.32)来集成AMQP 1.0。

我必须传输一个字节数组(小于5mb),但此消息从未传递给订阅者。我通过wireshark记录了帧,传输帧标记为[TCP窗口已满]。库可能没有划分负载。代码是否正确?我必须配置什么?

代理:Apache Apollo 1.7.1(默认配置)

pom。xml

    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jms_1.1_spec</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-amqp-1-0-client-jms</artifactId>
        <version>0.32</version>
    </dependency>
    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-amqp-1-0-client</artifactId>
        <version>0.32</version>
    </dependency>
    <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-amqp-1-0-common</artifactId>
        <version>0.32</version>
    </dependency>

Java代码

  ConnectionFactoryImpl amqpFactory = new ConnectionFactoryImpl(...);
  ConnectionImpl connection = amqpFactory.createConnection();
  connection.start();
  SessionImpl session = connection.createSession(...);

  MessageProducerImpl producer = session.createProducer(new TopicImpl("topic://test"));
  BytesMessageImpl bytesMessage = session.createBytesMessage();

  //generate sample data
  StringBuilder s = new StringBuilder();
  for (int i = 0; i < 10000; i++) {
       s.append(UUID.randomUUID().toString());
  }

  bytesMessage.writeBytes(s.toString().getBytes());
  producer.send(bytesMessage);

共有1个答案

叶明辉
2023-03-14

所以你基本上已经登陆了我所知道的AMQP软件的每一个弃用部分,所以我猜你的问题来自一个旧的和未维护的软件。

ActiveMQ Apollo已经被弃用了好几年,因为它没有维护,相反,您应该使用ActiveMQ Artemis,它是ActiveMQ项目中最活跃的代理。

对于AMQP 1.0 JMS客户端,应使用实现当前AMQP的Qpid JMS客户端-

 类似资料:
  • 我正在我的nodejs应用程序中创建restendpoint,如下所示: 在我的服务器上。我有以下代码: 我还尝试了下面的代码,而不是像在潜在重复问题上建议的那样使用express.json和expres.urlencoded。 在我的APIRoutes文件中,我有以下代码: 我尝试了不同的组合和订单来设置更高的限制。但是目前每次我发送2kb的有效载荷,我都会得到一个413“(有效载荷太大)”的错

  • 问题内容: 我想要求澄清有关RowFilter的使用及其对性能的影响。我通过方法include(Entry)实现了一个过滤器,该过滤器针对每行仅检查模型中其对应值是否设置了布尔标志:如果是,则返回true,否则返回false。 现在,我拥有的JTable可能非常大(超过1000000行),而且我不确定应用于这种大输入集的这种简单过滤是否会很昂贵。 过滤后的行与基础数据之间的映射如何正确工作?我的意

  • 问题内容: 我一直在使用一种提供下载服务的方法,但是由于它不安全,所以我决定对此进行更改。(该方法是到存储中原始文件的链接,但是风险是每个知道链接的人都可以下载该文件!)因此,我现在通过我的视图提供文件,这样,只有拥有权限的用户才能下载文件,但是我注意到服务器上的负载很高,同时有许多文件同时下载请求。这是我为用户处理下载的代码的一部分(考虑文件是图像) 在保持安全性并降低服务器端负载的情况下,有没

  • 问题内容: 自从我开始将eclipse用于项目Euler以来,我注意到大数字有时变成了看似随机的负数。我想这与传递类型的boudry有关。 如果您能向我解释这些负数是如何产生的以及其背后的逻辑是什么,我将很高兴。另外,如何避免使用它们(最好不要使用BigInteger类)。丹克!=) 问题答案: 此图显示了您要查找的内容。在您的情况下,数字显然更大,但原理保持不变。 Java中的限制示例为: in

  • 我试图上传一个图像从本地使用bas64做图像检测。 和一切正常工作在localhost和邮递员。 但部署后,我得到了CROS错误。 我已经在 cors中间件在使用url获取图像时工作正常, 但是当我试图使用bas64从本地上传图像时,控制台显示: 这是我尝试过的解决方案: cors-任何地方 然后显示。 由于在localhost和postman中测试时没有错误,我发现一些文章说这可能仍然是cors

  • 我们在Debian8上使用Percona MySQL5.6作为电子商务聚合器。为此,有一个主后端服务器执行整个ETL(处理来自合作伙伴的产品提要),还有一个由前端web服务器使用的从MySQL服务器。它是一个包含约600GB数据的单一产品数据库。 这两台机器都带有RAID10和datacenter系列固态硬盘。主MySQL是128GB内存的双至强E5,从MySQL是64GB内存的单至强E5。我们的