国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Nginx通過LUA腳本訪問RabbitMQ消息隊(duì)列

發(fā)現(xiàn)了一個Nginx的LUA腳本:lua-resty-rabbitmqstomp,可以讓Nginx通過LUA腳本訪問RabbitMQ消息隊(duì)列,這個腳本是通過stomp協(xié)議連接RabbitMQ的stomp適配器,來pub/sub消息的

關(guān)于RabbitMQ-STOMP安裝使用相關(guān)內(nèi)容可以參見:RabbitMQ STOMP Adapter

關(guān)于Nginx-LUA模塊安裝使用參見:LAMP架構(gòu)演進(jìn)到LAMPGC,再演進(jìn)到LNMLGC

關(guān)于STOMP協(xié)議相關(guān)資料參見這里:

STOMP官方英文協(xié)議1.1版

STOMP協(xié)議學(xué)習(xí)與實(shí)戰(zhàn)-1.1版

STOMP官方英文協(xié)議1.2版

STOMP協(xié)議說明書-1.2版


nginx配置:

location /rabbitmq { lua_code_cache off; content_by_lua_file conf/rabbitmq.lua; }

rabbitmq.lua源碼如下,該腳本簡單的實(shí)現(xiàn)pub一個消息然后再sub該消息,set_timeout(60000)表示sub消息如果沒有消息時等待60S超時

local strlen = string.lenlocal json = require 'json'local rabbitmq = require 'rabbitmqstomp'local mq, err = rabbitmq:new()if not mq then returnendmq:set_timeout(60000)local ok, err = mq:connect { host = '127.0.0.1', port = 61613, username = 'guest', password = 'guest', vhost = '/' }if not ok then returnendngx.log(ngx.INFO, 'Connect: ' .. 'OK')local msg = {key='value1', key2='value2'}local headers = {}headers['destination'] = '/queue/my_queue'headers['receipt'] = 'msg#1'headers['app-id'] = 'luaresty'headers['persistent'] = 'true'headers['content-type'] = 'application/json'local ok, err = mq:send(json.encode(msg), headers)if not ok then returnendngx.log(ngx.INFO, 'Published: ' .. json.encode(msg))local headers = {}headers['destination'] = '/queue/my_queue'headers['persistent'] = 'true'headers['id'] = '123'local ok, err = mq:subscribe(headers)if not ok then returnendlocal data, err = mq:receive()if not data then returnendngx.log(ngx.INFO, 'Consumed: ' .. data)ngx.header.content_type = 'text/plain';ngx.say(data);local headers = {}headers['persistent'] = 'true'headers['id'] = '123'local ok, err = mq:unsubscribe(headers)local ok, err = mq:set_keepalive(10000, 10000)if not ok then returnend

具體擴(kuò)展一下,可以實(shí)現(xiàn)推送功能:發(fā)送方調(diào)用send將消息pub到RabbitMQ,接收方設(shè)置一個超時調(diào)用subscribe訂閱消息(就類似于long polling)


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
nginx與lua的執(zhí)行順序和步驟說明(轉(zhuǎn))
RestFul 采用nginx作為請求審計記錄工具
Nginx下Lua處理階段與使用范圍
openresty使用http模塊
nginx + lua 限制ip地址訪問
openresty(nginx+lua)學(xué)習(xí)小記
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服