Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)

路由网关什么是Zuul?

    Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/payment转发到到payment服务,/api/login转发到到login服务。zuul默认和Ribbon结合实现了负载均衡的功能。

zuul有以下功能:

  • Authentication
  • Insights
  • Stress Testing
  • Canary Testing
  • Dynamic Routing
  • Service Migration
  • Load Shedding
  • Security
  • Static Response handling
  • Active/Active traffic management

 

 

 

一、使用Zuul

1、修改pom.xml


   org.springframework.cloud
   spring-cloud-starter-netflix-zuul

完整pom.xml



	4.0.0

	com.cloud
	serverzuul
	0.0.1-SNAPSHOT
	jar

	serverzuul
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.2.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
		Finchley.RC2
	

	
		
			org.springframework.cloud
			spring-cloud-starter-netflix-eureka-server
		

		
			org.springframework.cloud
			spring-cloud-starter-netflix-zuul
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

	
		
			spring-milestones
			Spring Milestones
			https://repo.spring.io/milestone
			
				false
			
		
	



 

 

 

2、编写Controller类

在其入口applicaton类加上注解@EnableZuulProxy,开启zuul的功能

package com.cloud.serverzuul;

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 ServerzuulApplication {


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

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第1张图片

 

 

首先指定服务注册中心的地址为http://localhost:8761/eureka/,服务的端口为8767,服务名为service-zuul;以/api-a/ 开头的请求都转发给service-ribbon服务;以/api-b/开头的请求都转发给service-feign服务

 

3、配置文件

server.port=8767
spring.application.name=service-zuul
#指定服务中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
feign.hystrix.enabled=true
zuul.routes.api-a.path=/api-a/**
zuul.routes.api-a.serviceId=service-ribbon

zuul.routes.api-b.path=/api-b/**
zuul.routes.api-b.serviceId=service-feign

4、通过zuul指定的ribbon去消费

 

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第2张图片

 

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第3张图片

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第4张图片


 

 

5、通过zuul指定的通过feign去消费

 

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第5张图片

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第6张图片

 

Spring Cloud入门教程之路由网关 Zuul(五)(Finchley版本+Boot2.0)_第7张图片

 

 

Spring Boot与Spring Cloud学习使用可参看笔者博客

       ①Spring Cloud入门教程之服务注册与发现Eureka

       ②Spring Cloud入门教程之服务消费者 Ribbon

       ③Spring Cloud入门教程之服务消费者 Feign

       ④Spring Cloud入门教程之断路器 Hystrix

       ⑤Spring Cloud入门教程之断路由网关 Zuul

       ⑥Spring Cloud入门教程之分布式配置中心 Spring Cloud Config

       ⑦idea下新建Spring Boot项目并配置启动

       ⑧Spring Boot无法自动注入bean问题解决方案

       ⑨idea 设置Spring Boot热部署

 

 

你可能感兴趣的:(Spring,Cloud,Spring,Cloud系列教程)