MySQL路由器8.0  / 第 3 章部署 MySQL Router  /  3.3 基本连接路由

3.3 基本连接路由

连接路由插件执行 基于连接的路由,这意味着它将数据包转发到服务器而不检查它们。这是一种提供高吞吐量的简单方法。有关连接路由的其他一般信息,请参阅 第 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