取得領先
VMware 提供培訓和認證,以加速您的進步。
瞭解更多RabbitMQ 是一個強大的訊息代理,基於 高階訊息佇列協議 (AMQP)。在 之前的文章中,我們研究瞭如何構建 Python 股票行情程式。我們比較了使用 RabbitMQ 的 pika 和 py-amqplib,以及如何在兩者之間輕鬆轉換,只需進行最小的更改。
在本文中,我們將展示如何使用 pika 被 Spring Python 輕鬆使用。 Spring Python 是用 Python 語言實現的 Spring 概念。 它包含許多功能,例如 依賴注入。 如果我們選擇在 Python 中構建類似 Spring 的應用程式,則很容易利用 pika。
任何 Spring 應用程式的核心是一組藍圖或應用程式上下文。 Spring Python 和 Spring Java 都是如此。
正如你肯定注意到的那樣,此上下文不是用 XML 編寫的。 而是使用純 Python 編寫的。 這與 Spring Java Config 非常相似(此後已納入核心 Spring Framework)。 這定義了釋出者和訂閱者。下圖顯示了兩個終端視窗。 後臺視窗顯示行情自動收錄器應用程式正在執行,輸出股票報價。 如果仔細觀察,您會注意到最後一個引數是標識 ID 為 290 的訊息。 前臺視窗顯示經紀公司正在訂閱股票報價。 它剛剛收到訊息 290,然後打印出其當前淨值。
[caption id="attachment_5659" align="alignnone" width="784" caption="行情自動收錄器和經紀公司在 Spring Python 中執行"][/caption]
因為我們使用 Spring Python 注入基於 pika 的 RabbitMQ 客戶端,所以我們可以輕鬆地將它們切換為其他客戶端。 正如之前的部落格文章中指出的那樣,這有助於我們避免鎖定,而是根據重要因素選擇解決方案:技術價值、供應商支援和業務需求。 Pika 已經證明自己是一個活躍的專案,並獲得了開發 RabbitMQ 代理的同一團隊的支援。 從 py-amqplib 遷移到它很容易,並且支援我們正在使用的任何工具,包括我們剛剛看到的 Spring Python。 如果將來需要,可以很容易地遷移到另一個庫。