5个版本

使用旧的Rust 2015

0.1.4-pre2017年7月23日
0.1.3 2017年4月5日
0.1.2 2017年4月5日
0.1.1 2017年4月5日
0.1.0 2017年4月4日

#1530数据库接口

MIT 许可证

8KB
79

⚠️ 已弃用

@subzerocloud 从此项目中获得灵感,构建了 pg-amqp-bridge,它现在有更多选项,请使用它而不是此项目 👍


🚇 PostgreSQL到AMQP网关

将PostgreSQL的pg_notify通知转发到AMQP队列。

Cargo version Crates.io Crates.io Docker Automated build Docker Pulls Docker Stars Slack

⛴ Cargo

cargo install postgresql-to-amqp

🐳 Docker

docker run --rm -it \
-e POSTGRESQL_URI=postgresql://username:[email protected]:port/database \
-e POSTGRESQL_CHANNEL=foo \
-e AMQP_URI=amqp://127.0.0.1:5672/ \
-e AMQP_QUEUE_NAME=queueName fgribreau/postgresql-to-amqp

⚙ 配置

配置通过环境变量完成

  • POSTGRESQL_URI: 例如 postgresql://username:[email protected]:port/database
  • POSTGRESQL_CHANNEL: 例如 foo
  • AMQP_URI: 例如 amqp://127.0.0.1:5672/
  • AMQP_QUEUE_NAME: 例如 queueName

🎩 使用方法

启动转发器

POSTGRESQL_URI="postgresql://username:[email protected]:port/database" POSTGRESQL_CHANNEL="foo" AMQP_URI="amqp://127.0.0.1:5672/" AMQP_QUEUE_NAME="queueName" postgresql-to-amqp

在psql中执行

SELECT pg_notify('foo', 'payload');

转发器将记录并将通知转发到amqp队列

Forwarding Notification { process_id: 31694, channel: "foo", payload: "payload" } to queue "queueName"

👁 哲学

  • 低内存消耗(1,9Mo)
  • 单个二进制文件
  • 无依赖
  • 可预测的性能

🔫 待办事项

我将很高兴接受对这个项目的PR

  • AMQP连接字符串(AMQP身份验证支持)👻
  • 支持JSON消息
  • 发布到交换
  • 将原始通道作为消息属性添加
  • 将postgresql-to-amqp version 作为消息属性添加
  • 允许环境变量指定额外的消息属性
  • 处理AMQP断开/重新连接
  • 处理PostgreSQL断开/重新连接
  • 健康检查路由
  • 度量路由
  • 支持Docker
  • 支持Kubernetes 😍
  • 发布第一个主要版本,包含测试 ☝️

依赖项

~26MB
~590K SLoC