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

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

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

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

怎么解决?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(3)
小葫芦
  • 우선 이것을 메모리 누수라고 부르지는 않습니다. 이름이 좀 헐렁하네요

  • 신뢰도 요구 사항이 높지 않은 경우 일부를 무작위로 버리는 것을 고려할 수 있습니다

  • 확장 하드웨어

  • 신뢰성에 대한 요구사항이 있는 경우. 쉽게 말하면 하드디스크나 데이터베이스에 먼저 던져지게 된다. 즉, 메모리에 저장할 수 없다. 이는 Java의 Socket 인스턴스와 약간 비슷합니다. 각각 SendQ 대기열과 RecvQ 대기열을 유지하는 InputStream 및 OutputStream이 있지만 이는 메모리에 있으므로 하드 디스크에 넣기만 하면 됩니다.

大家讲道理

RejectedExecutionHandler은 없나요?

黄舟

메모리가 유출되더라도 여전히 충돌은 발생하지 않습니다. RejectedExecutionHandler는 거부된 작업을 처리합니다. Redis를 사용하는 것은 어떨까요? 하하

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿