专栏首页大数据与微服务架构架构-亿级API网关之道

架构-亿级API网关之道

你的收入水平很大程度上取决于你能做哪些别人不能做的事情。

一、API网关包括的基本功能:统一接入、协议适配、流量管控与容错以及安全防护。

二、API的常用工具:RAML、Swagger

三、API的生命周期:Design(设计)、Build(构建)、Test(测试)、Document(文档)、Share(发布)、run(运行)、DownLine(下线)。

四、网关系统的七种武器:降级、限流、熔断、配置热更新、异步、线程池隔离、管道技术

五、导致传统网关性能的瓶颈:

1、CPU

CPU利用率:显示的是程序在运行期间实时占用的CPU百分比

CPU负载:显示一段时间内正在使用和等待使用CPU的平均任务数,可以使用uptime或top命令来查看系统的负载情况,eg:uptime命令,显示load averages:1.74 1.58 1.60 ,三个数字分别表示1分钟、5分钟、15分钟内系统的负载平均值。

注意:CPU负载高并不意味CPU的利用率高,两者没有联系,可以比作负载是排队,利用率是医生看病,不能说排队长,医生看病的速度就快。

2、内存

缓冲、缓存及内存计算,内存越大计算速度就越快,使用free、top、vmstat等命令都能显示系统内存使用率的输出

3、磁盘

磁盘使用率:磁盘空间使用情况

磁盘负载百分比:磁盘频繁执行I/O请求数量,使用iostat -x 1 10 命令,显示%util接近100%说明产生的I/O请求太多,I/O已经满负荷,该磁盘可能存在瓶颈。

4、网络

网络的质量好坏,直接影响用户的响应时间,如果网络变慢,请求数量过大就会导致请求任务数排队挤压,将所有CPU资源耗尽。

六、其它提升性能方式

1、脱库与多级缓存

对网关的访问不建议直接使用传统数据库(eg:mysql),而是建议利用缓存。

缓存分级,1级缓存(JVM缓存)、2级缓存(Redis)、3级缓存(Redis持久化)

2、热更新

不需要重启服务器就能够让程序的属性值进行改变的行为;

常见的热更新的方法有MQ方式、RPC方式和ZooKeeper方式,MQ方式是将需要更新的数据发送到MQ队列,消费端收到数据后更新对象的属性值,RPC方式的直接连接到对应的服务器,服务端收到RPC请求之后更新数据,Zookeeper的方式是接收更新从而触发本地对象数据,这些方式都不需要重启服务器。

本文分享自微信公众号 - 大数据与微服务架构(gh_7bc8d3796e8e),作者:凹谷

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RAID 0、1、5、1+0总结

    RAID(Redundant Array Of Independent Disk,独立磁盘冗余阵列),可以提供比普通磁盘更快的速度、更高的安全性,生产环境中服务...

    凹谷
  • hbase的rowkey设计原则和实现方式

    hbase的内部使用KeyValue的形式存在,其key是有rowkey:family:column:logTime,value是其存储的内容。

    凹谷
  • 流式计算引擎-Storm、Spark Streaming

    目前常用的流式实时计算引擎分为两类:面向行和面向微批处理,其中面向行的流式实时计算引擎的代表是Apache Storm,典型特点是延迟低,但吞吐率也低。而面向微...

    凹谷
  • 可视化深度图像

    在3D视窗中以点云形式进行可视化(深度图像来自于点云),另一种是将深度值映射为颜色,从而以彩色图像方式可视化深度图像,

    点云PCL博主
  • 面试题41(String str1 = “abc”,“abc”分配在内存哪个区域)

    公告通知 String str1 = “abc”,“abc”分配在内存哪个区域? ---- A 堆 B 栈 C 字符串常量区 D 寄存器 考点:考察求职者对...

    Java学习
  • 科学瞎想系列之八十二 永磁电机(5)

    【图片部分来自网络如有侵权敬请邮箱联系。欢迎原文转发到朋友圈,未经许可的媒体平台谢绝转载,如需转载或合作请邮件联系。联系邮箱laolicsiem@126.com...

    标准答案
  • 计算机最早提高性能的方法

    随着本系列进展,我们知道计算机进步巨大,从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU,这是很大的计算量。

    技术小工
  • linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧。在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和...

    洗尽了浮华
  • Qt信号与槽宏定义

    Qt君
  • SAP最佳业务实践:MM–组件收费的委外加工(251)-2准备

    1、用途 该业务情景提供了组件收费的委外加工的操作步骤。具体集中以下活动: · 对提供给每个委外加工商的货物的需求进行计算。 · 对...

    SAP最佳业务实践

扫码关注云+社区

领取腾讯云代金券