SpringCloud入门(五):Zuul路由

Zuul的主要功能是路由转发和过滤器。zuul默认和Ribbon结合实现了负载均衡的功能。

在SpringCloud中,Zuul是一个独立的微服务,注册进Eureka注册中心,并从Eureka获取其他微服务信息,之后对微服务的调用都会通过Zuul转发。

创建Zuul微服务:cloudZuul

POM:

        <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>

启动类:

@SpringBootApplication
@EnableZuulProxy  //开启Zuul支持
public class CloudZuul {

    public static void main(String[] args) {
        SpringApplication.run(CloudZuul.class,args);
    }

}

Zuul的启动类中没有添加@EnableEurekaClient注解,但是也能注册进Eureka服务中心中。这是因为@EnableZuulProxy是组合注解。

application.yml:

server:
    port: 9001

spring:
   application:
    name: cloud-zuul
eureka:
  client:
    service-url:
      defaultZone: http://eurekaServer7003:7003/eureka/
  instance:
    instance-id: cloudZuul-${server.port}dept
    prefer-ip-address: true

至此,Zuul微服务创建完成。我们先启动Eureka注册中心和服务提供者查看Eureka管理界面:

访问微服务:http://cloud-provider:8082/provider/get/1234 (需要修改系统的映射文件,Eureka集群配置中有说明)

这时再启动Zuul微服务,刷新Eureka管理界面:

通过路由访问微服务提供者:http://localhost:9001/cloud-provider/provider/get/1234

从路由地址可以看出,Zuul路由地址是由 “Zuul服务地址+微服务地址”,这样也同样会暴露真实的服务名,如果我们要隐藏真实的服务名,需要对Zuul进行配置:

server:
    port: 9001

spring:
   application:
    name: cloud-zuul
eureka:
  client:
    service-url:
      defaultZone: http://eurekaServer7003:7003/eureka/
  instance:
    instance-id: cloudZuul-${server.port}dept
    prefer-ip-address: true

zuul:
  prefix: /zsm                 #设置统一前缀
  ignored-services: "*"            #隐藏某个微服务真实的代理访问路径,*代表隐藏所有
  routes:
    mydept.serviceId: cloud-provider  #微服务名
    mydept.path: /myProxy/**                    #映射名

这时如果要对我服务进行路由访问的地址为:http://localhost:9001/zsm/myProxy/provider/get/1234

这时由:zuul地址+前缀+服务映射名+方法路径,且原路由访问路径不再起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值