ruby-on-rails - Distribute_reads gem 是否支持 Amazon Aurora 的负载平衡副本?
问题描述
我使用distribute_reads gem并具有以下database.yml
设置:
default: &default
url: postgresql-makara:///
makara:
sticky: true
connections:
- role: master
name: primary
url: <%= ENV["DATABASE_URL"] %> # aurora writer endpoint
- name: replica
url: <%= ENV["REPLICA_DATABASE_URL"] %> # aurora reader endpoint
development:
<<: *default
production:
<<: *default
当 CPU 增加时,Amazon Aurora 会创建额外的副本,但新副本似乎根本没有被使用。我们期望从过载副本的连接转移到新的副本。我已经在阅读连接应该以某种方式重新连接以直接连接到新副本。
我希望 gem 以与fresh_connection gem 提供的类似方式工作。下面是自述文件中的架构以及副本在我们的应用程序中的行为方式。
Rails -------+---- DB Master
|
| +------ DB Replica1 # CPU 99% 500 connections
| |
+---- Loadbalancer ---+
|
+------ DB Replica2 # CPU 5% 0 connections
解决方案
下面的设置database.yml
帮助我们在只读副本之间分配流量。
idle_timeout: 5
reaping_frequency: 5
推荐阅读
- html - jsPDF:ol li::marker 项目在生成的 PDF 中未对齐
- python - python中“w”模式创建的文件保存在哪里?
- python - Seleneum Xpath 点击:我做对了吗?
- unity3d - Unity Quaternion Lerp 方法总是返回 to 值
- ios - Apple Search Ads 证书创建不可用
- javascript - 当事件仅与 bind(this) 一起工作时,js 中的 removeEventListener 如何
- c# - 如何使用计时器制作动画?
- quarkus - Optaplanner 自定义阶段命令在本机构建中失败,找不到生成的 Gizmo 供应商
- android - 有没有办法在特定日期之前在应用订阅中销售?
- node.js - 如何使用 nodejs 中的套接字建立多个客户端和服务器连接?