-
请求路由:根据请求路径或规则,将请求转发到不同的微服务。
-
统一鉴权:负责统一的用户认证和授权。
-
协议转换:支持不同协议之间的转换(如 HTTP 转 GRPC)。
-
负载均衡:分发流量到多个后端实例。(loadbalance:在url前加lb,默认轮询)
-
限流与熔断:对流量进行限制,避免后端服务过载。
-
日志与监控:提供访问日志、统计和监控功能。
-
黑白名单维护
典型实现:Spring Cloud Gateway、Zuul
我采用spring cloud gateway,使用网关过滤器给请求头和响应头添加信息,可以过滤掉非网关转发的请求。
负载均衡策略
策略名称 | 说明 |
---|---|
轮询(Round Robin) | 按顺序将请求依次分发到后端服务器,适用于性能相近的服务器。 |
加权轮询(Weighted Round Robin) | 给每个服务器设置权重,权重越高,被分配的请求越多,适用于性能差异大的服务器。 |
随机(Random) | 随机选择一台服务器处理请求,适合服务器差异不大的场景。 |
加权随机(Weighted Random) | 在随机基础上加入权重控制,提高性能好的服务器被选中的概率。 |
最小连接数(Least Connections) | 将请求分配给当前连接数最少的服务器,适用于请求处理时间差异较大的情况。 |
加权最小连接(Weighted Least Connections) | 在最小连接基础上增加权重控制,结合性能和负载情况。 |
源地址哈希(IP Hash) | 根据客户端 IP 哈希值分配服务器,确保同一客户端始终访问同一台服务器,适合有状态的服务。 |
一致性哈希(Consistent Hash) | 对请求中的某个关键字段做哈希,实现会话粘滞,并具备节点变更时的最小扰动特性,适用于分布式缓存等场景。 |