Go

Go 知识量:6 - 35 - 115

5.4 服务流量限制><

常见的流量限制手段- 5.4.1 -

常见的流量限制手段主要有以下几种:

  • 限流算法:计数器、滑动窗口、漏桶和令牌桶等。这些算法用于控制系统的流量,防止系统过载。

  • 验证码和IP黑名单:通过验证码验证用户身份,防止恶意攻击和爬虫采集;将异常IP加入黑名单,防止恶意请求。

  • 容器限流:例如Tomcat、Nginx等,可以设置最大线程数或控制速率和并发连接数,防止超过容器承受的阈值。

  • 服务端限流:通过限流算法实现服务端限流。

  • 业务限制:比如阿里云、腾讯云等厂家提供的流量限速服务,针对业务需要设置相应的限流策略。

令牌桶原理- 5.4.2 -

令牌桶(Token-Bucket)是目前最常采用的一种流量测量方法,用于评估流量速率是否超过了规定值。令牌桶原理是一种流量控制算法,用于限制某个服务或系统的请求速率。

令牌桶中存放了一定数量的令牌,每个令牌代表一定的比特流。系统按照一定速率向桶中添加令牌。当有数据包到达时,会尝试从桶中获取一个令牌,如果桶中没有令牌,则根据策略处理该数据包,例如丢弃该数据包或将其放入队列中等待处理。如果桶中有令牌,则获取该令牌并处理数据包,同时根据需要添加新的令牌。

令牌桶算法可以用于控制网络流量、服务请求速率等场景,以确保系统能够平稳地处理流量,避免过载或资源耗尽。通过调整令牌的生成速率和桶的大小,可以灵活地控制流量速率。

QoS- 5.4.3 -

QoS,全称是Quality of Service(服务质量),是一种网络服务质量管理技术。它主要用于解决网络延迟和数据丢包的问题,从而提高网络通信的质量。

在网络中,由于网络资源的有限性和用户请求的随机性,导致用户请求无法都获得完全一样的服务。QoS的目标就是在有限的带宽下,为端到端的通信提供更好的服务保障。

QoS提供了三种分类服务给用户:

  1. Best-Effort Service(尽力而为服务):这是最基本的服务,网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证。

  2. Integrated Service(综合服务):该服务可以为源端到目的端的每个报文提供有保证的延迟和带宽。这种服务适合传送实时的、有特殊要求的流媒体数据,如音频、视频等。

  3. Differentiated Service(区分服务):该服务通过定义不同的优先级和流量参数来控制和管理网络中的数据流。

在QoS的机制中,主要考虑了以下几个方面:

  1. 带宽管理:用于确保网络中有足够的带宽来满足用户的需求。

  2. 流量整形:用于控制流量的发送速率,以避免网络拥堵。

  3. 队列管理:通过队列机制来管理网络中的数据包,确保数据包按照一定的顺序和优先级进行处理。

  4. 拥塞避免:通过检测网络中的拥塞情况,采取相应的措施来避免或缓解拥塞。