六、SpringCloud五大神兽之Zuul

      路由在微服务体系结构的一个组成部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,/api/shop映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。

 

快速使用

1、在前面创建基础上新建一个Module,这里命名microservicecloud-zuul-gateway-9527,然后导入相关依赖:

<dependencies>
        <!-- zuul路由网关 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <!-- actuator监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- hystrix容错 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!-- 日常标配 -->
        <dependency>
            <groupId>com.zhanghf</groupId>
            <artifactId>microservisecloud-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- 热部署插件 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

2、配置文件添加路由等相关配置

server: 
  port: 9527
 
spring: 
  application:
    name: microservicecloud-zuul-gateway
 
eureka: 
  client: 
    service-url: 
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka  
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true 
 
 
zuul: 
#  ignored-services: microservicecloud-dept  #忽略microservicecloud-dept这个服务名,即用http://gateway-9527.com:9527/microservicecloud-dept/dept/get/2访问无效
#  prefix: /atguigu #前缀
#  ignored-services: "*" #忽略所有的服务名
  routes: 
    mydept.serviceId: microservicecloud-dept   #映射到的服务名
    mydept.path: /mydept/**  #可以用mydept替代microservicecloud-dept,即通过http://gateway-9527.com:9527/microservicecloud-dept/dept/get/2和http://gateway-9527.com:9527/mydept/dept/get/2同等
 


路由相关配置说明如上述配置注解,一个特殊的地方在于上述配置中通过域名进行匹配,因此需要在本机hosts文件中做好域名映射127.0.0.1  gateway-9527.com

3、启动类添加相关启动注解@EnableZuulProxy

package com.zhanghf;

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

@SpringBootApplication
@EnableZuulProxy
public class Zuul_9527_StartSpringCloudApp
{
	public static void main(String[] args)
	{
		SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args);
	}
}

测试:

依次启动7001,7002,7003,8001和9527

然后访问http://eureka7001.com:7001/或者http://eureka7002.com:7002/或者http://eureka7003.com:7003/,查看当前eureka服务器上的所有微服务:

 访问:http://gateway-9527.com:9527/mydept/dept/get/2,可以访问,因为通过上述zull的配置,/mydept的的请求会自动匹配到

microservicecloud-dept服务名中,同时也可以通过http://gateway-9527.com:9527/microservicecloud-dept/dept/get/2来进行访问,效果一样。

如果需要隐藏原微服务,则看上述配置文件注释掉的代码 ignored-services: microservicecloud-dept

添加前缀则:prefix: /atguigu #前缀

 

next:SpringCloud五大神兽之SpringCloud Config

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值