如何安排历史数据流量以免影响实时流量?

时间:2019-06-08 22:07:29

标签: java schedule

我有系统设计问题。在当前体系结构中,主机将接受实时数据流的一个输入(例如客户的购物请求),并对这些数据进行一些处理。我的工作是使主机能够提取历史数据并对这些数据执行相同的工作。

有两个要求:

  1. 历史输入应将对实时输入过程的影响降到最低。
  2. 它不应耗尽主机的CPU。

换句话说,实时数据具有更高的优先级。收到实时数据后,应尽快处理它们。实时数据是不一致的,有时没有实时数据,尤其是在非高峰时间。

我有两个选择。

  1. 实时和历史输入的轮询类型调度。如果实时输入为空,则主机可以提取历史数据。 局限性:
    • 如果实时输入为空并且历史输入量足够大,则主机将被完全占用。
    • 需要确定历史数据的运行时间并返回到实时流,以便我们可以及时处理实时输入。
  2. 由于这是由多个线程(总共10个线程)完成的,因此我们可以指定一个线程来运行历史输入。这不会给实时流量带来延迟,也不会导致高CPU速率。

此问题还有其他选择吗?

0 个答案:

没有答案