【问题标题】:Connections between controller and remote worker machines控制器和远程工作机器之间的连接
【发布时间】:2013-03-04 22:26:35
【问题描述】:

我需要用 Java 开发一个平台来从 Twitter 下载推文(这很明显)。这个想法是让各种计算机从流式 API 和一个主控制器下载,以将任务(要下载的关键字和其他数据)发送到每个提取器。我的问题与这些程序之间的连接有关。最好的方法是什么?实际上,我正在使用 RMI 将诸如“stop”、“start”、“setTask”之类的命令从 Controller(客户端)发送到每个 fetcher(服务器)和 SSLSocket 以进行快速验证,但我不确定这是否是个好主意。我可以使用 TCP 套接字,但拥有永久连接可能不是一个好主意。你怎么看?继续使用 RMI 是个好主意还是我应该换个角度看?

谢谢;)

【问题讨论】:

    标签: java sockets connection rmi


    【解决方案1】:

    我建议您使用队列(以及任何队列协议)。 ActiveMQRabbitMQQPID 或许多其他工具之一。

    我在 prod 中使用 ActiveMQ 并且很好用,但是对于非常高速的 RabbitMQ 会更好。

    您可以轻松扩展任意数量的工作人员,并以最简单的方式在工作人员之间共享/拆分任务。

    也请关注ActiveMQ or RabbitMQ or ZeroMQ or

    【讨论】:

    • 不会有这么多消息。只有一条消息用于设置任务,其他用于启动 fetcher 和一条停止消息以停止它。话虽如此,我不确定使用这个队列是否是个好主意。
    • 也许吧,但对我来说——不管你有多少任务。队列策略非常简单,里面包含了很多很酷的功能:你新错过的任务是工人将关闭,你可以启动 2 个或更多工人,他们将并行工作,你不需要编写额外的代码为了它。如果你不喜欢使用这么大的工具——使用 Http、REST/JSON
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多