В консоли RDS, вы должны быть в состоянии смотреть на каждый из 3-х экземпляров
- aurora-databasecluster-xxx.cluster-yyy.us-east-1.rds.amazonaws.com:3306
- zz0.yyy.us-east-1.rds.amazonaws.com:3306
- zz1.yyy.us-east-1.rds.amazonaws.com:3306
Если посмотреть на вкладку кластера вы увидите две конечные точки, а вторая - следующее: aurora- databasecluster-xxx.cluster-ro-yyy.us-east-1.rds.amazonaws.com
Aurora позволяет вам либо явно получить конкретную прочитанную реплику. Это позволило бы установить только узлы для чтения для производительности OLTP и еще один набор для анализа данных - с длинными запросами, которые не будут влиять на производительность.
Если вы используете конечную точку -ro, она должна балансировать все узлы только для чтения, или вы можете заставить свой код брать список строк только для чтения и делать свой собственный рандомизатор. Я бы ожидал, что ro будет лучше ... но я еще не знаком с их техникой балансировки нагрузки (наименьшее количество соединений, круглый robin и т. Д.)
Является ли ваше приложение настроено на отправку записей в конечную точку записи Aurora и считывает к конечной точке считывания Aurora? –
Да. На самом деле он работал только с одной репликой. Затем я добавил второй и все еще использую первый. По моему мнению, Aurora в этом случае создает кластер, поэтому я не должен ничего менять в своем коде. Кластер должен распространять запросы на чтение (возможно, я ошибаюсь, конечно). –
Каждый экземпляр имеет имя хоста, а кластер имеет имя хоста для записи, а другое - для «любого» читателя [как я когда-то описывал в Server Fault] (http://serverfault.com/a/809299/153161). Вы используете «host-ro» hostname? –