RabbitMQ是實作了高階訊息佇列協定(AMQP)的開源訊息代理軟體(也稱為以訊息為導向的中間件)。
RabbitMQ伺服器是用Erlang語言寫的,而叢集和故障轉移是建構在開放電信平台框架上的。所有主要的程式語言均有與代理程式介面通訊的客戶端程式庫。 (推薦學習: swoole影片教學)
RabbitMQ是一套開源(MPL)的訊息佇列服務軟體,是由LShift 提供的一個Advanced Message Queuing Protocol (AMQP) 的開源實作,由以高性能、健壯以及可伸縮性出名的Erlang 寫成。
主要特性
可伸縮性:群集服務
#訊息持久化:從記憶體持久化訊息到硬碟,再從硬碟載入到內存
Swoole是一個PHP的C擴展,可用來開發PHP的高效能高並發TCP/UDP Server。
Swoole的網路IO部分是基於epoll/kqueue事件循環,是全異步非阻塞的。業務邏輯部分使用多進程同步阻塞方式來運作。這樣既保證了Server能夠應付高並發和大量TCP連線。又保證業務程式碼仍然可以簡單的編寫。
Swoole1.6.2之後增加了非同步支持,應用程式也可以像node.js一樣寫非同步回調。
Swoole與Node.js相比更強大,支援同步/非同步、多進程並行,Swoole提供了進程生命週期管理、記憶體保護機制,開發者無需考慮底層細節,專注於業務邏輯和功能的開發。
Swoole底層內建了非同步非阻塞、多執行緒的網路IO伺服器。 PHP程式設計師只需處理事件回調即可,無需關心底層。與Nginx/Tornado/Node.js等全非同步的框架不同,Swoole既支援全異步,也支援同步。
Swoole從2.0版本開始支援了內建協程,可以使用完全同步的程式碼實作非同步程式。 PHP程式碼無需額外增加任何關鍵字,底層自動進行協程調度,實現非同步。
Swoole是開源免費的自由軟體,授權協定是Apache2.0。企業和開發者均可免費使用Swoole的程式碼,在Swoole之上所做的修改無需開源。
以上是swoole和rabbitmq的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!