连贯参数介绍
loadBalanceHosts管制负载平衡,默认禁用,开启后依序抉择一个ip1:port进行连贯。
targetServerType指定Connection连贯特定状态的数据库实例,可选状态值包含any, primary, master, slave, secondary, preferSlave and preferSecondary。
实际上targetServerType的值咱们只须要晓得master、slave、preferSlave三个就能够,其它的能够看做同义词。
- master:可写(当然也可读)。
- slave:可读(不可写)。
- preferSlave是优选可读状态:只有下面的ip:port列表有一个可读状态的实例,则优选进行连贯,除非所有的可读实例都不可连贯(比方所有备机宕机),才会去连贯可写节点。
常见写场景配置
loadBalanceHosts=false&targetServerType=master
loadBalanceHosts参数默认是false,可不必配置,此时应用层能够进行写操作。
参考代码如下:
此时192.168.137.101、192.168.137.102、192.168.137.103三个节点无论角色如何产生切换,应用层可主动找到master角色进行写操作,上面是测试截图:
master在192.168.137.101上
master在192.168.137.102上
master在192.168.137.103上
常见读场景配置
loadBalanceHosts=true&targetServerType=preferSlave
上面比照测试下targetServerType=slave与targetServerType=preferSlave的区别:
targetServerType=slave
targetServerType=preferSlave
从下面两个测试截图能够看出:当所有读写节点都失常提供服务时,targetServerType=preferSlave会优先选择读节点,而不会去连贯写节点。
接下来敞开读节点192.168.137.102之后进行测试:
能够看到敞开读节点192.168.137.102后,targetServerType=preferSlave还是会只去连贯剩下的读节点192.168.137.103,而不会连贯写节点192.168.137.101
再同时敞开读节点192.168.137.102和192.168.137.103之后进行测试:
能够看到同时敞开读节点192.168.137.102和192.168.137.103后,targetServerType=preferSlave最初会去连贯写节点192.168.137.101。
墨天轮原文链接:https://www.modb.pro/db/22217...(复制链接至浏览器或点击文末浏览原文查看)
对于作者
彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁徙及优化,Oracle到PostgreSQL的迁徙降级,异构数据库整合;作为墨天轮PostgreSQL实际专栏作者,热衷于PostgreSQL实际技术分享,在本人的岗位踊跃推广PostgreSQL,致力为PG社区多做贡献。