2

バックアップ サーバーはキープアライブ メッセージをプライマリ サーバーに送信し続けます。プライマリ サーバーは、「Hey, I'm still running.」というメッセージで応答します。応答がない場合は、バックアップ サーバーが を引き継ぎ、新しいメッセージ駆動型アダプターを開始します。

  1. これをSpring Integrationで効率的に実装するには?
  2. 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) 応答が来ていないときに、どういうわけかサービス (?) を呼び出します。

4

1 に答える 1