重播Kafka中的消息

时间:2017-10-24 17:21:31

标签: java apache-kafka spring-cloud-stream spring-kafka

我正在春季启动时使用kafka,我正在尝试添加一项功能,允许我们启动服务并让它重播消息到特定时间。

消费者就像这样设置

public interface ProductScenarioStream {
    String SERVICE_REQUESTS_PRODUCT_PRICE = "serviceRequestsProductPrice";
    String SERVICE_CONCLUDES_PRODUCT_SCENARIO = "serviceConcludesProductScenario";

    @Output(SERVICE_REQUESTS_PRODUCT_PRICE)
    MessageChannel serviceRequestsProductPrice();

    @Input(SERVICE_CONCLUDES_PRODUCT_SCENARIO)
    SubscribableChannel serviceConcludesProductScenario();
}

@Service
@EnableBinding(ProductScenarioStream.class)
@Profile("stream")
public class ProductStreamServiceImpl implements ProductStreamService 
{
    @Resource
    private ProductScenarioStream productScenarioStream;

    @Override
    public void send(final ServiceRequestsProductPrice event) {
     ...
    }
 }

您知道在哪里可以找到设置以允许我在此方案中回放流上的偏移量吗?

1 个答案:

答案 0 :(得分:0)

我认为您的意思是replay而非reply - 我已编辑了您的问题。

Spring Cloud Stream目前没有公开寻求抵消的机制。

您可以使用spring-kafka' s @KafkaListener;实现ConsumerSeekAware,它为您提供在启动期间(或任何时间)寻找的机制。