簡體   English   中英

從 RabbitMQ 服務器收聽/訂閱推送通知的最佳實踐是什么?

[英]What is the best practices to listen/subscribe push notifications from RabbitMQ server?

我使用帶有 NestJs 的微服務架構創建了 2 個獨立的應用程序。 一個是主應用程序(端口 9000),另一個是通知服務(amqp & http 端口 9001)。

我已經使用 RabbitMQ (amqp) 成功觸發了從主應用程序到通知服務的通知。

為了收聽通知,我分離了(端口 3000)前端應用程序(ReactJs)。 我所做的是:

  1. 在 React 中,使用amqp-client直接收聽 RabbitMq。 我能夠收到推送通知。
  2. 在 React 中,使用StompJs over WebSocket connection直接收聽 RabbitMq。 我能夠收到推送通知。

問題是,我覺得直接聽RabbitMq服務器是不行的。

我在想的第三種解決方案是在通知服務中添加 WebSocket,然后前端應用程序(ReactJs)將直接監聽通知服務而不是 RabbitMq。

在這種情況下,最佳做法是什么? 你認為哪一個是最好的,1/2/3? 或者你有其他建議嗎?

謝謝你。

我永遠不會將 RabbitMQ 暴露給前端,因為它並不意味着開放。 RabbitMQ 是為微服務完美設計的,因此多個后端服務可以監聽任何消息。 它並不打算向公眾開放,而只是用於內部網絡中的服務器到服務器通信。

此外,如果您將 RabbitMQ 直接暴露給前端,還會存在相當多的安全問題。 這是一種不好的做法,您應該始終添加一個中間件,在您的情況下是通知服務,在兩者之間收聽 RabbitMQ 並將消息再次推送回客戶端。 您可以為此使用 WebSockets。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM