2015-11-05 42 views
1
在我們的應用

,消費者開始連續輪詢在應用的負載,因此有時通過輪詢方法執行之間影響執行時間 方法之一。方法(讓我們說測試()),理想的情況下需要幾毫秒的時間運行在junit的情況下,現在需要幾秒鐘的時間在app中執行。因此,如果可能的話,在這個時候想跳過輪詢 。卡夫卡消費者投票增加了方法的執行時間

在春天集成文檔已經看到了一些所謂的PollSkipAdvice/PollSkipStrategy它說的PollSkipAdvice可以用來抑制(跳過)一項民意調查。

可否請你建議,如果能在上述任何幫助scenario.Would是巨大的,如果使用說明example.Thanks。

示例配置:

<int-kafka:inbound-channel-adapter 
    id="kafkaInboundChannelAdapter" kafka-consumer-context-ref="consumerContext" 
    auto-startup="false" channel="inputFromKafka"> 
    <int:poller fixed-delay="10" time-unit="MILLISECONDS" 
     max-messages-per-poll="5" /> 
</int-kafka:inbound-channel-adapter> 

回答

1

你的情況是不明確的。真的...

我們這裏只有一個適配器侵略性fixed-delay10MILLISECONDS,並且只能用於小消息的量。

考慮增加輪詢時間並使max-messages-per-poll-1輪詢所有這些輪詢任務。

從對方怎麼說你test()方法參與也不清楚...

還要考慮切換到<int-kafka:message-driven-channel-adapter>超過郵件更好的控制。

關於PollSkipAdvice ......真的不知道其目的,你想用它來達到...

而且一分。記住所有<poller>的使用相同ThreadPoolTaskScheduler10爲池。所以,也許一些其他長期生活的任務保持線程繁忙...

這個你的<int-kafka:inbound-channel-adapter>只有一個,但每10毫米,當然。