Auto Read/Write Splitting | No |
Primary Selection | Manually, by network port |
Replica Selection | Manually, by network port |
QoS Compatibility | None |
SmartScale Compatibility | None |
Port-based routing configures two independent ports that enable client applications to select whether to connect to a Primary or Replica based on the port they connect to. This method relies on the application choosing the correct port, automatic r/w splitting is not supported. Similar to host-based routing, port-based routing requires the client application to be modified to manually select the appropriate port.
Once enabled, a client can open a connection directly to a Primary or Replica by connecting to the appropriate port. For example:
shell> mysql -P3306
Will connect to the currently active Primary, while:
shell> mysql -P3307
will connect to a read-resource, ideally a Replica, but will revert to the Primary if no appropriate Replica is avaialble.
The ports to be used for each connection type are configurable during installation.
Enabling port-based routing requires configuring the two ports that will accept queries. One port will be designated as the Primary port, one the read-only port, and queries will be automatically routed accordingly. For example:
shell> tpm configure alpha \
... \
--connector-readonly-listen-port=3307 \
--connector-listen-port=3306
Cient applications must be updated to support the two port interfaces and manually direct their queries to the appropriate Primary or Replica.
Using port routing in this way effectively marks all connections to
the read-only port as behaving in a similar fashion to setting the
connection QoS to RO_RELAXED
.