05.Spring Cloud Zuul服务网关

Spring Cloud Zuul

项目演示

新建一个项目,作为服务网关
依赖:

  <dependency>
	  	<groupId>org.springframework.cloud</groupId>
      	<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
       	<version>2.1.0.RC2</version>
  </dependency>
  <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
       <version>2.1.0.RC2</version>
   </dependency>

application.yml配置:

# 配置zuul项目端口
server:
  port: 9527
# 配置zuul项目名
spring:
  application:
    name: zuul-app

eureka:
  instance:
  	# 当前zuul也是一个eureka实例
    instance-id: gateway-9527.com
    prefer-ip-address: true
  client:
    service-url:
    # 配置注册中心地址
     defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

主启动类配置:

@SpringBootApplication
// 开启zuul代理
@EnableZuulProxy
public class ZuulApp {

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

}

为什么是@EnableZuulProxy?
在加入了服务网关后,网关可以做代理服务访问。

application.yml中配置的当前项目(zuul)的端口是9527,所以访问localhost:9527就能访问的到当前zuul了,zuul作为客户端注册进eureka中,可以获取注册中心的所有服务,有了zuul,其他服务的访问都可以走zuul代理。例如有一个服务名为provider,提供了/dept/1接口,要访问这个provider的这个接口,可以这样访问localhost:9527/provider/dept/1。即zull的 ip:port/服务名/服务接口

zuul的配置

application.yml

server:
  port: 9527
spring:
  application:
    name: zuul-app

eureka:
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true
  client:
    service-url:
     defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
zuul:
	# 定义路由策略
  routes:
	# p只是一个标识,用来把serviceId和对应的path绑定
	# 指定服务 值是服务名
    p.serviceId: provider
    # 指定服务请求路径
    p.path: /mydept/**
   # ignored-services指定要忽略的服务,及不能通过服务名来访问了,要通过path值来访问
  ignored-services: provider

没配置路由的情况下要通过服务名的方式调用服务,在配置路由后,通过配置的路由的path值来调用服务。ignored-services: 这个属性就是用来控制是否能用服务名访问的,如果要设置所有的服务都不能通过服务名访问的话可以设置ignored-services: “*”
可以为路由设置统一的前缀

zuul:
  routes:
    p.serviceId: provider
    p.path: /mydept/**
  ignored-services: provider
  prefix: /demo

访问相当于ip:port/demo/mydept/**。前面的/不能省略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值