spring-cloud-zuul服务网关

  Zuul包含了对请求的路由和过滤两个最主要的功能:

  其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,类似于保安的职能,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础,Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获取其他的微服务消息,也即以后访问微服务是通过Zuul跳转后获得,最终Zuul服务还是会注册进Eureka。提供 服务代理 ,路由,过滤三大功能。

spring-cloud-zuul服务网关_第1张图片

  从以上这张架构图中,我们可以看到所有的请求都必须通过API GateWay服务才能到达后面的服务,这就是Zuul所需要承担起来的责任。可见他的存在是很重要的

1.新建 boot 工程 修改pom文件


        UTF-8
        UTF-8
        1.8
        Finchley.SR3
    

    
        
            
                
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
        
            org.springframework.cloud
            spring-cloud-starter-zuul
            1.4.6.RELEASE
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

2.修改application.yml

server:
  port: 9527

spring:
  application:
    name: cloud-zuul-getway #服务注册到Eureka上使用的名称

eureka:
  client:
    service-url:  # 集群情况下如下,如果是单机版,只需要配置单机版Eureka地址
      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/
  instance:
    instance-id: cloud-zuul-getway-9527
    prefer-ip-address: true #访问路径显示IP地址

info:   # 在Eureka上点击服务时会跳转到个404页面,可配置这里让他跳转到服务简介的一个页面,信息如下配置
  app.name: wuzz
  company.name: www.wuzz.com
  build.artifactId: cloud-zuul-getway
  build.version: 1.0

zuul:  # zuul 的配置规则 http://localhost:9527/wuzz/mydept/hello
  prefix: /wuzz # 统一的公共前缀
  ignored-services: cloud-provider  #  "*" 所有 忽略原有服务名
  routes:
    mydept.serviceId: cloud-provider #域名映射
    mydept.path: /mydept/**

3.修改主启动类

@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
public class ZuulApp {
    private final static Logger log = LoggerFactory.getLogger(ZuulApp.class);

    public static void main(String[] args) {
        SpringApplication.run(ZuulApp.class,args);
        log.info("服务启动成功");
    }
}

  启动Eureka集群,再启动 一个微服务服务提供者,再启动本开启了Zuul服务的微服务。可以通过 http://localhost:8001/dept/get/1 来访问服务提供者的服务 ,由于配置了Zuul,我们还可以通过 http://localhost:9527/wuzz/mydept/hello 这个地址去访问

  红色:对应的zuul服务的网关。

  蓝色:对应的zuul在Eureka集群上寻找到的已经注册在Eureka上的服务的服务名,这里配置忽略了原来的服务名并且加了自定义前缀。

  黑色:对应的Restful请求地址。

 

转载于:https://www.cnblogs.com/wuzhenzhao/p/9506828.html

你可能感兴趣的:(spring-cloud-zuul服务网关)