连接路由插件执行 基于连接的路由,这意味着它将数据包转发到服务器而不检查它们。这是一种提供高吞吐量的简单方法。有关连接路由的其他一般信息,请参阅 第 1.3 节,“连接路由”。
下面显示了一个简单的基于连接的路由设置。这些选项和其他选项记录在 第 4.3.3 节“配置文件选项”下。
[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 服务器,如
round-robin
routing_strategy
所定义。此示例还使用端口 7002 为其中两个服务器配置了第一个可用策略。第一个可用策略使用目标列表中的第一个可用服务器。分配给每个实例的 MySQL 实例数由
destinations
您决定,因为这只是一个示例。路由器不检查数据包,也不根据分配的策略或模式限制连接,因此由应用程序决定将读取和写入请求发送到何处,在我们的示例中是端口 7001 或 7002。
在 MySQL Router 8.0 之前,使用现在已弃用
mode
的选项,而不是routing_strategy
MySQL Router 8.0 中添加的选项。
假设所有三个 MySQL 实例都在运行,接下来通过传入配置文件启动 MySQL Router:
$> ./bin/mysqlrouter -config=/etc/mysqlrouter-config.conf
现在 MySQL Router 正在侦听端口的 7001 和 7002 并将请求发送到适当的 MySQL 实例。例如:
$> ./bin/mysql --user=root --port 7001 --protocol=TCP
这将首先连接到 foo.example.org,然后是 bar.example.org,然后是 baz.example.org,第四次调用返回到 foo.example.org。相反,我们以不同的方式配置了端口 7002 的行为:
$> ./bin/mysql --user=root --port 7002 --protocol=TCP
它首先连接到 foo.example.org,其他请求将继续连接到 foo.example.org,直到出现故障,此时使用 bar.example.org。有关此行为的其他信息,请参阅
mode
。