【问题标题】:How can I write a tuple in to redis as well as cassandra using trident topology如何使用三叉戟拓扑将元组写入 redis 和 cassandra
【发布时间】:2015-07-17 11:57:52
【问题描述】:

我正在编写一个 Trident 拓扑来处理来自 Kafka 的数据流并馈送到 Redis 和 Cassandra。我能够将数据写入 Cassandra。现在我想将相同的数据写入 Redis。

有没有办法复制元组并将其分支到 2 个流中,一个进入 Redis,另一个进入 Cassandra?

【问题讨论】:

    标签: redis cassandra apache-storm trident


    【解决方案1】:

    对于 Trident,您可以像这样使用:

    TridentTopology topology = new TridentTopology();
    Stream stream = topology.newStream("MySpout", spout);
    stream.partitionPersist(...); // to Redis
    stream.partitionPersist(...); // to Cassandra
    

    因此它会将数据从您的流中并行保存到两个数据库中。

    但是,我也认为是否应该在单个拓扑内完成此类并行操作,或者从同一主题读取两个不同的拓扑是一个更好的主意。想象一下 Cassandra 集群出现故障。如果有两种拓扑,您仍然可以继续将数据保存到 Redis。但是如果只有一个拓扑,每个元组未能进入 Cassandra 很可能会导致 FailedException 触发重放,并且每个元组的后续重放都将不必要地再次将元组保存到 Redis。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-14
      • 2013-09-27
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多