pgmb
一个简单的PostgreSQL消息代理系统
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgmb | 1.0.0 | FEAT | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2670 | pgmb | 否 | 否 | 否 | 是 | 否 | 否 | pgmb |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.0 | 1817161514 | pgmb | pg_cron, http |
| RPM | PIGSTY | 1.0.0 | 1817161514 | pgmb_$v | pg_cron_$v, pgsql_http_$v |
| DEB | PIGSTY | 1.0.0 | 1817161514 | postgresql-$v-pgmb | postgresql-$v-cron, postgresql-$v-http |
构建
您可以使用 pig build 命令构建 pgmb 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pgmb 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
pgmb 扩展提供数据库内置的消息代理,支持基于 HTTP 的工作进程分发、自动重试、死信队列和基于模式的路由。
SQL
注册工作进程
SQL
创建队列
SQL
发送消息
SQL
API 参考
| 函数 | 描述 |
|---|---|
pgmb.worker(name, endpoint, rps) | 注册 HTTP 工作进程端点 |
pgmb.create(name, binding_key, max_retries, worker_id) | 创建带路由模式的队列 |
pgmb.send(id, routing_key, body) | 发送消息 |
pgmb.send(id, routing_key, body, headers) | 发送带头部的消息 |
pgmb.send(id, routing_key, body, headers, delay) | 发送延迟消息 |
工作原理
- 消息通过
pgmb.send()插入到pgmb.messages表 - 触发器根据路由键模式将消息路由到匹配的队列
pg_cron每秒通过 HTTP POST 将消息分发到工作进程端点- 失败的消息会被重试;超过最大重试次数后移入死信队列
监控
SQL