我需要创建一个拓扑,它将模拟N个相同的处理节点,每个节点处理一个流,与协调节点通信。仅在处理节点和协调器节点之间允许通信(双向)。
我在考虑以下架构:处理节点将在Storm中实现。协调器将具有Web服务器(例如Spark)并监听来自处理节点的传入消息。发给协调器的消息将使用HTTP。协调器将消息发送到处理节点,将它们发布到他们将订阅的Kafka队列(另一种方法是让所有消息通过队列)。
这是一个好方法吗?你有更好的建议吗?
答案 0 :(得分:1)
取决于您的案例和环境,我真的不知道这是否是最佳方法。就个人而言,我不喜欢HTTP部分(Storm bolt将事件提交给servlet)。
我也会使用Kafka从Storm bolt发送事件。通过这种方式,您将拥有统一的沟通方式,而且非常可能是非阻塞方法。
你需要考虑如果重放元组会发生什么(如果你使用这个功能)。
您的问题中的Spark是一个Web框架,而不是Web服务器。