带备用服务的Spring Batch Partition for Slaves

时间:2018-03-15 07:28:29

标签: spring-integration spring-batch

我正在尝试使用spring批处理分区来使用rest服务处理数据块。文档说PartitionHandler实现可以是自定义Web服务。是否存在类似于MessageChannelPartitionHandler的Web服务分区处理程序的默认实现?

1 个答案:

答案 0 :(得分:0)

根据Spring Batch Integration documentation,有一个MessageChannelPartitionHandler。这完全足以使用下游的Spring Integration Channel Adapters来区分应用程序中的主从逻辑。

因此,您需要配置MessageChannelPartitionHandler并提供适当的使用者以发送到Web服务。该文档有一个JMS示例:

@Bean
public PartitionHandler partitionHandler() {
    MessageChannelPartitionHandler partitionHandler = new MessageChannelPartitionHandler();
    partitionHandler.setStepName("step1");
    partitionHandler.setGridSize(3);
    partitionHandler.setReplyChannel(outboundReplies());
    MessagingTemplate template = new MessagingTemplate();
    template.setDefaultChannel(outboundRequests());
    template.setReceiveTimeout(100000);
    partitionHandler.setMessagingOperations(template);
    return partitionHandler;
}

@Bean
public IntegrationFlow outboundJmsRequests() {
    return IntegrationFlows.from("outboundRequests")
            .handle(Jms.outboundGateway(connectionFactory())
                    .requestDestination("requestsQueue"))
            .get();
}

但你绝对可以做类似的事情,在主方使用SimpleWebServiceOutboundGateway,在奴隶方使用SimpleWebServiceInboundGateway