lua 發送消息到 Rabbitmq

教程 shanhuhai 7034℃ 0評論

lua 發送消息到 kakfka 的類庫挺多的,還都比較靠譜,但是 lua 連接 Rabbitmq 的幾個類庫好像都不太好用, 有用stomp 協議的, 還有 用AMQP 協議的,由于我的服務器上已經安裝了 rabbitmq-c , 它基本上就是一組實現了 AMQP 協議的 C 類庫, lua 能通過跨語言調用,調用這些 C 類庫的API, 而跨語言調用是 lua 的強項。

找到了一個類庫 amqp.lua
使用非常簡單,使用了 luajit提供的 ffi 庫來調用 C 類庫。

安裝

首先服務器上的 nginx 要安裝 lua-nginx-module 或者 openresty,然后要安裝 rabbitmq-c,可以參考 PHP 安裝 AMQP擴展 中有詳細的安裝方法。

查找你的 nginx.conf 配置, 找到 lua_package_path,即 lua 的類庫安裝目錄(openresty), 一般類似:

lua_package_path "/usr/local/nginx/conf/lua/?.lua;;"

下載 amqp 類庫:

cd  /usr/local/nginx/conf/lua/
mkdir -p amqp
cd amqp
curl -O https://raw.githubusercontent.com/cthulhuology/amqp.lua/public/amqp.lua

找一個虛擬主機配置,例如localhostserver 塊,添加:

    location = /queue {
      content_by_lua " 
            local data = { 
                ['name'] = 'shanhuhai',
                ['gender'] = '1' 
            }   
            local amqp = require 'amqp/amqp'
            local cjson = require 'cjson'
            amqp.connect('amqp://admin:admin@127.0.0.1:5672/')
            amqp.send('ex1', 'key_1', cjson.encode(data))
            amqp.disconnect()
      ";  
         add_header  Content-Type 'text/html; charset=utf-8';
    }  

測試

訪問 http://localhost/queue,即可測試, 測試前確認交換機 隊列 、 routingKey 是否已經設置好。

2017.12.7 更新

本文中使用的類庫,由于沒有連接復用機制,經測試性能較差,推薦使用另一種方式來發送消息到 rabbitmq 中,參考

lua 通過 stomp協議發送消息到 rabbitmq

轉載請注明:大后端 » lua 發送消息到 Rabbitmq

喜歡 (1)or分享 (0)
發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
春梓美 种子,av全裸挂历,日本女护士mm裸照写真,超碰地址发布页 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>