バックアップ サーバーはキープアライブ メッセージをプライマリ サーバーに送信し続けます。プライマリ サーバーは、「Hey, I'm still running.」というメッセージで応答します。応答がない場合は、バックアップ サーバーが を引き継ぎ、新しいメッセージ駆動型アダプターを開始します。
- これをSpring Integrationで効率的に実装するには?
- Spring ApplicationContext によって自動的にではなく、コードからメッセージ駆動型アダプターを開始する方法。
更新:これは私の現在のアプローチです:
送信者:
<si:inbound-channel-adapter id="keepAlivePoller" channel="keepAliveChannel" method="sendMessage" >
<bean class="com.keepAlive.KeepAliveSender"/>
<si:poller fixed-rate="${keepalive.sendinterval}" max-messages-per-poll="1"></si:poller>
</si:inbound-channel-adapter>
これは私の受信機です:
<si:channel id="pollKeepChannel">
<si:queue/>
</si:channel>
<int-jms:message-driven-channel-adapter id="keepAliveMessageAdapter"
channel="pollKeepChannel" destination="keepAlive" connection-factory="connectionFactory"
max-concurrent-consumers="2" auto-startup="true" acknowledge="transacted" extract-payload="true"/>
<si:service-activator id="keepAliveServiceActivator" input-channel="pollKeepChannel" ref="keepAliveService" method="process">
<int:poller />
</si:service-activator>
<bean id="keepAliveService" class="com.keepAlive.KeepAliveService"/>
<bean id="keepAlive"
class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="PREM_KEEPALIVE" />
</bean>
1)送信サーバーから何らかの形で返信を受け取りたいと思います。2) 応答が来ていないときに、どういうわけかサービス (?) を呼び出します。