通过spring集成将Rabbitmq连接到IBM MQ

通过spring集成将Rabbitmq连接到IBM MQ,rabbitmq,spring-integration,Rabbitmq,Spring Integration,我们正在尝试将RabbitMQ与我们的系统应用程序(实际上是MQSeries)集成。 一些应用程序不会升级代理(MQSeries=>RabbitMQ),因此我们必须将消息从RMQ传输到MQSeries 使用配置文件(入站amqp RMQ=>出站jms MQ)传输消息:150条消息/秒。 在两个mq服务器之间有一个mq通道(mq=>mq),大约为12500 msg/秒 两个问题: 你有没有优化转让的建议?出站通道上的配置(如在MQ上打开会话) 在pom.xml和配置文件中的xsd中使用哪个版本来

我们正在尝试将RabbitMQ与我们的系统应用程序(实际上是MQSeries)集成。 一些应用程序不会升级代理(MQSeries=>RabbitMQ),因此我们必须将消息从RMQ传输到MQSeries

使用配置文件(入站amqp RMQ=>出站jms MQ)传输消息:150条消息/秒。 在两个mq服务器之间有一个mq通道(mq=>mq),大约为12500 msg/秒

两个问题:

  • 你有没有优化转让的建议?出站通道上的配置(如在MQ上打开会话)
  • 在pom.xml和配置文件中的xsd中使用哪个版本来使用最新版本的组件(例如spring amqp 2.0.0,没有冲突)
谢谢你的帮助

问候

埃里克

配置文件



pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <properties>
       <jms.version>2.0.1</jms.version>
       <mqseries.version>8.0.0.3</mqseries.version>
       <spring.amqp.version>1.7.4.RELEASE</spring.amqp.version>
       <spring.version>4.3.12.RELEASE</spring.version>
  </properties>

       <dependencies>

             <dependency>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                    <version>1.1</version>
             </dependency>
             <dependency>
                    <groupId>javax.jms</groupId>
                    <artifactId>javax.jms-api</artifactId>
                    <version>${jms.version}</version>
             </dependency> 

             <!-- ******* -->
             <!--   mq    -->
             <!-- ******* -->
             <dependency>
                    <groupId>com.ibm</groupId> 
                    <artifactId>com.ibm.mq.allclient</artifactId> 
                    <version>${mqseries.version}</version> 
             </dependency>


             <!-- ******************* -->
             <!-- Spring dependencies -->
             <!-- ******************* -->
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aop</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${spring.version}</version>
             </dependency>

             <!-- but exclude commons-logging as we're using jcl-over-slf4j -->
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>${spring.version}</version>
                    <exclusions>
                           <exclusion>
                                  <groupId>commons-logging</groupId>
                                  <artifactId>commons-logging</artifactId>
                           </exclusion>
                    </exclusions>
             </dependency>


             <!-- Integration avec MqSeries -->
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-core</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-file</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-amqp</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-jms</artifactId>
                    <version>${spring.version}</version>
             </dependency>

             <!-- AMQP spring dependencies -->
             <dependency>
                    <groupId>org.springframework.amqp</groupId>
                    <artifactId>spring-amqp</artifactId>
                    <version>${spring.amqp.version}</version>

             </dependency>
             <dependency>
                    <groupId>org.springframework.amqp</groupId>
                    <artifactId>spring-rabbit</artifactId>
                    <version>${spring.amqp.version}</version>
             </dependency>
       </dependencies>  
</project>

2.0.1
8.0.0.3
1.7.4.1发布
4.3.12.1发布
javax.jms
jms
1.1
javax.jms
javax.jms-api
${jms.version}
com.ibm
com.ibm.mq.allclient
${mqseries.version}
org.springframework
春季甲虫
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
春季aop
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
弹簧芯
${spring.version}
公用记录
公用记录
org.springframework.integration
spring集成核心
${spring.version}
org.springframework.integration
spring集成文件
${spring.version}
org.springframework.integration
spring集成amqp
${spring.version}
org.springframework.integration
spring集成jms
${spring.version}
org.springframework.amqp
春季amqp
${spring.amqp.version}
org.springframework.amqp
春兔
${spring.amqp.version}

您应该将
MQConnectionFactory
包装在
CachingConnectionFactory
中,以避免为每个发送操作创建新的连接和会话


Spring AMQP 2.0.0需要Spring Framework 5.0.0或更高版本(当前为5.0.1)。

与CachingConnectionFactory:700msg/s;-)对于pom.xml 2.0.0.RELEASE 5.0.0.RELEASE中的版本,我们为groupid“org.springframework.integration”4.3.12.RELEASE添加了一个新的道具,因为:spring integration core:jar:5.0.0.RC1或spring integration core:jar:5.0.0.RELEASE在版本4.3.12中丢失。RELEASE出现错误:无效;嵌套异常为org.xml.sax.saxpasseeption;'兔子:找不到连接工厂你有什么想法吗?不要把XML放在注释中;它很难读懂;改为编辑问题,并评论您已这样做。SpringIntegration5.0将在几周内发布;现在,发布候选版本在Spring milestone repo中可用。5.0.0.RC1。如果您使用的是AMQP<2.0.0,则应增加入站适配器上的
预取
(已从2.0.0中的旧默认值(1)增加)。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <properties>
       <jms.version>2.0.1</jms.version>
       <mqseries.version>8.0.0.3</mqseries.version>
       <spring.amqp.version>1.7.4.RELEASE</spring.amqp.version>
       <spring.version>4.3.12.RELEASE</spring.version>
  </properties>

       <dependencies>

             <dependency>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                    <version>1.1</version>
             </dependency>
             <dependency>
                    <groupId>javax.jms</groupId>
                    <artifactId>javax.jms-api</artifactId>
                    <version>${jms.version}</version>
             </dependency> 

             <!-- ******* -->
             <!--   mq    -->
             <!-- ******* -->
             <dependency>
                    <groupId>com.ibm</groupId> 
                    <artifactId>com.ibm.mq.allclient</artifactId> 
                    <version>${mqseries.version}</version> 
             </dependency>


             <!-- ******************* -->
             <!-- Spring dependencies -->
             <!-- ******************* -->
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aop</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${spring.version}</version>
             </dependency>

             <!-- but exclude commons-logging as we're using jcl-over-slf4j -->
             <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>${spring.version}</version>
                    <exclusions>
                           <exclusion>
                                  <groupId>commons-logging</groupId>
                                  <artifactId>commons-logging</artifactId>
                           </exclusion>
                    </exclusions>
             </dependency>


             <!-- Integration avec MqSeries -->
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-core</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-file</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-amqp</artifactId>
                    <version>${spring.version}</version>
             </dependency>
             <dependency>
                    <groupId>org.springframework.integration</groupId>
                    <artifactId>spring-integration-jms</artifactId>
                    <version>${spring.version}</version>
             </dependency>

             <!-- AMQP spring dependencies -->
             <dependency>
                    <groupId>org.springframework.amqp</groupId>
                    <artifactId>spring-amqp</artifactId>
                    <version>${spring.amqp.version}</version>

             </dependency>
             <dependency>
                    <groupId>org.springframework.amqp</groupId>
                    <artifactId>spring-rabbit</artifactId>
                    <version>${spring.amqp.version}</version>
             </dependency>
       </dependencies>  
</project>