微服务网关-Zuul落地
当然,这个技术,跟Eureka,Hystrix-DashBoard一样又是项目经理的东西!
配一次,一般就不需要再做多次的修正!
老蒲说:
做项目时,组长来玩
网关程序,一般都是一个独立的微服务程序!
创建网关微服务
创建一个micro-zuul-server程序,并配置maven的父子关系
导入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
修改主启动类
/**
* 启动网关服务
*/
@EnableZuulProxy
@SpringBootApplication
public class MicroZuulServerApplication {
public static void main(String[] args) {
SpringApplication.run(MicroZuulServerApplication.class, args);
}
}
路由设置
1、传统配置方法(了解)
修改application.yml文件
#定义一个服务名称
spring:
application:
name: micro-zuul-server
server:
port: 8081
zuul:
routes:
micro-base-server:
path:
/auction/**
/market/**
url: http://localhost:9091
micro-user-server:
path:
/feign/**
/rent/**
url: http://localhost:9092
传统的配置方式:url路径的指向,一定要写出具体的路径
容易出现问题
假如url所对应的地址,出现异常,就很麻烦
2、常用配置方法(掌握)
Zuul实际上,它是可以和Eureka配合起来使用的
Zuul支持与Eureka整合开发,根据ServiceID自动的从注册中心中获取服务地址并转发请求,这样做的好处不仅可以通过单个端点来访问应用的所有服务,而且在添加或移除服务实例的时候不用修改Zuul的路由配置。
导入依赖
在网关微服务程序中,导入Eureka的依赖关系
<!--导入Eureka的客户端依赖包-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
修改启动类
使用@EnableEurekaClient开启向 Eureka注册中心进行注册该微服务
/**
* 启动网关服务
*/
@EnableEurekaClient
@EnableZuulProxy
@SpringBootApplication
public class MicroZuulServerApplication {
public static void main(String[] args) {
SpringApplication.run(MicroZuulServerApplication.class, args);
}
}
修改配置文件
添加Eureka的注册地址
#定义一个服务名称
spring:
application:
name: micro-zuul-server
server:
port: 8081
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8080/eureka/
路由配置
zuul:
routes:
micro-base-server: #路由ID/名称(可以随便写)
path: #访问路径(不能随便写,它需要对应微服务中Controller发布的接口)
/auction/**
/market/**
serverId: micro-base-server #微服务的名称
micro-user-server:
path:
/feign/**
/rent/**
serverId: micro-user-server #微服务的名称
访问演示
http://localhost:8081/micro-user-server/feign/get?name=广哥&telphone=123456798&adminName=健哥
格式:http://IP地址:网关的端口/微服务的名称/微服务的访问路径……
3、常用配置(简化)
zuul:
routes:
micro-base-server: /auction/**,/market/**
micro-user-server: /feign/**,/rent/**
micro-base-server ,micro-user-server代表微服务的名称
后面的东西,是访问路径
4、最简化方式
什么都不配置!
**总结一下:**Zuul在该文档的作用,就是为所有的微服务提供一个统一的访问入口
-user-server: /feign/,/rent/
> micro-base-server ,micro-user-server代表微服务的名称
>
> 后面的东西,是访问路径
##### 4、最简化方式
什么都不配置!
**总结一下:**Zuul在该文档的作用,就是为所有的微服务提供一个统一的访问入口
Zuul统一入口提供完毕之后,针对每个单独的微服务,它采用的负载均衡的轮询算法