【发布时间】:2015-09-21 14:48:10
【问题描述】:
我正在研究一个风暴拓扑,我需要为不同的客户端位置构建多个拓扑。
我有一个 Kafka 服务器,它产生的数据需要到达远程客户端机器(在螺栓中进行了一些转换之后)。这些客户大约有1000个。 当 Kafka 产生新数据时,客户端需要在几分钟内获取该数据。 需要进行一些转换(可以通过螺栓处理),数据通过 websocket 发送到远程客户端。
例如:Kafka 服务器 -> Kafka spout -> Bolt1 -> bolt2 -> bolt3 -> websocket(在客户端机器上) 我有 1000 台客户端机器。
我希望可以为每个客户端动态创建此拓扑。当客户端准备好后,他们可以启动这个拓扑并开始读取数据吗? 或者这些拓扑(其中 1000 个)是否可以在风暴中创建并准备好发送数据?
Storm 可以实现这种架构吗? 这效率如何? Storm 设置是否易于管理?
感谢您的回复。
【问题讨论】:
-
每个客户都有自己的kafka主题,还是所有客户的kafka主题都一样?
-
您对每个元组进行的处理是相同的还是特定于客户端的?
-
每个主题适用于多个客户位置。我的想法是消息必须由其中一个螺栓(bolt1)打开,查看位置信息,然后连接到适当的websocket位置以发送数据。
-
@Doomy,对每个元组的处理都是一样的。每个客户的数据格式都是一样的,但实际的daya可能并不适用于每个客户。
-
我的拓扑可能如下所示:Kafka spout(1000 个实例)->bolt1(100 个实例)->bolt2(100 个实例)->bolt3(1000 个每个连接到 1000 个套接字)-> websocket( 1000 个不同的远程服务器)
标签: apache-storm