【问题标题】:Store millions of data in mongo db using Springboot with rest api call efficiently使用 Spring Boot 和 rest api 调用有效地将数百万个数据存储在 mongodb 中
【发布时间】:2019-02-26 10:49:46
【问题描述】:

我正在开发带有 rest api 调用和 Mongo 数据库的 Spring-Boot。 我们有一些硬件设备作为客户端,我是服务器。多个客户端通过端口在毫秒内向我发送数百万字节的数据,IP 地址(即)字节大小为 4kb。

我通过端口号通过 TCP/UDP 服务器接收该字节数据。之后,我将使用阻塞队列概念将该数据发送到我的休息调用,并将批量插入数据存储在数据库中。

问题:

当客户端通过端口和 IP 地址(UDP 概念)向我发送 1000 万个数据时,但我方仅接收 5 到 600 万个数据并且丢失了 400 万个数据。

我观察到需要一些时间进行数据转换(意味着字节数据到 int、float、boolean)并且当时存储在 DB 中可能是客户端数据丢失

【问题讨论】:

  • 既然你好像自己修好了,我现在就修了。您的语言中的“数据”是否与“字节”相同,或者一百万个数据是多少?

标签: mongodb spring-boot udp blockingqueue


【解决方案1】:

这个问题太宽泛,范围太广,只是为了让你知道如何解决你的问题

  1. 如果可能的话,使用 mongodb 响应式迁移到 spring webflux,由于非阻塞 io,它将提高您的性能

  2. 您需要为您创建的微服务使用负载均衡器来使用记录

  3. 检查您的服务配置并查看它可以选择多少负载,但当然 webflux 将帮助您进行垂直扩展以消耗资源,但如果负载过高,请使用负载均衡器并将您的应用程序部署在多台机器上

  4. 数以百万计的记录在 mongodb 中很好,但您发现在集群上使用 mongodb 会降低性能。

这可以帮助您实现您的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2019-08-15
    • 2019-01-17
    相关资源
    最近更新 更多