#postgresql #zookeeper #connection-pool #pool #replication #resolver #primary

cueball-manatee-primary-resolver

这是针对Joyent manatee项目的cueball Resolver trait的一个实现。它查询zookeeper集群以确定从一组PostgreSQL复制节点中PostgreSQL复制主节点。

2个不稳定版本

0.5.1 2020年5月19日
0.3.0 2020年1月8日

#2557数据库接口

MPL-2.0 许可证

175KB
3K SLoC

cueball-manatee-primary-resolver

关于

这是cueball Resolver trait的一个实现,为连接池提供后端列表。有关更多信息,请参阅cueball文档。

此解析器特定于Joyent manatee 项目。它查询zookeeper集群以从一组PostgreSQL复制节点中确定PostgreSQL复制主节点。

有用工具

manatee-echo-resolver 二进制文件,在/rust-cueball/tools/中运行manatee主解析器,并将日志以及通过cueball通道接收到的消息打印到标准输出。这对于临时测试很有用。以下是构建和运行的步骤

# Note that these paths are relative to the repository root
$ cd rust-cueball

$ cargo build

$ ./target/debug/echo-resolver --help

测试套件

先决条件

测试套件需要具有以下属性的正在运行的ZooKeeper实例

  • ZooKeeper可在本地主机的2181端口上访问。
  • ZooKeeper作为SMF服务运行。

满足这两个标准的最简单方法是,在Joyent SmartOS上运行测试套件并通过pkgsrc安装ZooKeeper。

ZooKeeper实例不需要任何其他预先设置 - 测试套件将处理使用模拟数据的测试节点创建和删除。

运行测试套件

要运行测试套件,请运行cargo test

日志输出的数量可能会分散注意力。您可以通过将 RESOLVER_LOG_LEVEL 设置得较高来解决这个问题,例如 critical。默认日志级别是 info。如果您确实想查看日志输出,您可能希望将其导入到 bunyan 以提高可读性。由于测试可以在安全的情况下并行运行,它们的日志输出有时会交错,使其难以解析。如果这成为问题,您可以根据以下说明逐个运行测试: 这里

依赖项

~13MB
~249K SLoC