既然我问了这个问题,我的公司决定先买三叉戟。我们只会在性能出现问题时使用纯Storm。可悲的是,这不是一个积极的决定,它只是成为默认的行为(我当时不在)。
他们的假设是,在大多数用例中,我们需要状态处理或只需一次处理,或者我们将在不久的将来需要它。我理解他们的推理,因为从Storm到Trident或返回并不是一个容易的转换,但在我个人看来,没有状态的流处理的概念并不被所有人理解,这是使用Trident的主要原因。
来回答你的问题:什么时候不应该使用三叉戟?只要你能负担得起。
Trident增加了Storm拓扑的复杂性,降低了性能并生成了状态。问自己这样一个问题:你需要Trident的“确切一次”处理语义,还是可以忍受Storm的“至少一次”处理语义。只有一次,使用三叉戟,否则不要。
我还想强调一个事实,即Storm保证所有消息都将被处理。有些消息可能只处理了一次以上。
有人能指导我在这种情况下如何使用三叉戟吗?或者使用storm功能的任何其他适用方式?
我无法找到正确集成Kafka和Apache Storm Trident的好文档。我试图查看相关的问题之前张贴在这里,但没有充分的信息。 这样,我就可以为我的拓扑生成流,如下面的代码所示 虽然我提供了并行性和我的分区,但是只有一个Kafka Spout的执行器在运行,因此我无法很好地扩展它。 有谁能指导我更好地将Apache Storm Trident(2.0.0)与Apache Kafka(1.0
我打算向你介绍的最后一种数据结构就是三叉搜索树(TSTree),它和BSTree很像,除了它有三个分支,low、equal和high。它的用法和BStree以及Hashmap基本相同,用于储存键值对的数据,但是它通过键中的独立字符来控制。这使得TSTree具有一些BStree和Hashmap不具备的功能。 TSTree的工作方式是,每个键都是字符串,根据字符串中字符的等性,通过构建或者遍历一棵树来
我们将研究的最后一个数据结构称为三叉搜索树(TSTree),它可以在一组字符串中快速查找字符串。它类似于BSTree,但是它有三个子节点,而不是两个,每个子节点只是一个字符而不是整个字符串。在BSTree中,左子节点和右子节点是树的“小于”和“大于”的分支。在TSTree中,左子节点,中子节点和右子节点是“小于”,“等于”和“大于”的分支。这可以让你选取一个字符串,将其分解成字符,然后遍历TSTr
本章介绍了上一个练习的解决方案,然后测试树形映射的性能。我展示了一个实现的问题,并解释了 Java 的TreeMap如何解决它。 13.1 简单的MyTreeMap 上一个练习中,我给了你MyTreeMap的大纲,并让你填充缺失的方法。现在我会展示结果,从findNode开始: private Node findNode(Object target) { // some implement