SpringCloud系列研究服务网关zuul.docx

上传人:b****0 文档编号:28734 上传时间:2022-10-01 格式:DOCX 页数:17 大小:141.95KB
下载 相关 举报
SpringCloud系列研究服务网关zuul.docx_第1页
第1页 / 共17页
SpringCloud系列研究服务网关zuul.docx_第2页
第2页 / 共17页
SpringCloud系列研究服务网关zuul.docx_第3页
第3页 / 共17页
SpringCloud系列研究服务网关zuul.docx_第4页
第4页 / 共17页
SpringCloud系列研究服务网关zuul.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

SpringCloud系列研究服务网关zuul.docx

《SpringCloud系列研究服务网关zuul.docx》由会员分享,可在线阅读,更多相关《SpringCloud系列研究服务网关zuul.docx(17页珍藏版)》请在冰豆网上搜索。

SpringCloud系列研究服务网关zuul.docx

SpringCloud系列研究服务网关zuul

SpringCloud系列研究---服务网关zuul

阿里巴巴首席工程师经验分享,物超所值

一、zuul简介

    服务网关是微服务架构中的入口,微服务平台通过服务网关统一向外部暴露API供客户端调用,网关除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。

在SpringCloud中的Zuul就担任了这样的一个角色,为微服务架构提供了保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

二、环境介绍

   同上一篇介绍ribbo中的环境一样,首先我们在A服务器上启动Eureka服务,然后在B、C两台服务器上分别启动ms-demo-provider服务,这里也可以部署在一台服务器上采用不同的端口。

访问Eureka界面查看服务注册状态,之后在本地新建客户端调用工程进行测试。

此时A为Eureka的注册中心,B、C分别为服务提供者(提供相同的接口),本地工程为基于zuul的服务网关。

三、项目代码

在Idea中创建maven工程,ms-zuul-demo工程的最终代码结构如下:

1:

pom.xml中的依赖如下:

xmlversion="1.0"encoding="UTF-8"?

>

//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.0http:

//maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.cloud.microservice

ms-zuul-demo

0.0.1-SNAPSHOT

jar

ms-zuul-demo

DemoprojectforSpringBoot

org.springframework.boot

spring-boot-starter-parent

1.5.9.RELEASE

--lookupparentfromrepository-->

UTF-8

UTF-8

1.8

Edgware.SR1

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-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

 

2:

application.properties中的配置信息如下:

spring.application.name=ms-gateway-zuul

server.port=8000

#注册中心地址

eureka.client.serviceUrl.defaultZone=http:

//xx.xx.xx.xx:

9000/eureka/

#这里的配置表示,访问/userdemo/**直接重定向到eureka中的ms-demo-provider这个serviceId

zuul.routes.userprovider.path=/userdemo/**

zuul.routes.userprovider.serviceId=ms-demo-provider

 

3:

在入口类Application中增加@EnableZuulProxy注解,表明这是个网关服务

packagecom.cloud.microservice;

importorg.springframework.boot.SpringApplication;

importorg.springframework.boot.autoconfigure.SpringBootApplication;

importflix.zuul.EnableZuulProxy;

 

@SpringBootApplication

@EnableZuulProxy

publicclassZuulDemoApplication{

publicstaticvoidmain(String[]args){

SpringApplication.run(ZuulDemoApplication.class,args);

}

}

启动工程,然后刷新Eureka界面,可以看到本地zuul服务已经注册到服务中心。

 

四、运行测试

打开浏览器,访问http:

//localhost:

8000/userdemo/demo/user/1.0/findAll,返回结果如下,说明网关已经成功转发到相应的服务,接口调用成功。

至此,zuul的简单demo已经完成,其他高级功能有待后续研究。

五、问题总结

如果在通过网关访问接口的时候出现flix.zuul.exception.ZuulException:

Forwardingerror错误,则需要在pom.xml中增加如下依赖:

我由于是用idea模板生成的工程,所以pom里面缺少spring-cloud-starter-eureka这个jar包,后来加上之后问题就解决了。

org.springframework.cloud

spring-cloud-starter-eureka

 

详细log信息:

2018-01-2616:

36:

24.925WARN32240---[nio-8000-exec-3]o.s.c.n.z.filters.post.SendErrorFilter:

Errorduringfiltering

flix.zuul.exception.ZuulException:

Forwardingerror

atflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:

189)~[spring-cloud-netflix-core-1.4.2.RELEASE.jar:

1.4.2.RELEASE]

atflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:

164)~[spring-cloud-netflix-core-1.4.2.RELEASE.jar:

1.4.2.RELEASE]

atflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:

111)~[spring-cloud-netflix-core-1.4.2.RELEASE.jar:

1.4.2.RELEASE]

atflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:

112)~[zuul-core-1.3.0.jar:

1.3.0]

atflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:

193)~[zuul-core-1.3.0.jar:

1.3.0]

atflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:

157)~[zuul-core-1.3.0.jar:

1.3.0]

atflix.zuul.FilterProcessor.route(FilterProcessor.java:

118)~[zuul-core-1.3.0.jar:

1.3.0]

atflix.zuul.ZuulRunner.route(ZuulRunner.java:

96)~[zuul-core-1.3.0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1