问题描述

在使用API Management来进行API管理时,当我们后端的API DNS IP地址发生改变或者是API的域名发生改变后,通过APIM请求访问的还是是旧的域名或者IP地址,这是因APIM中对DNS的缓存导致问题。

问题分析

APIM本质也是部署在VM中的应用,对DNS的处理完全依照VM的机制,APIM本身并无特殊的缓存机制。如果DNS发生变化,其解析到新的变动取决于TTL的时间。默认情况下,TTL时间为3600,所以当后端API域名变动后,大约在60分钟左右生效。

解决办法

因为APIM中使用了HTTP Keep-Alive功能,所以如果APIM中持续访问后端API,之前的访问就会使用在修改DNS前建立的http连接,导致请求还是访问的旧的服务。如是这样的情况,可以通过停止旧的服务,让HTTP Keep-alive的功能失效。这个时候请求会重新去解析DNS,得到新的信息(如IP地址),访问就可以成功了。

 

TTL介绍链接:https://jaminzhang.github.io/dns/DNS-TTL-Understanding-and-Config/

相关文章:

  • 2022-01-19
  • 2021-08-16
  • 2022-12-23
  • 2021-08-27
  • 2021-05-29
  • 2021-05-14
  • 2022-01-13
猜你喜欢
  • 2021-11-10
  • 2022-12-23
  • 2021-07-05
  • 2021-09-24
  • 2022-01-07
  • 2021-12-29
相关资源
相似解决方案