边缘服务、模块与工具包技术解析
在分布式系统和微服务架构中,边缘服务、模块与工具包的应用至关重要。它们能提升系统的可靠性、可观测性和开发效率。下面将详细介绍边缘服务中的熔断、限流、服务网格,以及模块与工具包中的 Express、Micro、Seneca 等内容。
边缘服务
熔断机制与服务调用
可以通过运行 SVCZ - NFTTBHF.SFSWJDF.rb
来启动服务,然后向启用了 Hystrix 的服务发送一些示例请求。若要模拟故障,可修改服务使其返回 429 状态码,表示服务暂时过载,示例代码如下:
SFRVJSF TJOBUSB
HFU DO
IBMU 429, #VTZ
END
Spring 服务在遇到 429 状态码时,会尝试使用回退值。经过多次尝试后,命令的断路器会跳闸,服务将在一段时间内默认使用回退值。
限流技术
限流是防止分布式系统级联故障的有效方法,能防止垃圾邮件、抵御拒绝服务(DoS)攻击,避免系统部分组件因过多并发请求而过载。通常实现为全局或客户端级别的限制,常作为代理或负载均衡器的一部分。这里使用流行的开源负载均衡器、Web 服务器和反向代理 NGINX 来实现限流。
大多数限流实现采用漏桶算法,该算法源于计算机网络交换机和电信网络。其原理如同一个有小漏洞的桶,控制水以恒定速率流出。水以突发方式倒入桶中,但漏洞保证桶内水以稳定、固定的速率存在。若倒水速度超过漏水速度,桶最终会溢出,溢出代表被丢弃的请求。
使用 N