zuul学习

一、Zuul网关的作用

网关有以下几个作用:

  1. 统一入口:未全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。
  2. 鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。
  3. 动态路由:动态的将请求路由到不同的后端集群中。
  4. 减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射。

二、Zuul网关的应用

1. 网关访问方式
  通过zuul访问服务的,URL地址默认格式为:http://ip地址:端口/要访问的服务名称/服务中的URL
  服务名称:properties配置文件中的spring.application.name。
  服务的URL:就是对应的服务对外提供的URL路径监听。
2.网关依赖注入


<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-eurekaartifactId>
dependency>
<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-zuulartifactId>
dependency>

<dependency>
   <groupId>org.springframework.retrygroupId>
   <artifactId>spring-retryartifactId>
dependency>

3.网关启动器

/**
 * @EnableZuulProxy - 开启Zuul网关。
 *  当前应用是一个Zuul微服务网关。会在Eureka注册中心中注册当前服务。并发现其他的服务。
 *  Zuul需要的必要依赖是spring-cloud-starter-zuul。
 */
@SpringBootApplication
@EnableZuulProxy
public class ZuulApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }
}

4.网关全局变量配置
4.1 URL路径匹配

# URL pattern
# 使用路径方式匹配路由规则。
# 参数key结构: zuul.routes.customName.path=xxx
# 用于配置路径匹配规则。
# 其中customName自定义。通常使用要调用的服务名称,方便后期管理
# 可使用的通配符有: * ** ?
# ? 单个字符
# * 任意多个字符,不包含多级路径
# ** 任意多个字符,包含多级路径
zuul.routes.项目名称.path=/api/**
# 参数key结构: zuul.routes.customName.url=xxx
# url用于配置符合path的请求路径路由到的服务地址。
zuul.routes.项目名称.url=http://127.0.0.1:8080/
#以上2行配置大概意思是将 path中匹配的地址转发到 url这个地址上。

你可能感兴趣的:(java)