3 个版本
0.0.3 | 2021年3月22日 |
---|---|
0.0.2 | 2021年3月11日 |
0.0.1 | 2021年3月11日 |
#1937 in 异步
15KB
158 行
JackRabbit
应始终运行的服务。
目的
此服务的目的是使用 Rust、MessagePack、RocksDB 和安全 WebSocket 构建一个实时持久化消息队列,它是多生产者和单消费者。
此服务旨在在主系统处理消息的同时,多个客户端可以添加消息,并且有一个故障转移系统连接。故障转移系统没有接收消息,并且是第二个连接的(连接顺序很重要)。
这对于您有一个单一的整体 WebSocket 系统作为 API 并且需要更新(离线)时很有用 - 您可以让故障转移系统在更新主系统时执行工作。
然后您关闭故障转移系统,主系统再次成为主系统。
有关如何构建工作客户端的更多信息,请参阅 tests
(目录)文件。
由于 JackRabbit 基于 MessagePack,因此支持 50 多种语言。
此服务非常轻量,因为它几乎不占用内存和 CPU。
当前版本不删除任何消息,因为它可能在未来支持重放。
JackRabbit 需要一个 SSL 证书,并推荐使用 Let's Encrypt,并且还需要一个 DNS A 记录,因为 rustls
不支持 IP 地址。
安装
cargo安装 jackrabbit
-
需要通过标志传递端口号 - 默认
443
-
要保存嵌入式 rocksdb 的数据库(路径) - 默认
tmp
-
链式证书(路径)所在位置 - 默认
certs/chain.pem
-
私钥(路径)所在位置 - 默认
certs/private_key.pem
-
示例:jackrabbit --save-path="tmp" --port="443" --cert="certs/chain.pem" --cert-path="certs/private_key.pem"
-
示例:jackrabbit(使用默认值)
服务
在代码中有 Ubuntu 的一个示例 systemctl
服务,名为 jackrabbit.service
。
依赖项
~38–55MB
~1M SLoC