2014-02-28 58 views
1

我想知道在RabbitMQ中是否有一種方法可以從服務器端向用戶進行限制,以便一次只能連接一次相同的憑據和路由密鑰。如何在RabbitMQ中限制每個用戶的同時連接和相同的路由密鑰?

我的意思是:限制每個用戶的併發連接和相同的路由密鑰,沒有共享連接。

如果用戶使用X憑證連接並在y.z路由上偵聽並嘗試在具有相同信息的另一臺計算機上連接,則服務器應拒絕該連接。

我想從服務器應用這些限制,以避免在客戶端的黑客。

有沒有辦法做到這一點或類似的東西?

非常感謝!

回答

2

AFIK沒有開箱即用的解決方案。

您可以創建exclusive queue,命名爲queue_name.user_name,將其綁定爲您希望的所需交換,然後從該隊列中消耗。它將保證每次只有一個消費者可以與其連接。

+0

同意 - AMQP不支持本機。爲了加強剛度,你需要在你的RabbitMQ和你的客戶端之間傳遞一個消息傳遞層(可能是一個Web服務)。 – theMayer

+0

嗨,感謝您的建議,我會嘗試一下,我知道排他性,但可以在客戶端進行更改,我想AMQP協議中沒有任何內容,但希望在rabbitmq服務器中實現一些功能,使用圖層作爲Web服務也是一種可行的解決方案,但是客戶端的代碼可以再次跳轉,因此,可能在服務器中檢查連接的用戶並斷開連接的用戶的連接? – yeradis

+0

不,也許有一些插件,但我不知道任何一種。在RabbitMQ irc或郵件列表上提問這個問題,也許有人會爲你的問題提供答案。順便說一句,你可以寫它,用erlang編寫的RabbitMQ,它的代碼是在開源許可下授權的,所以它不會很難。 – pinepain

相關問題