连贯参数介绍

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社区多做贡献。