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

100个用户的Spring集成Http amqp rabbitmq并发问题

鄂琛
2023-03-14

Im在rabbit mq中使用spring Http集成和amqp,无法对并发用户进行负载测试。。。jmeter和rabbitmq消息计数中显示的消息计数不匹配。。对于30个用户来说效果很好

<int-http:inbound-gateway id="logIngesterGatewayBulk"
        supported-methods="POST" request-channel="logIngesterRestEndpointBulk"
        path="/rest/log/bulk" error-channel="errorChannel" reply-timeout="10" 
        request-payload-type="java.lang.String">
    </int-http:inbound-gateway>

<int:filter input-channel="logIngesterRestEndpointBulk"
        throw-exception-on-rejection="true" method="validate" ref="payloadValidation"
        output-channel="filterChannelbulk">
    </int:filter>

     <int:chain input-channel="filterChannelbulk" output-channel="messageOutputChannel" id="chaining" >
        <int:splitter id="splitter" ref="payloadSplitter" method="splitPayLoad" >

        </int:splitter>
        <int:transformer id="logMessageTransformerbulk" ref="logMessageHeaderTransformer"
            method="transform">
        </int:transformer>
    </int:chain>
    <int:service-activator input-channel="errorChannel"
        ref="responseHandler" method="handleFailedPayLoad">
    </int:service-activator>


<int-amqp:outbound-channel-adapter  
        id="amqpAdapter" channel="messageOutputChannel" amqp-template="amqpTemplate" 
        exchange-name="dhp_exchange" routing-key-expression="headers['routingKey']">

共有1个答案

解修然
2023-03-14

你需要找出为什么存在不匹配。恐怕是调试101。

首先要弄清楚哪些消息丢失了,以及为什么会丢失-调试日志记录会有所帮助,但跟踪日志以跟踪每条消息可能会很繁琐,但信息肯定在那里。确保在日志配置中包含线程名称;调试多线程应用程序时,它是必需的。

您需要确保您的代码是线程安全的-payloadValorationpayloadSplitterlogMessageHeaderTransexbean等-没有共享状态(字段)或同步是正确的。

 类似资料:
  • 我有一个队列通道和一个带有轮询器的服务激活器,轮询器从该队列中读取数据。我希望配置为“我希望50个线程轮询该队列,每次轮询并返回消息时,在此线程上调用服务激活器指向的服务。” 该服务没有异步注释,但无状态,可以以并发方式安全运行。 下面的方法能做到吗?有没有其他首选的方法来实现这一点?

  • 我有一个使用Java DSL配置的集成流,它使用从Ftp服务器中提取文件,然后将其转换为;然后我有一个方法,它触发我的批处理作业,所有的工作都是按要求进行的,但是Ftp文件夹中的每个文件都是按顺序运行的 我在Transformerendpoint中添加了它为每个文件打印相同的线程名称 这是我到现在为止所尝试的 1.任务执行器bean 感谢任何帮助 谢谢

  • 我正在尝试将Spring Security性与LDAP集成。使用spring core版本4.0.5,spring security版本3.2.2和spring ldap版本1.3.2。这是我的安全配置xml

  • 我在springboot项目1.5.10版中工作。释放 我正在为sftp使用Spring集成。以下gradle依赖项对我来说一切都很好 我还将普罗米修斯整合到模块中。 我已经完成了普罗米修斯的所有其他要求。但是我没有得到普罗米修斯的指标。 项目中的所有其他服务都在使用prometheus,但没有使用spring integration sftp,prometheus正在为所有这些服务工作。 我尝试

  • 我创建了一个新示例,并将代码分为客户端和服务器端。 完整的代码可以在这里找到。 服务器端有3个版本。 服务器无Spring Boot应用程序,使用Spring Integration RSocket InboundGateway 服务器引导重用Spring RSocket autconfiguration,并通过serverrsocketmessagehandler创建ServerRSocketC

  • 我无法使用Spring Kafka集成发布消息,尽管我的Kafka Java客户端工作正常。 Java代码在Windows上运行,Kafka在Linux上运行。 我得到以下错误