Gebruik DNS-service om netwerkdiensten soepel te migreren
Categories:
Stel dat de service domeinnaam is example.domain, het oorspronkelijke server IP-adres is A, vanwege server migratie of IP-wijziging, het nieuwe server IP-adres is B, om te garanderen dat gebruikers dit niet merken, kan de DNS-service worden gebruikt om netwerkdiensten soepel te migreren.
- Oorspronkelijke service status,
example.domainwordt omgezet naar IP-adresA - Overgangsstatus,
example.domainwordt omgezet naar IP-adresAenB - Nieuwe service status,
example.domainwordt omgezet naar IP-adresB, IP-adresAwordt verwijderd
Opmerking: Wanneer gebruikers twee omzettingadressen verkrijgen, kiest de client er een om mee te verbinden, wanneer de verbinding mislukt, probeert hij andere adressen, zodat de service beschikbaar blijft.
Omdat DNS-omzetting cache heeft, moet de overgangsstatus een bepaalde tijd worden behouden om een soepele migratie te garanderen, zodat alle cache ongeldig wordt.
Hier moet ik de dns-service migreren, ik kan DNS-herwriting instellen in de overgangsstatus om het migratieproces te versnellen.
A-servicerewrite-regel:

B-servicerewrite-regel:

De oorspronkelijke migratieprocesuitbreiding is:
- Oorspronkelijke service status,
example.domainwordt omgezet naar IP-adresA - Overgangsstatus,
example.domainwordt in dedns A-service herschreven naarAenB, in dedns B-service herschreven naarB - Nieuwe service status,
example.domainwordt omgezet naar IP-adresB, IP-adresAwordt verwijderd
Wanneer gebruikers nog steeds de dns A-service gebruiken, kunnen ze twee adressen verkrijgen, met een kans van 50% kiezen ze de dns A-service.
De andere helft van de kans zal overschakelen naar de dns B-service, de dns B-service schakelt terug naar dns A bij storing. Wanneer de dns B-service niet defect is, zal er slechts één adres worden verkregen, dus gebruikers zullen in de dns B-service blijven.
Op deze manier kunnen we geleidelijk het resourceverbruik van de dns A-service verminderen, in plaats van deze direct te stoppen, en een soepelere migratie realiseren.