우리는 덤프/지연 로드 밸런싱을 위한 상태 확인 없이 프라이빗 DNS, 특히 다중값 응답 라우팅 정책에 Route53을 사용합니다.
이것은 어제까지 우리가 이상한 행동을 발견할 때까지 우리에게 잘 작동했습니다.
ro.mysql.foo.bar.com
읽기 전용 MySQL 복제본의 IP를 포함하는 에 대한 레코드 세트가 있습니다 .
DIG를 실행하면 이를 반영합니다.
dig A ro.mysql.foo.bar.com
;; QUESTION SECTION:
;ro.mysql.foo.bar.com. IN A
;; ANSWER SECTION:
ro.mysql.foo.bar.com. 4 IN A 10.2.2.2
ro.mysql.foo.bar.com. 4 IN A 10.2.2.3
ro.mysql.foo.bar.com. 4 IN A 10.2.2.4
예상되는 동작은 mysql이 ro.mysql.foo.bar.com
3개의 호스트 중 하나에 무작위/무작위 로드 밸런싱 방식으로 무작위로 연결되는 경우입니다. 어제까지는 잘 작동했습니다.
내가 달리면
mysql -h ro.mysql.foo.bar.com -e "select @@hostname;"
의 출력은 , 및 @@hostname
사이에서 달라질 것으로 예상됩니다.10.2.2.2
10.2.2.3
10.2.2.4
대신 3개의 IP에 무작위로 트래픽을 라우팅하지 않고 하나만 사용하고 하나만 사용합니다.
+-----------------------------------+
| @@hostname |
+-----------------------------------+
| 10.2.2.3 |
+-----------------------------------+
10.2.2.3
DNS에서 제거하면 사용이 중지됩니다. 다시 추가하면 계속해서 10.2.2.3
다시 사용됩니다.
우리는 PowerDNS(단계적으로 폐지 예정)를 통해 자체 리졸버를 실행하지만, 우리가 볼 수 있는 어떤 결함도 없는 것 같습니다. PowerDNS는 DNS 캐시도 제거했습니다.