开发者学堂课程【微服务框架 Spring Cloud 快速入门:Zuul路由基本配置】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/614/detail/9368
Zuul路由基本配置
1. 新建 Module 模块 microservicecloud-zuul-gateway-
9527
2.POM
2.1修改内容
之前说过zuul也要注册进 Eureka,所以它需要以下两个坐标
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</ artifactId>
</ dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</ artifactId>
</dependency>
2.2全部内容
<projectxmlns="http:/maven.apache.org/PON/4.0.0”xmIns:xsi="http://ww.w3.org/2001/XNLSchema-instance"xsi:schemaLocation="http://maven.apache.org/PON/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.atguigu.springcloud</groupId><artifactId>microservicecloud
</ artifactId><version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>microservicecloud-zuul-gateway-9527</ artifactId>
<dependencies>
<! -- zuul 路由网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</ artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</ dependency>
<! -- actuator
监控-->
<dependency>
3.YML
server: //安装口为9527
port: 9527
spring:
application:
name: microservicecloud-zuul-gateway
//微服务器的名字
eureka:
client:
service-url:
//Eureka集群defaultZone:http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true
info://这一部分可写可不写
app. name: atguigu-microcloudcompany.
name: toervi.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$
4. hosts修改--不做演示
127.0.0.1 myzuul.com
5.主启动类
@EnableZuulProxy
package com.atguigu.springcloud;
import org.springframework.boot.SpringApplication;
Import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnablezuulProxy;
@SpringBootApplication
@EnableZuulproxy
//是 zuul 的一个相关的注解,起到代理的作用
public class zuul_9527_startspringCloudApp
{
public static void main(String[ ] args)
{
SpringApplication.run(Zuul_9527_StartSpringCloudApp.class,args);
}
6.启动
6.1三个 eureka 集群
6.2一个服务提供类 microservicecloud-provider-dept-8001
6.3一个路由
看看是否能通过路由来启动服务,如果成功启动我们可以看到微服务DEPT被初始进去,而Zuul作为一个微服务也会被初始化进去,在后方也可以看到服务的端口。
我们可以看到4为部门启动的服务者,5为微服务器的网关。
7.测试
7.1不用路由——http://localhost:8001/dept/get/2
将网址输入浏览器可以查找到
7.2启用路由—
http://myzuul.com:9527/ microservicecloud-dept/dept/get/2
对比两个地址我们可以看出红色部分取代了不用路由时的 localhost,其中的dept/get/2是rest封装服务地址,而蓝色部分则是 zuul 在 eureka 中找到的一个部门微服务然后查询出2号员工再访问其地址,总结红色就是网关,蓝色就是微服务器的地址,黑色就是具体的访问查询的字节。
Zuul 包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul 和 Eureka 进行整合,将 Zuul 自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获得其他微服务的消息,也即以后的访问微服务都是通过 Zuul 跳转后获得。
注意:Zuul 服务最终还是会注册进 Eureka
提供=代理+路由+过滤三大功能