Java 如果管道崩溃,如何向队列发送消息

Java 如果管道崩溃,如何向队列发送消息,java,cassandra,apache-kafka,apache-beam,Java,Cassandra,Apache Kafka,Apache Beam,我有一个ApacheBeam管道,它接受消息,然后将消息保存到队列或数据库中。如果由于数据库故障或其他问题导致保存到Cassandra失败,我如何将原始消息保存到其他队列?下面是我如何创建管道的 public Pipeline pipelineDirectRunner() { PipelineOptions options = PipelineOptionsFactory.create(); options.setRunner(DirectRunner.class

我有一个ApacheBeam管道,它接受消息,然后将消息保存到队列或数据库中。如果由于数据库故障或其他问题导致保存到Cassandra失败,我如何将原始消息保存到其他队列?下面是我如何创建管道的

public Pipeline pipelineDirectRunner() {
        PipelineOptions options = PipelineOptionsFactory.create();
        options.setRunner(DirectRunner.class);
        return  Pipeline.create(options);
}

不确定卡桑德拉的具体情况。但是,如果IO不处理异常,只是崩溃,那么就没有简单的方法来处理。如果您找不到解决方案,作为一种解决方法,您可以编写自己的“IO”,方法是编写一个ParDo,在该ParDo中,您可以使用本地客户机手动调用任何服务,而不使用IO。在这种情况下,您可以处理所有异常或自定义逻辑。在CassandraIO的情况下,我没有看到处理它的选项,可能我缺少了。我看到的是Write是一个ParDo调用Mutator.mutate:它可以抛出异常:所有这些都没有任何逻辑来定制这个流--不确定Cassandra的具体情况。但是,如果IO不处理异常,只是崩溃,那么就没有简单的方法来处理。如果您找不到解决方案,作为一种解决方法,您可以编写自己的“IO”,方法是编写一个ParDo,在该ParDo中,您可以使用本地客户机手动调用任何服务,而不使用IO。在这种情况下,您可以处理所有异常或自定义逻辑。在CassandraIO的情况下,我没有看到处理它的选项,可能我缺少了。我看到的是,Write是一个ParDo调用Mutator.mutate:它可以抛出异常:所有这些都没有任何逻辑来定制这个流