2017-02-10 107 views
0

我試圖設置maxscale以使用schemarouter和readwritesplit。 我有很多我的mysql數據庫的碎片。每個分片都有一個從屬節點 所以,想法是在主節點上使用一個模式路由器,在從節點上使用一個模式路由器來代理所有分片。然後在readwritesplit中使用這2個服務。Maxscale:將readwritesplit和schemarouter結合起來

This cause the following issue: 
2017-02-10 14:57:48 error : Failure loading users data from backend [10.161.66.145:4009] for service [Splitter Service]. MySQL error 2013, Lost connection to MySQL server at 'handshake: waiting for inital communication packet', system error: 110 
2017-02-10 14:57:52 error : Failure loading users data from backend [10.161.66.145:4008] for service [Splitter Service]. MySQL error 2013, Lost connection to MySQL server at 'reading authorization packet', system error: 110 
2017-02-10 14:57:52 error : Unable to get user data from backend database for service [Splitter Service]. Failed to connect to any of the backend databases. 

任何幫助將是不錯的。

我的schemarouter都工作正常。 這裏是readwritesplit配置:

[max_ro] 
type=server 
address=10.10.10.10 
port=4009 
protocol=MySQLBackend 

[max_rw] 
type=server 
address=10.10.10.10 
port=4008 
protocol=MySQLBackend 

[Splitter Service] 
type=service 
router=readwritesplit 
servers=max_ro,max_rw 
user=maxscale 
passwd=maxscale 

[Splitter Listener] 
type=listener 
service=Splitter Service 
protocol=MySQLClient 
port=4010 

感謝

回答

0

這些錯誤是最有可能的是,readwritesplit服務尚未啓動造成的事實。在MariaDB Jira上有關於此行爲的錯誤報告。

如果分片服務工作並且一旦MaxScale啓動後不再記錄任何錯誤,則所有內容都按預期工作,錯誤可以忽略,如this bug report中所述。

解決此問題的另一種方法是將配置分爲兩部分並使用單獨的MaxScale實例;一個用於分片服務,另一個用於讀寫分片服務。這確實增加了一層額外的複雜性,因爲需要啓動兩個服務而不是一個服務。