我有MySQL集群,主服务器和4个从服务器。 基于Symfony3的站点,Doctrine用作ORM和DBAL。 我对Doctrine的配置如下所示:
doctrine:
dbal:
default_connection: default
connections:
default:
dbname: "%default_db_master_name%"
host: "%default_db_master_host%"
port: "%default_db_master_port%"
user: "%default_db_master_user%"
password: "%default_db_master_password%"
charset: UTF8
driver: "%default_db_master_driver%"
logging: "%kernel.debug%"
profiling: "%kernel.debug%"
wrapper_class: AppBundle\Connection\AppMasterSlaveConnection
mapping_types:
enum: string
slaves:
slave1:
host: "%default_db_slave1_host%"
port: "%default_db_slave_port%"
dbname: "%default_db_slave_name%"
user: "%default_db_slave_user%"
password: "%default_db_slave_password%"
slave2:
host: "%default_db_slave2_host%"
port: "%default_db_slave_port%"
dbname: "%default_db_slave_name%"
user: "%default_db_slave_user%"
password: "%default_db_slave_password%"
我想为奴隶添加权重,因为它们的硬件不相等,其中一些更高效,一些更少。 此外,我想注入memcache服务(或注入params用于创建缓存服务对象),以便放置由请求重载的临时dns,并让他们有机会恢复正常。 例如,我想按照以下方式为奴隶注入重量参数:
slave1:
host: "%default_db_slave1_host%"
port: "%default_db_slave_port%"
dbname: "%default_db_slave_name%"
user: "%default_db_slave_user%"
password: "%default_db_slave_password%"
weight: "%default_db_slave1_weight%"
slave2:
host: "%default_db_slave2_host%"
port: "%default_db_slave_port%"
dbname: "%default_db_slave_name%"
user: "%default_db_slave_user%"
password: "%default_db_slave_password%"
weight: "%default_db_slave2_weight%"
当我添加此选项时,收到错误
InvalidConfigurationException in ArrayNode.php line 317:
Unrecognized option "weight" under "doctrine.dbal.connections.default.slaves.slave1"
我不知道怎么做。我只有一个想法,通过驱动程序选项传输所有这些参数,类似这样
logging: "%kernel.debug%"
profiling: "%kernel.debug%"
wrapper_class: AppBundle\Connection\AppMasterSlaveConnection
options:
slave1: 5
slave2: 25
slave3: 45
slave4: 25
cache: '%memcached_db%'
mapping_types:
enum: string
slaves:
slave1:
但看起来很糟糕。
请帮帮我。