我被要求创建一个平台来从 Twitter 流 API 下载推文。基本思想是让 Controller 生成任务,其中包含有关下载内容(关键字)以及如何序列化数据的信息。该任务被发送到远程服务器(相同或不同的网络)来执行任务并定期将推文保存在数据库中。我需要的是这样的:
- Controller :必须与 Fetcher 建立连接才能向其发送任务。必须验证所有提取器连接。
- Fetcher:应根据任务关键字从 Twitter 流 API 检索推文。每个提取器只有一个任务。无需手动注册。只需执行它并运行收到的任务即可。
- DB:必须定期存储推文的 JSON。由于会有很多 getter ,我需要一些东西来避免瓶颈。
话虽如此,我正在寻找的是如何实现这一点的好主意。目前我正在使用 SSLSockets 进行验证过程。之后,我关闭套接字并使用 RMI 发布 getter 并将注册表存储在服务器( Controller )中。它正在工作......或多或少......但我不确定这样做是否是一个好主意。
您对如何实现分布式计算平台有什么想法吗?我应该使用什么?
谢谢。
最佳答案
据我所知,RMI 只能让您执行 fetchers 端已经存在的代码。但听起来您想将代码发送到 Fetcher 来执行。
在这种情况下,我会考虑编写一个自己的ClassLoader
并将类字节码发送到提取器,然后加载并执行该提取器。
作为一种协议(protocol),我会推荐 HTTP,有相对稳定的实现,也支持 TLS 和 SSL,它消除了许多与 Socket 相关的痛苦。
关于java - Java分布式计算平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15220112/