Avatar
0
hyn1006 Beginner
hyn1006 Beginner
Web chat sử dụng Spring Webflux và WebSocket
Em đang thử build một Web chat sử dụng Spring Webflux và WebSocket, nhưng đang vướng một vài vấn đề về bộ nhớ.

Khi em sủ dụng WebSocket trong Webflux thì có sử dụng Sinks.Many để lưu lại sự kiện sau đó sẽ gửi tới những người đã đăng ký những sự kiện mới. Có một vấn đề ở đây là khi em chạy stress tess tầm 2000 kết nối trong vòng 1 phút chương trình thì lượng RAM bị tiêu thụ rất lớn, ngay cả khi không còn connection nào được kết nối cả. Sau đó một khoảng thời gian thì lượng RAM lại được giảm khá nhiều.

VD:

  • Lúc bắt đầu chạy: 161 MB

Stress test lần 1:

  • Sau khi có 2000 kết nối: 854 MB
  • Khi không còn kết nối nào: 592 MB

Stress test lần 2:

  • Tiếp tục 2000 kết nối: 592 MB -> 1290 MB
  • Khi không còn kết nối nào: 1012 MB

Sau tầm 15-20 phút thì lượng RAM giảm về 686 MB

Còn một điều nữa là mặc dù không có kết nối nào, nhưng RAM vẫn cứ tăng nhẹ 0,1MB/1s sau khi stress test(đóng hết kết nối và server vẫn chạy)

Dưới đây là đoạn code của em. Không biết có cách nào để giải phóng RAM khi các kết nối đã ngắt không ạ?

Em xin đặt code ở link dưới cho nó dễ nhìn ạ

Link code
  • Answer
question spring
Remain: 5
2 Answers
Avatar
tvd12 Beginner
tvd12 Beginner
Để anh dựng thành chương trình rồi chạy đã em nhé, việc này sẽ tương đối mất thời gian em ạ
  • 1
  • Reply
Em cảm ơn anh rất nhiều ạ. Em vừa bổ sung thêm câu hỏi để anh có thể dễ hình dung.  –  hyn1006 1631526071000
Avatar
tvd12 Beginner
tvd12 Beginner
The Best Answer
Anh thử trên máy anh chạy bình thường em ạ: https://github.com/tvd12/java-examples/tree/master/spring-websocket
  • 1
  • Reply
Em cảm ơn project của anh ạ. Anh có gợi ý nào cho em trong việc xây dựng Web chat sử dụng Webflux không ạ?  –  hyn1006 1631585726000
anh thì không thể khuyên em được, nhưng với cá nhân anh thì anh sẽ không dùng webflux và websocket của spring, vì bản chất nó cũng đi wrap lại các thư viện khác thôi chứ nó chẳng làm gì hơn cả, các vấn đề của socket vẫn còn nguyên và chưa được giải quyết triệt để.  –  tvd12 1631591567000
Em xin cảm ơn sự chia sẻ của anh. Chúc anh buổi tối tốt vui vẻ ạ  –  hyn1006 1631591921000