Maison  >  Questions et réponses  >  le corps du texte

java - 当消息生产者生产消息的能力远远大于消息的消费者的消费能力时,该如何解决内存泄漏的问题?

当消息生产者生产消息的能力远远大于消息的消费者的消费能力时,程序会发生什么事?

例如我这里有组桥接的生产者,每30秒会发布3700万条消息,而消费者就是一个简单的客户端,处理这3700万条消息,消费者会发生什么事?

//我知道消费者的缓冲队列会爆满溢出,导致内存泄露

怎么解决?

PHP中文网PHP中文网2741 Il y a quelques jours588

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-18 10:32:07

    • Tout d’abord, cela ne s’appelle pas une fuite de mémoire. Le nom est un peu vague

    • Si vous n'avez pas d'exigences élevées en matière de fiabilité, vous pouvez envisager d'en jeter au hasard

    • Matériel d'extension

    • Si vous avez des exigences de fiabilité. Pour faire simple, il est d’abord jeté sur le disque dur ou la base de données. Bref, il ne peut pas être stocké en mémoire. C'est un peu comme l'instance Socket en Java. Il existe un InputStream et un OutputStream qui maintiennent respectivement une file d'attente SendQ et une file d'attente RecvQ, mais elle est en mémoire et nous la mettons simplement sur le disque dur.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:32:07

    Il n'y a pas un RejectedExecutionHandler ?

    répondre
    0
  • 黄舟

    黄舟2017-04-18 10:32:07

    Même si la mémoire fuit, elle ne plante toujours pas. RejectedExecutionHandler gère les tâches rejetées, pourquoi ne pas utiliser Redis, haha

    répondre
    0
  • Annulerrépondre