文章出處

想寫這篇文章很久了,今天終于有時間總結一下,一個大型的系統里,消息中間件是必不可少的,它將并發環境處理的數據異步進行處理,有效的提高了系統的并發能力,有很多系統的瓶頸點都在于此,而消息中間件在這個時候就要登場了,它解決的問題也就是高并發的處理,將同步的阻塞變成異步的處理!

我們工作中經常使用到的消息組件有:RabbitMQ,Equeue,ActiveMQ,Kafka等,最近大叔自己也寫了一套,取名為LindMQ,各位有時間可以多關注!

下面我們以RabbitMQ來說說它的安裝與部署:

1 Erlang

是一種通用的面向并發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模并發活動的編程語言和運行環境.

OTP 19.2 Readme File

2 RabbitMQServer

是一種應用程序對應用程序的通信方法。應用程序通過讀寫出入隊列的消息(針對應用程序的數據)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用于諸如遠程過程調用的技術。排隊指的是應用程序通過 隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求.

rabbitmq-server-3.6.6.exe

3 安裝完成后,開啟rabbitMQ的服務,然后它會去監聽一些端口,用來進行數據通訊

  • 端口4369 (epmd), 25672 (Erlang distribution)

  • Epmd是Erlang Port Mapper Daemon的縮寫,在Erlang集群中的感化相當于dns的作用,供給節點名稱到端口的查詢辦事,epmd綁定在總所周知的4369端口上。

  • 端口5672, 5671 (AMQP 0-9-1 without and with TLS)

  • AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的中間件設計。基于此協議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產品,不同的開發語言等條件的限制。Erlang中的實現有 RabbitMQ等。

  • 端口15672 (if management plugin is enabled)

  • 通過http://serverip:15672訪問RabbitMQ的Web管理界面,默認用戶名密碼都是guest。(注意:RabbitMQ 3.0之前的版本默認端口是55672,下同)

  • 端口61613, 61614 (if STOMP is enabled)

  • Stomp是一個簡單的消息文本協議,它的設計核心理念就是簡單與可用性,官方文檔:http://stomp.github.com/stomp-specification-1.1.html

    現在我們就來實踐一下Stomp協議,你需要的是:

    1.一個支持stomp消息協議的messaging server(譬如activemq,rabbitmq);

    2.一個終端(譬如linux shell);

    3.一些基本命令與操作(譬如nc,telnet)

  • 端口1883, 8883 (if MQTT is enabled)

    MQTT只是IBM推出的一個消息協議,基于TCP/IP的。兩個App端發送和接收消息需要中間人,這個中間人就是消息服務器(比如ActiveMQ/RabbitMQ),三者通信協議就是MQTT

好了,介紹了這些多,相信大家也是心里癢癢了,下一講,咱們開始寫RabbitMQ的demo了,敬請期待!


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    發表留言