lua 发送消息到 Rabbitmq
2022/2/17 23:20:17
本文主要是介绍lua 发送消息到 Rabbitmq,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
找一个虚拟主机配置,例如localhost
的 server
块,添加:
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 是否已经设置好。
转自:http://www.dahouduan.com/2017/11/24/lua-rabbitmq/
这篇关于lua 发送消息到 Rabbitmq的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29AutoMQ 产品动态 | 企业版正式上线阿里云、AWS 中国区云市场
- 2024-05-29盘点 AutoMQ 深度使用的阿里云云原生技术
- 2024-05-29盘点 AutoMQ 深度使用的阿里云云原生技术
- 2024-05-29AutoMQ 社区双周精选第十期
- 2024-05-08「布道师系列文章」解析 AutoMQ 对象存储中的文件存储格式
- 2024-05-08「布道师系列文章」小红书黄章衡:AutoMQ Serverless 基石-秒级分区迁移
- 2024-05-08AutoMQ 系统测试体系揭秘
- 2024-03-14AutoMQ 携手阿里云共同发布新一代云原生 Kafka,帮助得物有效压缩 85% Kafka 云支出!
- 2024-02-22kafka partitioner
- 2024-01-24AutoMQ生态集成 - 将数据从 AutoMQ Kafka 导入 RisingWave 数据库