Zuul网关服务

矫情吗;* 2022-01-16 03:09 458阅读 0赞

微服务调用过程

  1. 前面的博客文章已经介绍过spring cloud的服务的相关内容信息,那么我们回顾一下多个微服务的调用过程。微服务一般会由不同的团队去维护,,那么就会由不同的域名和IP。客户端不可能维护那么多的域名,所以就需要统一的维护所有的域名。这个就是spring cloud提供的网关,网关维护着所有的微服务,客户端通过请求到网关,由网关分发到不同的微服务,这样客户端就只需要维护网关的域名即可。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzMyMzY2MzI5_size_16_color_FFFFFF_t_70

使用网关服务,将网关对外,实现简化和统一管理。网关就类似我们的路由器,由于所有的请求都要经过网关,所以可以在网关中拦截请求,过滤非法请求等。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzMyMzY2MzI5_size_16_color_FFFFFF_t_70 1

简介

  1. 上面已经简单说明了网关的作用,这里我们对网关的功能简单介绍一下,但是这里只搭建简单的网关服务,无法详细介绍所有功能。但是我相信google总有你需要的东西。
  2. ZuulNetflix开源的服务网关,它可以和前面介绍的Eureka/Ribbon/Hystrix/Feign等组件很好的兼任使用。Zuul的核心是过滤器,通过过滤器实现功能。
  1. 身份认证与安全
  2. 审查与监控
  3. 动态链路
  4. 压力测试
  5. 负载均衡
  6. 静态响应处理
  7. 容错降级

Zuul默认使用Apache HTTP Client作为HTTP客户端。如果要使用RestClient可以配置ribbon.restclient.enabled=true。如果要使用okhttp3.0kHttpClient可以配置ribbon.okhttp.enabled=true。

实现服务网关

1.maven依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.cloud</groupId>
  7. <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
  8. </dependency>
  9. <dependency>
  10. <groupId>org.springframework.cloud</groupId>
  11. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  12. </dependency>
  13. <dependency>
  14. <groupId>org.springframework.cloud</groupId>
  15. <artifactId>spring-cloud-starter-openfeign</artifactId>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-test</artifactId>
  20. <scope>test</scope>
  21. </dependency>

2.启动类添加注解@EnableZuulProxy

  1. @EnableZuulProxy
  2. @SpringBootApplication
  3. public class ApiGatewayApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(ApiGatewayApplication.class, args);
  6. }
  7. }

3.编写application.yml配置文件

  1. server:
  2. port: 9000
  3. spring:
  4. application:
  5. name: api-gateway
  6. eureka:
  7. client:
  8. service-url:
  9. default-zone: http://localhost:8761/eureka/
  10. zuul:
  11. routes:
  12. provider-user: /provider-user/**
  13. consumer: /consumer/**

这里需要对zuul.routes.xxxx配置做讲解。zuul.routes是固定的,后面的provider-user/consumer是微服务在注册中心的名称。后面的值是映射地址。所有的/provider-user/匹配的请求都会被转发到provider-user名称的微服务中。/consumer也是一样的道理。当然写法有多种,这里是简便的写法。

  1. Eureka.client.service-url.default-zone的作用就是将网关服务注册到注册中心。
  2. 只要启动网关服务,通过网关的ip和域名+zuul.routes中配置的路由规则就可以访问到对于的服务。

4.路由配置介绍

忽略指定的服务:zuul.ignored-services=名称1,名称2

忽略所有微服务,只路由指定的服务:zuul.ignored-services:’*’;zuul.routes.consumer=/consumer/**

忽略某些路径:zuul.ignored-patterns=/**/admin/**(包含admin的都被忽略)

关注微信公众号(程序员小兔)不定期分享技术

20190711001357188.jpg

发表评论

表情:
评论列表 (有 0 条评论,458人围观)

还没有评论,来说两句吧...

相关阅读

    相关 服务:SpringCloud zuul

    一、存在的问题 在之前的文章中,微服务架构已经初具雏形。但还有一些问题:不同的微服务一般会有不同的网 络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客

    相关 Zuul

    zuul包含了对请求进行路由和过滤的两个主要功能。 路由功能负责将外部的请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。 过滤功能则负责将请求的处理过程进行干预

    相关 Zuul服务

    微服务调用过程     前面的博客文章已经介绍过spring cloud的服务的相关内容信息,那么我们回顾一下多个微服务的调用过程。微服务一般会由不同的团队去维护,,那么

    相关 Zuul

    一、Zuul网关简介 1. zuul是spring cloud中的微服务网关。 网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由