开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):SpringCloud(Gateway 网关负载均衡)】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11522
SpringCloud(Gateway 网关负载均衡)
目录:
一、代码写法
二、检测
三、负载均衡的实现
一、代码写法
从开启到匹配规则,一共有两种写法,
第一种是:properties 文件,里面的数字用来标志不同内容,否则会报错。
#配置 service-edu 服务
spring. cloud. gateway.routes[1].id=service-edu
spring.cloud.gateway.routes[1].uri=1b://service-edu
spring. cloud.gateway.routes[1].predicates=Path=/eduservice/*
#配置 service-edu 服务
spring.cloud. gateway.routes[2].id=service-msm
spring.cloud. gateway.routes[2].uri=1b://service msm
spring.cloud. gateway.routes[2].predicates= Path=/edumsm/**
第二种是 yum 写法,里面不需要加数字区分,这种方法比较常见。
- id:SERVICE-ACL
uri:1b://SERVICE-ACL
predicates:
-Path=/*/acl/**#路径匹配
- 1d:SERVICE-EDU
uri:1b://SERVICE-EDU
predicates:
- Path=/eduservice/**#路径匹配
- id:SERVICE-UCENTER
uri:1b://SERVICE-UCENTER
predicates:
-Path=/ucenter/**#路径匹配
nacos:
discovery:
server-addr:127.0.0.1:8848
二、检测
启动 edu 和 gateway,通过网关访问,先启动 nacos,再启动 edu,
先看 nacos,输入用户名和密码,有两种结果:service edu 和 service gateway.
edu 在配置文件中配置过了,再到 edu 中找一个来进行测试,选择teacher,找一个访问地址,先用原始的地址,用8001口,加上地址,加上名字,可以访问。
再通过网关访问,把端口号换成网关的端口号,网关的端口号为8222,刷新后没有问题,这就是 gateway 网关效果。
三、负载均衡的实现
把请求平均分担到多种服务器上,平均分担压力,负载均衡本身已经做了分装。
第一部分是客户端,第二部分是 Gateway 网关,第三部分是服务器,都部署了service edu,第一台服务器端口号为8111,第二台端口号为8112,这两个服务器中放的项目都是一样的,这叫做集群。
现在通过客户端进行访问,访问 service edu,当访问中包含了 service edu,就需要去寻找这个服务。
在网关中配置匹配现则路径包含/eduservice 找名称 scrvice-edu 展务,因为现在无论是网关还是服务,在 nacos 中都做了注册,根据服务名字去找到服务,两台服务器上放的是相同项目,都放的是 service edu,此时会把请求平均分担到不同服务器中,就叫做负载均衡,不需要做额外的配置,多台服务器的名字都是相同的名字,就会把请求平均分担到多种服务器中。这就是这样一个过程。
负载均衡有三种不同的效果:
- 轮询
是第一种负载均衡的方式,即第一个,第二个轮流访问。
- 权重
即权重高的先访问
- 最少请求时间
即时间最少的先访问。