Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
levkk/pgcat:Rust支持分片、负载平衡和故障转移的PostgreSQL池。
22-03-22
banq
类似PgBouncer支持分片、负载平衡和故障转移支持的 PostgreSQL 池程序。
特点:
会话模式:在会话模式下,客户端在连接期间与一台服务器对话。
事务模式:客户端在单个事务期间与一个服务器对话;一旦结束,服务器将返回到池中。
读查询的负载均衡:所有查询都使用循环算法针对配置的服务器进行负载平衡。最直接的配置示例是将这个池放在几个副本前面,并让它对所有查询进行负载平衡。
查询解析器:查询解析器将尽最大努力确定查询应该去哪里,但有时这是不可能的。在这种情况下,客户端可以使用以下自定义 SQL 语法选择它想要的服务器。
故障转移:在将所有服务器SELECT 1提供给客户端之前,都会通过查询检查所有服务器。如果服务器无法访问,它将被禁止,并且在禁止期间不能再提供任何交易。查询被路由到剩余的服务器。如果所有服务器都被禁止,则禁止列表被清除:这是针对误报的安全预防措施。初级永远不能被禁止。
分片:我们使用PARTITION BY HASH散列函数,与 Postgres 用于声明性分区的方法相同。这允许使用 Postgres 分区对数据库进行分片,并将分区放置在不同的服务器(分片)上。读取和写入查询都可以使用此池路由到分片。
实时配置重新加载:可以通过向进程发送 akill -s SIGHUP或通过查询RELOAD管理数据库来重新加载配置。
点击标题
RUST语言
PostgreSQL
分布式架构
GitHub开源免费源代码