distribute_reads gem 是否支持 Amazon Aurora 的负载均衡副本?
Does distribute_reads gem support load balancing replicas for 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
Amazon Aurora 在 CPU 增加时创建额外的副本,但新副本似乎根本没有被使用。我们希望连接从过载副本转移到新副本。我已经读到连接应该以某种方式重新连接以定向到新副本。
我希望 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
我使用 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
Amazon Aurora 在 CPU 增加时创建额外的副本,但新副本似乎根本没有被使用。我们希望连接从过载副本转移到新副本。我已经读到连接应该以某种方式重新连接以定向到新副本。
我希望 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