2017-02-10 10 views
0

私はmaxscaleを設定して、schemarouterとreadwritesplitを使用しようとしています。 私のmysqlデータベースには多くの断片があります。各シャードはスレーブを持っています マスターでは1つのスキーマを使用し、スレーブでは1つを使用してすべてのシャードをプロキシします。次に、これらの2つのサービスをreadwritesplitで使用します。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 configです:

[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)。

この問題を解決する別の方法は、構成を2つの部分に分け、別々のMaxScaleインスタンスを使用することです。 1つはシャーディングサービス用で、もう1つは読み取りと書き込みの分割サービス用です。これは、2つのサービスを1つのサービスの代わりに起動する必要があるため、複雑なレイヤを追加します。

関連する問題