你有几个邮箱呢?你是怎么分配它们的用途呢?码云账号增加多邮箱支持!
指数
0
Watch 14 Star 51 Fork 9

宏哥 / mq2MIT

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该项目是用于内部系统总线的消息队列, 非FIFO,基于 PostgreSQL 的物化队列实现 展开 收起

克隆/下载
宏哥 最后提交于 更新 mq2.sql
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

#MQ2 - 基于PG的物化队列 -- anthony chen

  • 场景 -- 交易系统当中的异步[生产者消费者模型]数据处理,数据以jsonb的形式进行交换
  • 实现 -- 队列的数据保存在磁盘,属于可靠性队列,支持事务,入列出列都可以被审计。依赖PG行锁实现互斥,条件索引进行性能提升。
  • 性能 -- 以10为批次处理, 出列速度可以轻松超10000/s,入列速度基本和表的插入速度完全一致
  • 特点 -- 宏哥出品. 在可靠的消费者/生产者模型当中,可以替代目前任何的队列实现,更简单,无BUG之忧.并且非常灵活.
  • 可靠 -- 宏哥已经大规模部署这个模块.
  • 简单 -- 只支持PG9.4以及以上版本,只支持jsonb数据类型
  • 荣耀 -- 180行代码包括注释, 可以在物化队列这个场景碾压任何open source MQ.
  • 自由 -- 既然开源, 请随意使用。不提供技术支持

#使用

  • 创建队列 select mq_create_queue('【QUEUE NAME】');

  • 删除队列 select mq_drop_queue('【QUEUE NAME】');

  • 数据入列 select mq_send('【QUEUE NAME】','【JSON STRING】',【 OPTIONAL MSG TYPE ID:bigint】);

  • 数据出列 select mq_recv('【QUEUE NAME】', 【 OPTIONAL NUMBER OF MSG:big int】,【 OPTIONAL MSG TYPE ID:bigint】) number of msg 可以指定一次性出列的数据数量,默认1, msg type id 可以指定 只取type id 相同的数据, 不设定则取队列中任何type.

  • 数据出列 select mq_recv('【QUEUE NAME】', '【MSG TYPE ID RESULT SET】',【 OPTIONAL MSG TYPE ID:bigint】) RESULT SET可以指定Raw SQL用于限定出列数据的类型范围 number of msg 可以指定一次性出列的数据数量,默认1

点评 ( 13 )

你可以在登录后,发表评论

搜索帮助