基于redis的python消息代理
rivulet的Python项目详细描述
文档:Read the docs。
快速启动
$ pip install rivulet
注释
限制
- 没有平衡的消费者(尚未)
- 如果没有适当的管理工具(请参阅TODOS),管理消息是 痛苦的原始redis。
待办事项
- 扩展测试
- 连接断开
- 并行生产者、消费者(强调锁定设置)
- 提供管理功能
- 列出频道,删除频道
- 计数、列出、更新订户
- 计数、列出、删除消息
实施细节
数据模型:
- rvl:lock:<channel_id>:用于在 多步骤redis调用(特别是在使用 服务器发出的、单调递增的消息序列id)。
- rvl:id:<channel_id>:提供序列id的计数器 频道中的消息
- rvl:msg:<channel_id>:映射压缩json字符串的zset 到消息sed id(允许对seq上的消息进行范围查询 身份证)。
- rvl:channel:<channel_id>:将客户机ID映射到最后一个 客户端看到的频道中的消息ID
- rvl:index:<client_id>:将频道id映射到最后一个的zset 客户端看到的消息ID客户端ID