问题
1.客户端需要维护大量服务信息,所有请求经过Nginx代理指定的服务,客户端还是需要
记录大量的服务地址,不访问具体路径,例如JD.com
2.项目更新迭代,耦合度较高,牵一发而动全身,客户端都需要进行大量的变化
3.服务没有与统一的入口,无法实现统一的来源合法性检测,无法方便收集日志信息,
分布式架构中,服务个数较多,权限校验,反爬虫
Zuul是所有请求到达后台服务的统一入口
Zuul也需要将信息注册到Eureka
1.创建SpringBoot工程 2.导入依赖:spring-cloud-starter-netflix-client,spring-cloud-starter-netflix-zuul,spring-cloud-starter-web,spring-cloud-starter-acturtor 3.在启动类上添加注解@EnableEureka@SpringBootApplication 4.配置文件 5.查看Zuul的默认路径与服务映射之间的关系http://localhost/actuator/routes (两者访问的是一样的)
1.忽略服务和路径配置:不直接访问search服务,先通过WebMaster再访问search
# 编写忽略路径,测试忽略服务的结果
zuul:
ignored-services:
- "zuul"
- "provider"
ignored-patterns:
- /zuul/**
routes:
p:
serviceId: provider
path: /p/**
provider: /pp/**
概念:产品同时上线多个版本,让自己的APP以一个比较平滑的方式从旧版本过渡到新版本,而不是直接砍掉。(温水煮青蛙??呱?)
1.修改consumer的服务名(改成符合格式的:服务名-版本号),Zuul会自动将路径映射为/版本号/服务名/**
2.创建ZuulConfig类 加注解@Configuration
概念:动态修改Zuul的路由规则,根据实际情况的变化,适时的进行调整