zuul网关找不到服务_SpringCloud-Zuul服务网关

本文详细介绍了Zuul作为SpringCloud的API Gateway的作用和入门案例,包括如何配置POM文件、设置服务注册中心、创建启动类以及测试路由规则,帮助读者理解Zuul在微服务架构中的应用。
摘要由CSDN通过智能技术生成

编辑推荐:

文章介绍了什么是Zuul,入门案例、修改pom文件,修改配置,启动类,希望对大家的学习有所帮助。

本文来自于腾讯云,由火龙果软件Delores编辑、推荐。

一、什么是Zuul

zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。

Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

zuul的例子可以参考netflix在github上的 simple webapp,可以按照netflix 在github wiki 上文档说明来进行使用。

二、解决了什么问题

三、入门案例

1.创建项目

创建一个SpringBoot项目

2.修改pom文件

注意添加zuul的依赖

org.spring

framework.cloud

spring-cloud-

dependencies

Dalston.SR5

pom

import

org.springframework.

boot

spring-boot-

starter-web

org.spring

framework.cloud

spring-cloud

-starter-eureka

org.springframework.

cloud

spring-cloud-

starter-zuul

org.springframework.

boot

spring-boot-maven

-plugin

3.修改配置

application.properties中添加服务名称,端口和Eureka注册中心的信息即可

spring.application.name=zuul-gateway

server.port=9020

#\u8BBE\u7F6E\u670D\u52A1\u6CE8\u518C\u4E2D

\u5FC3\u5730\u5740\uFF0C\u6307\u5411\u53E6

\u4E00\u4E2A\u6CE8\u518C\u4E2D\u5FC3

eureka.client.serviceUrl.defaultZone=

http://dpb:123456@eureka1:8761/eureka/,

http://dpb:123456@eureka2:8761/eureka/

4.启动类

启动类中注意要添加zuul的注解

@SpringBootApplication

@EnableZuulProxy

public class StartZuul{

public static void main

(String[] args) {

SpringApplication.run

(StartZuul.class, args);

}

}

5.测试

我们随便启动一个前面的服务。

我这启动的是上个案例中的一个product服务

通过zuul服务网关访问:http://localhost:9020/e-book-product/product/findAll

http://网关服务地址:网关服务端口/访问的服务的名称/访问的服务中的接口的地址

四、路由规则

为了便于演示,路由案例新建一个项目来演示,内容和上面的项目是一致的。

1.URL 指定路由

application.properties中的配置如下:

spring.application.name=zuul-gateway

server.port=9030

#\u8BBE\u7F6E\u670D\u52A1\u6CE8\u518C

\u4E2D\u5FC3\u5730\u5740\uFF0C\u6307\

u5411\u53E6\u4E00\u4E2A\u6CE8\

u518C\u4E2D\u5FC3

eureka.client.serviceUrl.defaultZone=

http://dpb:123456@eureka1:8761/eureka/,

http://dpb:123456@eureka2:8761/eureka/

zuul.routes.e-book-product-provider.path

=/bobo/**

zuul.routes.e-book-product-provider.url

=http://127.0.0.1:9001/

说明:

zuul.routes.e-book-product-provider.path

zuul.routes是固定的,e-book-product-provider自定义,path是固定的

/bobo/** 表示 请求的url地址

zuul.routes.e-book-product-provider.url=http://127.0.0.1:9001/

表示,当用户的请求是 http://xxx/bobo/** 路由到http://127.0.0.1:9001/服务处理

2.服务名称指定路由

方式一

zuul.routes.e-book-product

-provider.path=/bobo/**

zuul.routes.e-book-product

-provider.serviceId=e-

book-product-provider

说明

当用户请求的url是:http://xxxx/bobo/product/findAll 这种方式的时候,会调用

zuul.routes.e-book-product-provider.serviceId=e-book-product-provider的

e-book-product-provider服务来处理请求

方式二

zuul.routes.e-book-product

-provider.path=/bobo/**

说明:

zuul.routes.e-book-product-provider.path=/bobo/**

此时routes和path之间的必须是路由的服务名称

3.路由的排除方式

排除路由,也就是该路由器会忽悠某几个服务,即使客户端发送了请求也访问不了

zuul.ignored-services=

e-book-product

如果有多个服务要排除,服务名称通过","连接

zuul.ignored-services=

e-book-product,e-book-order

由于服务太多,不可能手工一个个加,故路由排除所有服务,然后针对要

路由的服务进行手工加

# 先忽略所有的请求

zuul.ignored-services=*

# 然后单独放开e-book-order的服务

zuul.routes.e-book-order.path=/bobo/**

也可以通过排除指定关键字的路径

# 排除所有含有findAll关键字的请求

zuul.ignored-patterns=/**/findAll/**

# 放开e-book-order服务,

同时也会排除 findAll的请求

zuul.routes.e-book-order.path=/bobo/**

4.指定路由前缀

也就是给提前的url添加一个前缀

## http://127.0.0.1:

9030/bobo/product-provider

/product/findAll

zuul.prefix=/bobo

zuul.routes.e-book-product.path

=/product-provider/**

具体方位如下:http://localhost:9030/bobo/product-provider/product/findAll

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值