3.3基本连接路由

连接路由插件执行基于连接的路由,这意味着它将数据包转发给服务器而不检查它们。这是一种提供高吞吐量的简单方法。有关连接路由的其他常规信息,请参见第1.3节“连接路由”

下面显示了一个简单的基于连接的路由设置。这些选项和其他选项记录在下面第4.3.2节“配置文件选项”

[logger] level = INFO [routing:secondary] bind_address = localhost bind_port = 7001 destinations = foo.example.org:3306,bar.example.org:3306,baz.example.org:3306 routing_strategy = round-robin [routing:primary] bind_address = localhost bind_port = 7002 destinations = foo.example.org:3306,bar.example.org:3306 routing_strategy = first-available

在这里,我们使用连接路由来轮询MySQL连接到端口7001上的三台MySQL服务器循环routing_strategy.该示例还配置第一个可用使用端口7002的两台服务器的策略。优先可用策略使用目标列表中的第一个可用服务器。分配给每个MySQL实例的数量目的地这取决于你,因为这只是一个例子。路由器不检查数据包,也不根据分配的策略或模式限制连接,因此由应用程序决定在哪里发送读写请求,在我们的示例中是端口7001或7002。

请注意

在MySQL路由器8.0之前,现在已弃用模式选项代替了routing_strategyMySQL路由器8.0中添加的选项。

假设所有三个MySQL实例都在运行,接下来通过传入配置文件启动MySQL路由器:

Shell > ./bin/mysqlrouter -config=/etc/mysqlrouter-config.conf

现在MySQL路由器正在监听端口7001和7002,并向相应的MySQL实例发送请求。例如:

./bin/mysql——user=root——port 7001——protocol=TCP

这将首先连接到foo.example.org,然后是bar.example.org,然后是baz.example.org,第四次调用将返回到foo.example.org。相反,我们以不同的方式配置端口7002:

shell> ./bin/mysql——user=root——port 7002——protocol=TCP

它首先连接到foo.example.org,其他请求将继续连接到foo.example.org,直到出现故障,此时将使用bar.example.org。有关此行为的其他信息,请参见模式