点击蓝字,关注我们
连接参数介绍
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?sjhy(复制链接至浏览器或点击文末阅读原文查看)
关于作者
彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL,致力为PG社区多做奉献。
END
推荐阅读:2021数据技术嘉年华视频回放及PPT下载
2021数据技术嘉年华50余个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“2021DTC”获得!
你知道吗?我们的视频号里已经发布了很多精彩的内容,快去看看吧!↓↓↓
点击下图查看更多 ↓
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂
点个“在看”
你的喜欢会被看到❤



