• Jasper:API / API 策略和最佳做法


    ylbtech-Jasper:API / API 策略和最佳做法
    1.返回顶部
    1、

    API 策略和最佳做法

    Cisco Jasper 已经建立了一项 API 公平使用策略,确保所有 Control Center 用户都可以获得最佳的体验。任何使用 Control Center API 的客户端代码都必须遵守下述限制规定。

    并发连接

    Cisco Jasper 建议企业避免进行并发处理,因为它可能会显著降低响应速度。我们建议仅在单线程应用程序或例程中使用 API。在多线程情况下使用 API 的账户可能会受到限流或其他限制,具体视环境而定。

    策略 使用单线程代码 - 一次一项 API 调用

    每秒调用数

    Cisco Jasper 通过限制账户每秒可以进行的 API 调用数来确保可靠的 API 性能。如果您的账户超出限制,则在测量期间(一秒)内的后续 API 调用将根据 API 类型获得下表中显示的响应。经过适当的延迟后,程序应该重试 API 调用。

    API 类型返回代码消息
    REST 40000029 超出资费限制
    SOAP 400101 许可已超出 API 调用的资费限制

    随着我们不断地调整优化平台以提高速度和可靠性,Cisco Jasper 可能会不时更新每秒调用数限制。如果您使用以下所述的最佳做法(单线程代码、动态速率限制等),这项限制将不会产生影响。需要时,运营商可以提供有关这项限制的更多详细信息。

    请注意,此限制同时包括账户和账户的客户进行的 API 调用。例如,如果某账户有两位 API 用户,他们及其 5 位客户同时进行了 API 调用, Control Center 会将该账户的每秒调用总数计为 7 个。最初的 API 调用会成功,但是在达到限制之后,其余的 API 调用将返回上面显示的其中一条消息。

    这个限制也适用于 REST 和 SOAP API 调用的组合。例如,假设某个账户同时进行了 1 次 REST API 调用和 1 次 SOAP API 调用,同时该账户的其中一位客户进行了一次 REST API 调用。Control Center 会将该账户的每秒调用数计为 3 个。

    策略。使用动态速率限制和其他最佳做法来遵守这项限制。

    最佳做法

    以下技巧可帮助您避免 API 使用过量时可能发生的限流或其他用量限制。

    添加速率限制代码

    避免超过每秒调用数限制的最佳做法便是创建单线程代码。但是,您可能会遇到无法避免的情况。例如:

    • 多个 API 用户都在进行调用。
    • 您需要同时使用 REST 和 SOAP 函数。
    • 您有大量需要多线程进程的调用。

    在这些情况下,建议创建速率限制例程,用于监控和调节您的 API 调用。例如,如果账户在处理调用时收到多个错误消息,您可以在 API 调用之间引入一个等待时间。您可以增加这个等待时间,直到错误不再出现。

    虚拟代码示例。以下虚拟代码将演示速率限制代码的作用方式。

    // DISCLAIMER: THIS EXAMPLE IS PROVIDED FOR ILLUSTRATION PURPOSES ONLY, 
    // AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED
    
    WHILE ( <<list is not empty>> )
    {
        // API_call attempts to perform an action to update the DEVICE status
        // it returns the API response code
        response = API_call( <<list element>> )
                                     
        // API call returns the "limit exceeded" error, increase loop delay
        IF ( response == ERROR_LIMIT_EXCEEDED )
        {
            delay += ADJUST_DELAY_INCR
        } 
        ELSE 
        {   // ensure delay never goes below 0
            IF ( delay > ADJUST_DELAY_DECR )
    	 {
    	     delay -= ADJUST_DELAY_DECR
    	 }
    	 ELSE
    	 {
    	     delay = 0
    	 }			
        }
    
        sleep( delay )
    }

    调整调用频率

    通过 API 跟踪设备用量时,必须将您的 API 调用频率与运营商的更新频率保持一致

    例如,如果您的运营商每 6 小时更新一次用量信息,则通过 API 请求信息的频率不能超过每 6 小时一次。此外,用量数据可用的时间与 Control Center 从运营商接收到该用量数据的时间之间通常会有延迟。有时,延迟可能长达 24 小时。

    使用缓存

    Cisco Jasper 鼓励使用本地缓存。例如,可以创建一个简单的例程来每天检查一次缓存,而不是每加载一次页面就调用一次 API。

    使用筛选器限制 API 调用

    在执行程序前通过检查特定条件来避免不必要的 API 调用。例如:

    • 如果设备已停用,请勿检查用量。
    • 如果客户未请求设备用量,请勿每小时检查一次。

    延长搜索之间的间隔时间

    如果收到为空或者未改变的 API 响应,请延长查询间隔。例如,考虑将查询从每两个小时一次更改为一天一次。

    2、
    2.返回顶部
     
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
     
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Django之数据库表的创建和ORM相关操作
    Django后续和Ajax初识
    阿里云Maven中央仓库配置
    java/javascript 时间操作工具类
    原生javascript实现文件异步上传
    MySQL中的存储函数和存储过程的简单示例
    java同步锁的正确使用
    浅谈javascript的面向对象思想
    java与javascript对cookie操作的工具类
    json字符串与json对象的相互转换
  • 原文地址:https://www.cnblogs.com/storebook/p/9364595.html
Copyright © 2020-2023  润新知