SpringCloud微服务学习----------服务网关和Zuul

假如启动了几十个微服务,客户端就得和每一个服务打交道,有了服务网关,客户端只需要和一个服务打交道就可以了

 网关一挂,所有的服务都会挂,所以得保证网关的稳定性和高可用。

所有的请求都会经过网关,可想而知网关的压力是巨大的,网关的性能必须高

下面来敲敲代码,首先添加依赖

配置文件使用Eureka和统一配置中心进行配置

spring:
  application:
    name: getway
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
      profile: best
eureka:
  client:
    service-url:
      defaultZone: http://localhost:30520/eureka/

然后主类添加开启注解,运行一下下

package com.sola;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class ApiGetwayApplication {

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

运行成功,但是并不能像视频那样 直接访问 例:(当我没说看运行路径其实是可以的(貌似必须配置一个 别的才暴露出来))

http://192.168.66.63:30600/EUREKACLIENT-POSTMAN/eurekaApi/test

哎,不过不要紧,我们配置一下就好了。。。

spring:
  application:
    name: getway
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
      profile: best
eureka:
  client:
    service-url:
      defaultZone: http://localhost:30520/eureka/
//下面是此次重点对象
zuul:
  routes:
    postman: 
      path: /postman/**
      service-id: EUREKACLIENT-POSTMAN

然后我们就可以通过这个路径来访问

http://192.168.66.63:30600/postman/eurekaApi/test 可以的

那么有没有地方可以让我们看到所有路由的规则呢

理论上访问这个就可以,但是默认是没有权限访问的,所以我们要配置权限

以上我的用的版本好像没有先不管了

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

有的时候我们想让我们的服务里的一些接口不让客户端调用,只让服务之间调用我们就可以来配置

zuul:
  routes:
    postman: 
      path: /postman/**
      service-id: EUREKACLIENT-POSTMAN
  ignored-patterns:
    - /postman/eurekaApi/test
    - /postman/eurekaApi/findPolicebyname

加一个ignored-patterns:之前我们可以访问的就被显示无法找到网页

通配符写法,你懂的这样所有的服务下的这个接口都无法访问

------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

Cookie和动态路由

有的时候后端需要用到Cookie来验证一些东西,但是这样用Zuul是无法使用Cookie的,加入一个配置Cookie就传递过来了

动态路由的话可以使用直接用统一配置中心去配置,直接把以上部分放入ConfigServer嗯~

不过现在这样的有问题之后百度解决 先学习别的

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

zuul的路由和高可用

 前置过滤器

限流 :流量过大时按某些定义的规则把流量挡回去,后续逻辑就不再处理了

鉴权 : 假如原始有三个服务,每个服务都要鉴权一次,把鉴权的逻辑放在前置过滤器是一个不错的选择

(就是例如用户权限的校验)

参数校验 : 参数校验和请求转发都可以放在这

后置过滤器

 统计 : 对做过的事情可以做一个统计

日志 : 可以把做过的详细情况用日志记录下来

Zuul 的高可用 和之前的一样 注册多个Eureka客户端即可  服务之间的调用直接用即可负载均衡高可用

但是外部客户端web端访问按这个视频来讲述,就需要nginx与zuul混搭。。。。嗯 暂时不管先看后面

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/jiulanhao/article/details/82774618