什么是微服务中的网关
1.1为什么要使用网关?
答:网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层--应用层。
1.2网关解决了什么问题?
答:
1.统一入口:为全部微服务提供唯一入口点,网关起到外部和内部隔离,保障了后台服务的安全性
2.鉴权校验:识别每个请求的权限,拒绝不符合要求的请求
3.动态路由:动态的将请求路由到不同的后端集群中
4.减少客户端与服务的耦合,服务可以独立发展,通过网关层来做映射。
网关服务入门
2.1 @EnableZuulProxy注解的作用是什么?
答:@EnableZuulProxy注解的作用是开启zuul网关代理
2.2添加网关服务后,访问服务的URL格式是什么?
答:
使用网关服务访问服务URL格式:
http://网关服务地址:网关服务端口/访问的服务的名称/访问的服务中的接口的地址
2.3创建一个Maven的jar工程。
2.4修改POM文件,添加相关坐标。
2.5修改POM文件,添加网关启动器。
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-netflix-zuul
2.6修改配置文件,添加服务相关配置。
spring.application.name=gl-zuul-gateway
server.port=9020
#设置服务注册中心地址,指向另一个注册中心
eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
2.7创建启动类。开启网关代理。
@SpringBootApplication
@EnableZuulProxy //开启zuul网关代理
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.8测试通过网关请求服务。
采用URL指定路由方式
3.1路由器中支持几种路由规则?
答:路由器中支持4种路由规则
3.2 URL指定路由是什么规则?
答:URL指定路由规则是在配置文件中使用path给服务起个名称,使用url指定访问url,当使用zuul访问指定服务时,直接映射到指定服务,让指定服务处理请求。
3.3通配符?表示的含义是什么?
答:通配符?表示匹配任意单个字符
3.4通配符*表示的含义是什么?
答:通配符*表示匹配任意数量的字符,但是只能在指定地址后面使用一个“/”
3.5通配符**表示的含义是什么?
答:通配符**表示匹配任意数量的字符,可以在指定地址后面使用多个“/”
3.6修改配置文件配置URL路由规则。
spring.application.name=gl-zuul-gateway-route
server.port=9021
#设置服务注册中心地址,指向另一个注册中心
eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
#路由指定:URL指定
#URL匹配关键字,如果包含关键字就跳转到指定的url中
zuul.routes.gl-ego-book-product-provider.path=/gl-ego-book-product-provider/**
zuul.routes.gl-ego-book-product-provider.url=http://localhost:9001/