我正在为我的项目使用Spring集成+ WSO2消息代理。 我的流程是:
步骤1. CLient调用restful webservice
步骤2.从客户端获取Restful get info并发送到请求队列(通过网关)
步骤3. Activator从请求队列中获取消息,执行业务逻辑然后将结果发送回应答队列
步骤4. Restful获取客户端的结果和响应
我的问题是:为什么WSO2太慢?
我花了1-2秒才用WSO2完成了只有一条消息的流程。但是当我改为ActiveMQ时性能显着提高(1000信息 <6秒内完成流量)???
我的配置如下:
<!-- WSO2 connection -->
<!-- <jee:jndi-lookup id="connectionFactory" jndi-name="qpidConnectionfactory" cache="true">
<jee:environment>
java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory
connectionfactory.qpidConnectionfactory=amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'
</jee:environment>
</jee:jndi-lookup> -->
<!-- ActiveMQ connection -->
<bean name="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<!-- CB Configuration -->
<int:channel id="cbRequestChanel" ></int:channel>
<int:channel id="cbResponseChanel"></int:channel >
<jms:inbound-gateway
request-channel="cbRequestChanel"
request-destination-name="cbQueueRequest"
connection-factory="connectionFactory" />
<jms:outbound-gateway id="cbOutGateway"
request-destination-name="cbQueueRequest"
reply-destination-name="cbQueueResponse"
request-channel="cbRequestChanel"
reply-channel="cbResponseChanel"
connection-factory="connectionFactory" />
<int:gateway id="cbGateway" default-request-channel="cbRequestChanel"
default-reply-channel="cbResponseChanel"
service-interface="com.test.gateway.ICBGateway" />
<int:service-activator
input-channel="cbRequestChanel" method="receive"
ref="cBServiceActivator">
</int:service-activator>
<bean id="cBServiceActivator" class="com.test.activator.CBServiceActivator" />
答案 0 :(得分:1)
我已经用rabbitmq,acticemq,wso2进行了相同流程的测试并使用了spring integration 2.2。
结果如下:
WSO2: 1 消息
1-2秒ActiveMQ: 10.000 消息
为70秒RabbitMQ: 10.000 消息为1秒。
我不知道为什么wso2太慢了。无论如何,RabbitMQ非常强大。