에러시 대비 3 (DNS 캐시 기능)
DNS 캐시 기능
개요
DNS 서버 정보를 캐시로 ROMA 인스턴스가 저장하는 기능
인스턴스가 IP 주소가 아닌 HostName 등으로 작성된 경우를 위한 기능

움직임
어떤 이유로 DNS 서버와의 액세스가 불가능한 경우 IP 주소도 FQDN도 아닌 이름의 instance의 경우, ROMA가 다른 서버에 있는 instance에 액세스할 수 없게 된다
↓
이를 방지하기 위해, ROMA 기동시에 DNS의 정보를 캐쉬로서 각 instance에 유지해, 이 데이터에 근거해 통신을 실시한다
↓
부족한 사태로 DNS 서버가 다운해도 ROMA의 instance간의 통신은 담보된다!!
사용법
config에서 설정하는 방법
DNS_CAHING의 값을 true로 설정
config.rb
.
.
# lookup hostname to the nameserver everytime or only first time.
# if set true, the result of lookup will keep.
DNS_CACHING = true
.
.
동적 변경 명령
ROMA 부팅 후 ROMA를 멈추지 않고 변경하려면 다음 명령을 실행
> switch_dns_caching [on|off]
Example
조건
다음과 같이 추가
192.168.223.2 vm1
192.168.223.3 vm2
확인
DNS 캐시 기능 off의 경우
vm1 서버에서
# vi /etc/hosts
###以下の行を削除する
192.168.223.3 vm2
$ telnet vm1 20001
> balse
{"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}
자체 서버의 vm1 서버는 balse (클러스터 종료 명령)를 받지만 vm2는 대상을 모르고 nil입니다.
DNS 캐시 기능 on의 경우
vm1 서버에서
# vi /etc/hosts
###以下の行を削除する
192.168.223.3 vm2
$ telnet vm1 20001
> balse
{"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}
/etc/hosts를 삭제했지만 instance 자체에 DNS 정보를 저장하고 있기 때문에 그 정보에 근거해 vm2에도 정상적으로 balse 명령을 보낼 수 있었다!!
Reference
이 문제에 관하여(에러시 대비 3 (DNS 캐시 기능)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroaki-iwase/items/f01324685eea95b0c72a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)