【SpringCloud】(十五):Zuul的基本应用,反向代理和负载均衡
来源:互联网 发布:mac winebottler 1.8 编辑:程序博客网 时间:2024/06/16 09:04
Router and Filter: Zuul。 Zuul is a JVM based router and server side load balancer by Netflix。
Zuul是一个路由器,而且是一个Server端的负载均衡器,Zuul默认的会反向代理到所有注册到Eureka上的服务。
Zuul实现代理。
启动类
package com.dynamic.cloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.zuul.EnableZuulProxy;@SpringBootApplication@EnableZuulProxypublic class ZuulApplication { public static void main( String[] args ) { SpringApplication.run(ZuulApplication.class, args); }}
后面的代码中,启动类不会变化。
@EnableZuulProxy,是一个组合注解,@EnableCircuitBreaker,@EnableDiscoveryClient。因为它有@EnableDiscoveryClient,所以可以注册到Eureka上。
POM.xml中加入依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>microservice-gateway-zuul</artifactId> <packaging>jar</packaging><parent><groupId>com.dynamic.cloud</groupId><artifactId>microservice-spring-cloud</artifactId><version>0.0.1-SNAPSHOT</version></parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency></dependencies></project>
配置文件application.yml
spring: application: name: microservice-gateway-zuulserver: port: 8040 eureka: client: service-url: defaultZone: http://user:pass123@localhost:8761/eureka #把Eureka註冊到那個Eureka instance: prefer-ip-address: true instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000zuul: ignored-services: microservice-comsumer-movie-ribbon-withhystrix routes: microservice-provider-user: /user/**
zuul:
ignored-services: microservice-comsumer-movie-ribbon-withhystrix ,不允许代理本服务
routes:
microservice-provider-user: /user/** ,可以使用user替换microservice-provider-user访问路径。
只想反向代理一个微服务,不想反向代理其他的微服务
第一种:所有的服务都ignored,只有配置的才反向代理
第二种:在ignored上配置,不代理的服务。
启动Eureka,用户服务,Zuul服务
已经完成了简单的Zuul的实例
1.指定path+serviceid
zuul: routes: abc: #让zuul方向代理微服务,路径是/user-path abc只要是唯一的就行,可随意写 path: /user-path/** #封层匹配 serviceId: microservice-provider-user
2.指定Path+url
zuul: routes: abc: #让zuul方向代理微服务,路径是/user-path abc只要是唯一的就行,可随意写 path: /user-path/** #封层匹配 #serviceId: microservice-provider-user url: http://localhost:7900/
使用path + url不能实现服务提供者的负载均衡。
3.解决path + url 实现负载均衡
zuul: routes: abc: #让zuul方向代理微服务,路径是/user-path abc只要是唯一的就行,可随意写 path: /user-path/** #封层匹配 serviceId: microservice-provider-userribbon: eureka: enabled: falsemicroservice-provider-user: #这是Ribbon要请求的微服务的ServiceId ribbon: listOfServers: http://localhost:7900,http://localhost:7901
Zuul是API 网关解决微服问题的实现,反向代理,默认情况下,可以代理所有注册在Eureka上面的服务,实现在服务端的负载均衡。
阅读全文
1 0
- 【SpringCloud】(十五):Zuul的基本应用,反向代理和负载均衡
- Zuul的基本应用,反向代理和负载均衡
- Nginx的反向代理 和 负载均衡
- Nginx的负载均衡和反向代理
- Nginx的反向代理和负载均衡
- Nginx的反向代理和负载均衡
- 反向代理和负载均衡的关系
- nginx的反向代理和负载均衡
- 反向代理和负载均衡的关系
- 【Nginx应用】1.理解正、反向代理和负载均衡
- 反向代理负载均衡Nginx的http和tcp代理
- Debian/Ubuntu下Nginx的安装、反向代理和负载均衡的基本配置
- Nginx应用场景(二)反向代理,负载均衡
- Nginx应用场景(二)反向代理,负载均衡
- nginx应用反向代理负载均衡
- 反向代理原理,反向代理负载均衡,免费反向代理服务器软件nginx和nat123的使用方法
- nginx的反向代理和负载均衡的区别是什么
- nginx的反向代理和负载均衡的区别是什么
- 今夕何年(模拟日期)
- Java泛型应用
- 问题 F: 小ho的01串
- [ Laravel 5.4 文档 ] 综合话题 —— 辅助函数
- JAVA中枚举类型enum综合详解
- 【SpringCloud】(十五):Zuul的基本应用,反向代理和负载均衡
- 网易2018校招编程题集合1
- mysql数据库中的表不存在,可以查看的问题
- AnyConnect卸载不完全,造成无法重新安装的解决办法 For Mac
- (并发)线程的处理
- linux中的数据库管理
- mysql数据类型
- python_静态属性,类方法,静态方法
- hdu 6112 基姆拉尔森计算公式