AMQP-REST

AMQPについてよく話しました。 AJAXに焦点を当てた別の開発

機能:



データはJSONで返されます。





組立




ログファイル/usr/local/var/amqp.log ; #ログファイル



pidfile / tmp / amqp。 pid ; #pidfile



log_level notice ; #ロギングのレベル:エラー、通知、警告、デバッグ



デーモンオン; #デーモンモード



ポート80 #httpポート、デフォルト80

http 10.0.0.1 ; #バインドIP



amqp: 5672 ; #amqp接続文字列psw:login @ host:port / vhost





打ち上げ


./amqp-rest [ -]

./amqp-rest stop //

kill -s HUP `ps | grep amqp-rest | awk '{print $1}'` //









使用する


キューから1つのアイテムを読み取ります

キュー名は、最後のスラッシュまでURLの正しい部分です。 url / sss / q2の場合、キュー名は「q2」です。 これは、すべてのURLが特定の場所でハングし、nginxを介してプロキシされるため、意図的に行われます。

curl 10.0.0.1:8080/sss/q2

{"result": "OK", "message":"message 2", size : 2}

// size - , .









キューからすべてのアイテムを読み取ります

curl 10.0.0.1:8080/sss/q2?all

{"result": "OK", "count" : 2, messages ["message 3","the text\"xxxx\" tttt"]}

// count - .









キューサイズ

curl 10.0.0.1:8080/sss/q2?count

{"result": "Ok", "count": 3 }









出版

交換名は、最後のスラッシュと「?」の間のURLの一部でもあります。また、交換キーは、疑問符の後のURLの一部です。 たとえば、URL 10.0.0.1の場合 :8080 / sss / ex1?

交換名はex1、ルーティングキーはニュースです

curl -d 'some post data' 10.0.0.1:8080/sss/ex1?news

{"result": "Ok"}









もちろん、すべてがAJAX用に設計されています。 nginxはサーバーの前に立ち、amqp-restのリクエストをプロキシします。 異なるIPにぶら下げれば、nginxなしで実行できます。 私の場合、ngx_accesskey_moduleを使用してスパムから保護しています。 おそらく、この機能は将来amqp-restに移行されるでしょう。



結論


パフォーマンスの悔い改め:1300rps

メモリ空間601k



All Articles