hgproxy配置黑名單,解決主備讀取不一致的問題

1、問題描述

高并發(fā)情況下,數(shù)據(jù)讀取不一致。

2、問題原因

集群中使用了異步流復(fù)制,數(shù)據(jù)同步延遲造成。

3、解決方案

設(shè)置黑名單,將特定sql全部發(fā)往主節(jié)點查詢。下為參考步驟。

(1)配置參數(shù)

配置文件/opt/hgproxy/etc/proxy1.conf中,如下參數(shù)設(shè)置黑白名單

[BlackList]
black_regex_token_list ='table1;Table2;TABLE3' # 匹配到了發(fā)往主節(jié)點
white_regex_token_list = # 匹配成功發(fā)往備節(jié)點
object_relationship_list = /opt/hgproxy/etc/object_relationship_list.json

black_regex_token_list

當(dāng)希望特定的 SQL 發(fā)往主節(jié)點時,可以使用黑名單正則匹配。正則黑名單匹配成功發(fā)往主節(jié)點。配置時以分號分隔。配置時和下面white_regex_token_list 沖突時,以黑名單為準(zhǔn)。默認(rèn)值為空

white_regex_token_list

當(dāng)希望特定的 SQL 發(fā)往備節(jié)點時,可以使用白名單正則匹配。正則白名單匹配成功發(fā)往備節(jié)點。配置時,以分號分隔。默認(rèn)值為空

object_relationship_list

該參數(shù)配置文件絕對路徑。該文件的功能是配置函數(shù)與表關(guān)系,表與表關(guān)系的文件路徑。默認(rèn)為“/opt/HighGo/tools/hgproxy/etc/object_relationship_list.json”

(2) 重啟服務(wù)生效

systemctl restart hgproxy