天天看點

29. Apache apollo和mqtt下載下傳和部署

一. 簡介

引用其他文章:

Apache Apollo是一個代理伺服器,其是在ActiveMQ基礎上發展而來的,可以支援STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多種協定。

      Apollo允許用戶端通過開放的MQTT協定連接配接。該協定主要是用在資源有限的驅動上,以及網絡不穩定的情況下使用,是一個訂閱、釋出模型。這種驅動通常不适用類似http,stomp這類基于文本,或者類似openfire,AMQP等傳統二進制協定。MQTT是一個簡介的二進制協定,适用這類驅動資源受限,而且是不穩定的網絡條件下。之前的穩定釋出版本中,MQTT是作為一個Apollo的一個插件提供的。但是現在,這個插件已經變為開發項目的一部分。MQTT在Apollo中已經不需要其他配置檔案或者是第三方插件支援了。

MQTT是一個線路層的協定,任何實作該協定的用戶端都可以連接配接到Apollo。當然也可以整合其他MQTT相容的消息代理中。

二. Mac下apollo安裝

1.下載下傳

<a href="http://activemq.apache.org/apollo/download.html" target="_blank">apollo下載下傳以及源代碼下載下傳</a>

2.解壓

3. 添加環境變量

APOLLO_HOME=解壓目錄

4. 建立broker目錄,最好不要跟APOLLO_HOME一緻,便于以後更新

5. 建立broker

<code>1. cd broker目錄</code>

<code>2. ${APOLLO_HOME}/bin/apollo create mybroker</code>

注意windows下指令可能不同,應該可以直接把apollo.bat拖過來執行。

執行完之後,應該會提示怎麼運作:

<code>You can now start the broker by executing:</code>

<code>"/Users/huangrongwei/Documents/1_work_project/apache_apollo/apollo_broker/mybroker/bin/apollo-broker" run</code>

<code>Or you can run the broker in the background using:</code>

<code>"/Users/huangrongwei/Documents/1_work_project/apache_apollo/apollo_broker/mybroker/bin/apollo-broker-service" start</code>

6. 運作broker

按照上面的提示,選擇一個運作。第一個是前台運作,就是會占用你的指令行,不會退出。

下面一個指令是背景運作。

7.檢視apollo程序

<code>ps -elf | grep apollo</code>

結果如下;

<code>501  5418  5361     400e   0  31  0  5048532 125212 -      S+                  0 ttys006    2:00.45 apollo -ea -serv  1:27下午</code>

8. 浏覽器檢視結果

<code>http://127.0.0.1:61680/ 或者 https://127.0.0.1:61681/</code>

第一個是http的,後面一個是https的。

預設登入的使用者名是admin/password,這樣就可以看到apollo的管理界面。

三. 用戶端測試apollo

在apollo的解壓檔案夾裡面有個example檔案夾,裡面有個mqtt-&gt;java

用eclipse導入這個maven工程(eclipse-&gt;file-&gt;import-&gt;maven project),注意可能需要安裝maven eclipse插件

然後裡面有個Listener.java和Publisher.java,可以訂閱和釋出消息。直接右擊-&gt;Run as java application啟動起來。

然後看輸出結果。

Listener.java最後會輸入下面的消息。表示1萬條消息接受花費了0.93秒

<code>Received 0 messages.</code>

<code>Received 1000 messages.</code>

<code>Received 2000 messages.</code>

<code>Received 3000 messages.</code>

<code>Received 4000 messages.</code>

<code>Received 5000 messages.</code>

<code>Received 6000 messages.</code>

<code>Received 7000 messages.</code>

<code>Received 8000 messages.</code>

<code>Received 9000 messages.</code>

<code>Received 10000 in 0.93 seconds</code>

四. 其他

1. curl通路apollo

<code>curl -u "admin:password" http://localhost:61680/broker.json</code>

結果{"id":"default","state":"STARTED","state_since":1499318856654,"version":"1.7.1","home_location":"/Users/huangrongwei/Documents/1_work_project/apache_apollo/apache-apollo-1.7.1","base_location":"/Users/huangrongwei/Documents/1_work_project/apache_apollo/apollo_broker/mybroker","jvm_metrics":{"heap_memory":{"used":23072848,"alloc":79691776,"max":954728448},"non_heap_memory":{"used":71784880,"alloc":74203136,"max":-1},"classes_loaded":7893,"classes_unloaded":0,"threads_current":27,"threads_peak":32,"os_arch":"x86_64","os_name":"Mac OS X 10.12.4","os_memory_total":8589934592,"os_memory_free":60743680,"os_swap_total":0,"os_swap_free":1073741824,"os_fd_open":135,"os_fd_max":6250,"os_load_average":2.90869140625,"os_cpu_time":128597245000,"os_processors":4,"runtime_name":"[email protected]","jvm_name":"Java HotSpot(TM) 64-Bit Server VM 1.8.0_131 (Oracle Corporation)","uptime":14200613,"start_time":1499318843487},"current_time":1499333764968,"virtual_hosts":["mybroker"],"connectors":["tcp","tls","ws","wss"],"connection_counter":16,"connected":0,"messages_sent":80008,"messages_received":70007,"read_counter":19251413,"write_counter":22040503}

2. mqtt協定内容

http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#fixed-header

     本文轉自rongwei84n 51CTO部落格,原文連結:http://blog.51cto.com/483181/1944976,如需轉載請自行聯系原作者