我有一个storm拓扑,它有一个连接到kafka队列的spout,并将元组转发到我的bolt进行处理。我只想对bolt进行单元测试,而不是kafka->spout->bolt
中的整个片段。然而,我还想在一个storm拓扑实例中测试bolt,而不仅仅是它的纯功能。原因是bolt实际上将处理后的数据发送到一个cassandra数据库。
所以我实现这一点的一种方法是制作一个测试喷口,将其连接到bolt,并通过测试喷口将测试元组发送到bolt。然而,对于一个测试来说,这似乎是太多的工作了。有没有更好的办法做到这一点?比如在测试中劫持原始喷点来发送一些测试元组?
您可以考虑用https://storm.apache.org/releases/0.9.6/javadocs/backtype/storm/testing/fixedtuplespout.html或https://storm.apache.org/releases/0.9.6/javadocs/backtype/storm/testing/feederspout.html来替换Kafka喷注。
使用FixedTupleSpout进行测试的一个好处是它实现了https://github.com/apache/storm/blob/a4afacd9617d620f50cf026fc599821f7ac25c79/storm-client/src/jvm/org/apache/storm/testing/completableSpout.java,因此可以与completeTopology一起使用https://github.com/apache/storm/blob/64e29f365c9b5d3e15b33f33ab64e200345333e4/storm-server/src/main/java/org/apache/storm/testing.java#L405。这可以让您编写最初设置一些元组的测试,运行拓扑直到所有元组都被加密/失败,然后让您断言,例如,数据已写入Cassandra并且所有元组都被加密。
这里有一个使用completeTopology的示例https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/testingapidemo.java#l83。
我正在为cadence活动功能编写一个单元测试,它使用UUID从联系服务中检索联系人。我想知道我应该把什么样的背景加入到节奏活动中。 这是测试功能。 我收到的错误消息:
关于拓扑结构的说明: 喷口连续向读取螺栓发送元组。 读取bolt过程并将结果发送给下一个bolt等等。 在R bolt中处理tuple1之后还是在readbolt发送tuple1写入bolt之后?
我运行的是一个简单的拓扑结构,它有一个简单的spout,它发出带有两个字段的元组,还有一个bolt,它在execute方法中正好对得上。它们在两台机器中运行。使用此设置和默认配置值,我得到10ms的完整延迟,而执行和处理延迟均为.005ms。我也禁用了日志记录。会有什么问题?暴风版本为1.0。
本文向大家介绍环形拓扑和网格拓扑之间的区别,包括了环形拓扑和网格拓扑之间的区别的使用技巧和注意事项,需要的朋友参考一下 环形拓扑 在环形拓扑中,每个节点都以环形方式连接到其左节点和右节点,信息可以从一个节点流向另一个方向。如果有n个节点,则存在n个链接。如果要添加一个新节点,则整个连接将被中断。 网格拓扑 在网状拓扑中,每个节点使用其自己的专用链接连接到其他节点,并且信息可以从这些链接传播到任何节