Imap负载均衡服务器上的空闲通道适配器

时间:2017-11-08 22:57:03

标签: spring-integration

我的传入邮件适配器的配置如下。当应用程序在单个服务器上运行时,一切正常。但是,当我在负载平衡的服务器中部署应用程序并监听同一个邮箱时,则会在所有服务器中读取邮件。 如何处理这种情况?是否有任何特定的配置来处理这种情况。

<int-mail:imap-idle-channel-adapter
    id="customAdapter"
    store-uri="${mail.protocol}://${mail.username}:${mail.password}@${mail.host}:${mail.port}/${mail.folder}"
    channel="recieveEmailChannel" auto-startup="true"
    should-delete-messages="false" 
    should-mark-messages-as-read="true"
    java-mail-properties="javaMailProperties" 
    mail-filter-expression="subject matches '(?i).*Email Notification.*'" />

<util:properties id="javaMailProperties">
    <prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    <prop key="mail.imap.socketFactory.fallback">false</prop>
    <prop key="mail.store.protocol">imaps</prop>
    <prop key="mail.debug">true</prop>
    <prop key="mail.imap.starttls.enable">true</prop>
    <prop key="mail.imaps.ssl.trust">${mail.ssl.trust}</prop>
    <prop key="mail.imaps.usesocketchannels">true</prop>
</util:properties>

<int:service-activator input-channel="recieveEmailChannel" expression="@emailService.process(payload)" />

1 个答案:

答案 0 :(得分:1)

其中一个Leader Electionrole相同<int-mail:imap-idle-channel-adapter>

另一个是Idempotent Receiver来跟踪共享MetadataStore中的重复项。