考虑一个在 Web 上搜索特定数据的工作进程。需要另一个过程来索引第一个过程的结果以供以后使用。索引部分涉及以特定方式将原始数据(搜索结果)写入一个巨大的分布式 HBase 存储库。我无法判断这两个过程相互比较的速度。我们可能会遇到这样一种情况,其中一个系统暂时停机,需要在唤醒时执行任务。我正在使用 JavaEE。目前,这是我想到的实现方式。
- 第一个进程将其搜索结果存储在 MySQL 数据库中,并发送一条消息,其中包含它已放入表中的新行的 ID。
- MOM 唤醒第二个进程以使用存储在 MySQL 数据库中的新原始数据。
- 第二个过程在完成对真实数据库(HBase)中的数据的索引时清除 MySQL 表。
我需要专家对我的设计进行评论,以验证其适当性。例如,如果第二个进程不断轮询表以查看是否有新记录怎么办?我是在使用正确的技术还是矫枉过正?我应该简化我的设计还是遗漏了什么?如果我的解决方案是合适的,在实施过程中我应该记住什么吗?提前致谢。