Hacer el bootstrap de MySQL Router contra un InnoDB Cluster
MySQLRouter y proxyComando
# Generates config from metadata and creates the router account; --user is required when run as root
mysqlrouter --bootstrap icadmin@db1:3306 --directory /etc/mysqlrouter/prod --account routeruser --account-create if-not-exists --name router01 --conf-bind-address 0.0.0.0 --user mysqlrouter
/etc/mysqlrouter/prod/start.sh
# Ports: 6446 RW, 6447 RO, 6450 RW split (classic); 6448 / 6449 X protocol
mysql -h app-host -P 6446 -u app -p -e "SELECT @@hostname"
mysql -h app-host -P 6447 -u app -p -e "SELECT @@hostname"
mysqlsh icadmin@db1:3306 -- cluster list-routersQué hace
Registra Router en los metadatos del clúster y genera la cuenta y la configuración; la aplicación llega al primario actual a través del puerto RW y a los secundarios en round-robin a través del puerto RO.
Cuándo usarlo
Al poner una capa de failover transparente delante de un InnoDB Cluster / ClusterSet / ReplicaSet; normalmente un Router por servidor de aplicaciones.
Precaución
Router no tiene estado; ejecutarlo junto a la aplicación evita un punto único de fallo, un único Router central no. La cuenta de bootstrap solo se usa durante el bootstrap; Router lee los metadatos con su propia cuenta (routeruser). Conoce los cambios de topología a través del metadata cache sin volver a hacer el bootstrap. El puerto de división RW (6450) envía al primario las lecturas dentro de una transacción y las demás a los secundarios; tenga cuidado con las aplicaciones que esperan read-your-writes. La versión de Router no debe ser más antigua que la de los servidores MySQL del clúster.