火花流而不是Java REST API

时间:2019-02-12 09:14:36

标签: rest apache-spark redis jax-rs spark-streaming

我们有一个现有的应用程序,该应用程序从其余端点接收数据。 进行一些过滤和操作,并将其存储到redis(内存数据库中)。 发送者是接收者(这里的接收者是一种从蓝牙信标接收数据并将数据发送到其余端点的设备),有效载荷并不大,但频率很高(每秒数万次)。该应用程序。

由于spark被认为是流处理的理想选择,因此我们的计划是保持端点不变(因为更改端点将需要在所有地理位置的所有接收器中手动更改端点),并在其余位置以某种方式使用spark应用程序以有效的方式处理和插入数据。

火花小批量作业将是一个问题,因为我们必须在短时间内以某种方式将数据存储在应用程序内部,为此我们必须实现一些Q,从而增加复杂性。

谁能显示一些见识。

2 个答案:

答案 0 :(得分:1)

这是不可能的,您需要为微批添加队列或某种缓冲区,没有像每个记录处理那样的东西,将来的版本中可能会提供。阅读第20章。流处理基础知识。您会得到一个清晰的主意

答案 1 :(得分:0)

这种情况很常见,我对你有一些建议。

建议堆栈:

  • 火花流
  • 卡夫卡

具有上述堆栈:

  • 您的端点未更改。使用新的实现而不是过程数据,您的端点将把数据发布到Kafka主题。
  • Spark Streaming将订阅Kafka主题,过滤和操作并将其存储到Redis

Sample Spark + Kafka