是如何執行此類型的消費用Spring集成驅動通道適配器和JDBC出站適配器的消息的示例。一些會影響你的表現和通過投入的關鍵因素如下:
- 交易 - 如果它在整個隊列要去那會增加一些開銷
- 改造數據庫 - 多少處理進入的消息映射轉換表中
這裏的Spring集成例;
<int-jms:message-driven-channel-adapter channel="trade.input.channel"
concurrent-consumers="1" connection-factory="connectionFactory"
destination="issue.queue"/>
<int:channel id="trade.input.channel"/>
<int-jdbc:outbound-channel-adapter
channel="trade.input.channel"
data-source="dataSource" query="insert into target_table (issue_code,issue_price,transaction_timestamp) values (:issue_code,:issue_price,:issue_timestamp)"
sql-parameter-source-factory="spelFactory"/>
<bean id="spelFactory" class="org.springframework.integration.jdbc.ExpressionEvaluatingSqlParameterSourceFactory">
<property name="parameterExpressions">
<map>
<entry key="issue_code" value="payload.toString().split(',')[0]"/>
<entry key="issue_price" value="payload.toString().split(',')[1]"/>
<entry key="issue_timestamp" value="payload.toString().split(',')[2]"/>
</map>
</property>
</bean>
和這裏的樣本消息
MSFT,100.00,1373761697932
這是非常粗糙的,但可能是一個起點。簡單單元測試的性能平均每秒大約200條消息,但這與硬件有關。