问题描述

在使用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/

【API管理 APIM】APIM中对后端API服务的DNS域名缓存问题的更多相关文章

  1. 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题

    问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...

  2. 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token

    问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...

  3. 【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验

    在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一 ...

  4. API管理之YApi实现前后端高度分离

    全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/11972789.html,多谢,=.=~ 背景描述   前后端分离已成为互联网项目开发的业界标准使 ...

  5. API 管理在云原生场景下的机遇与挑战

    作者 | 张添翼 来源 | 尔达Erda公众号 ​ 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...

  6. 传统 API 管理与测试过程正面临严峻的挑战

    随着测试左移思想的引入, API (应用程序编程接口)经济的飞速增长导致对 API 管理平台的需求相应增加.越来越多的企业注重并关注接口测试.单纯的做接口测试或者做好接口测试的本质工作其实并不复杂: ...

  7. 在ASP.NET MVC中使用Web API和EntityFramework构建应用程序

    最近做了一个项目技术预研:在ASP.NET MVC框架中使用Web API和EntityFramework,构建一个基础的架构,并在此基础上实现基本的CRUD应用. 以下是详细的步骤. 第一步 在数据 ...

  8. MVC中使用Web API和EntityFramework

    在ASP.NET MVC中使用Web API和EntityFramework构建应用程序   最近做了一个项目技术预研:在ASP.NET MVC框架中使用Web API和EntityFramework ...

  9. 发现Webpack中泄露的api

    发现Webpack中泄露的api 目录 发现Webpack中泄露的api 1 - 安装 reverse-sourcemap 2 - 寻找xxx.js.map 3 - 下载xxx.js.map并获取所有 ...

随机推荐

  1. [算法与数据结构]使用Java泛型实现栈

    ###题解 1 实现内部类node 2 维护top为头节点的链表 3 操作 操作1:push() 操作2: pop() 操作3: isEmpty() ###代码 package Exam; class ...

  2. JavaGuide易错点总结

    基础知识易错点 1. object.equals("str") 容易报空指针异常,应使用"str".equals(object); 还可以使用JDK7引入的工具 ...

  3. Kubernetes入门(四)——如何在Kubernetes中部署一个可对外服务的Tensorflow机器学习模型

    机器学习模型常用Docker部署,而如何对Docker部署的模型进行管理呢?工业界的解决方案是使用Kubernetes来管理.编排容器.Kubernetes的理论知识不是本文讨论的重点,这里不再赘述, ...

  4. 在自己win系统里面给idea配置Git

    这里直接是写好的步骤 下载链接

  5. jstl中ftm标签用法

    <fmt:formatDate value="${dateTime}" pattern="yyyy/MM/dd HH:mm:ss"/>

  6. 利用Z.Expressions.Eval表达式求值

    Z.Expression.Eval是一个开源的(OpenSource),可扩展的(Extensible),超轻量级(Super lightweight)的公式化语言解析执行工具包. 使用方法:1.从n ...

  7. Artwork (Gym - 102346A)【DFS、连通块】

    Artwork (Gym - 102346A) 题目链接 算法 DFS,连通块 时间复杂度:O(k*n + k * k) 1.这道题就是让你判断从(0,0)到(m,n),避开中途所有的传感器(传感器的 ...

  8. react项目创建流程

    react 项目搭建 系统: windows 1.安装 node node 下载地址.一路 next 如果遇到 windows 没有权限安装 msi 文件.打开 cmd,运行msiexec /pack ...

  9. centos7 下 docker 安装

    前提: 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Docker 运行在 CentOS- ...

  10. mysql-13-auto_increment

    # 标识列 /* 自增长列 可以不用手动的插入值,系统提供默认的序列值 1.标识列必须和 key 搭配使用,比如主键.唯一键.外键 2.一个表至多一个标识列 3.标识列的类型只能是数值型 4.标识列可 ...