java - 当消息生产者生产消息的能力远远大于消息的消费者的消费能力时,该如何解决内存泄漏的问题?
PHP中文网
PHP中文网 2017-04-18 10:30:07
0
3
579

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

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

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

怎么解决?

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(3)
小葫芦
  • 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.

大家讲道理

Il n'y a pas un RejectedExecutionHandler ?

黄舟

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!