zuul网关_Spring Cloud第五章:服务网关Zuul
在微服务架构中,需要几个关键的组件,服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个组件可以组建一个简单的微服务架构,如下图:
客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服务,服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理(下一篇文章讲述),配置服务的配置文件放在git仓库,方便开发人员随时改配置。
一、Zuul简介
Zuul的主要功能是路由和过滤器。路由功能是微服务的一部分,比如/api/user映射到user服务,/api/shop映射到shop服务。zuul实现了负载均衡。
zuul有以下功能:
- Authentication
- Insights
- Stress Testing
- Canary Testing
- Dynamic Routing
- Service Migration
- Load Shedding
- Security
- Static Response handling
- Active/Active traffic management
二、准备工作
继续使用上一节的工程。在原有的工程上,创建一个新的工程。
三、创建service-zuul工程
其pom.xml文件如下:
org.springframework.cloudspring-cloud-starter-eurekaorg.springframework.cloudspring-cloud-starter-zuul
在其入口applicaton类加上注解@EnableZuulProxy,开启zuul:
@EnableZuulProxy@EnableEurekaClient@SpringBootApplicationpublic class ServiceZuulApplication {public static void main(String[] args) {SpringApplication.run(ServiceZuulApplication.class, args);}}
加上配置文件:
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/server: port: 8769spring: application: name: service-zuulzuul: routes: api-a: path: /api-a/** serviceId: service-ribbon api-b: path: /api-b/** serviceId: service-feign
首先向eureka注册自己,端口为8769,服务名为service-zuul;以/api-a/ 开头的请求都指向service-ribbon;以/api-b/开头的请求都指向service-feign;
依次运行这五个工程;打开浏览器访问:http://localhost:8769/api-a/hi?name=forezp ;浏览器显示:
hi forezp,i am from port:8762
打开浏览器访问:http://localhost:8769/api-b/hi?name=forezp ;浏览器显示:
hi forezp,i am from port:8762
这说明zuul起到了路由的作用;
四、服务过滤
zuul不仅只是路由,并且还能过滤,做一些安全验证。继续改造工程;
@Componentpublic class MyFilter extends ZuulFilter{ private static Logger log = LoggerFactory.getLogger(MyFilter.class); @Override public String filterType() { return "pre"; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { return true; } @Override public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); HttpServletRequest request = ctx.getRequest(); log.info(String.format("%s >>> %s
zuul网关_Spring Cloud第五章:服务网关Zuul相关推荐
- Spring Cloud第五章:服务网关Zuul
在微服务架构中,需要几个关键的组件,服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个组件可以组建一个简单的微服务架构,如下图: 客户端的请求首先经过负载均衡(zuul.Ngn ...
- 《深入理解 Spring Cloud 与微服务构建》第十一章 服务网关
<深入理解 Spring Cloud 与微服务构建>第十一章 服务网关 文章目录 <深入理解 Spring Cloud 与微服务构建>第十一章 服务网关 一.服务网关简介 二. ...
- 【Spring Cloud Alibaba】Gateway 服务网关
[Spring Cloud Alibaba]Gateway 服务网关 1 架构图 2 Predicate 断言 3 路由 3.1 静态路由 3.2 动态路由 3.3 Nacos 配置 4 过滤器 4. ...
- springcloud 网关_Spring Cloud 系列之 Netflix Zuul 服务网关(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里: 哈喽沃德先生:Spring Cloud 系列之 Netflix Zuul 服务网关(一)zhuanlan.zhihu.com 本篇文章讲解 Zuul ...
- Spring Cloud(七)服务网关 Zuul Filter 使用
上一篇文章中,讲了Zuul 转发,动态路由,负载均衡,等等一些Zuul 的特性,这个一篇文章,讲Zuul Filter 使用,关于网关的作用,这里就不再次赘述了,重点是zuul的Filter ,我们可 ...
- Spring Cloud(六)服务网关 zuul 快速入门
服务网关是微服务架构中一个不可或缺的部分.通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能.Spring Cloud Netflix中 ...
- Spring Cloud构建微服务架构(五)服务网关
通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: alt 我们使用Spring Cloud Netflix中的Eureka实 ...
- 一起来学Spring Cloud | 第五章:熔断器 ( Hystrix)
在微服务项目中,一个系统可以分割成很多个不同的服务模块,不同模块之间我们通常需要进行相互调用.springcloud中可以使用RestTemplate+Ribbon和Feign来调用(工作中基本都是使 ...
- com 组件调用不起来_Spring Cloud Alibaba训练营 —— 分布式服务调用
注意:用手机查看排版可能不太友好, 1. 简介 在<Spring Cloud Alibaba 服务注册与发现>篇中曾提到,Spring Cloud Alibaba Nacos Discov ...
- com 组件调用不起来_Spring Cloud Alibaba,分布式服务调用(四)
1. 简介 在<Spring Cloud Alibaba 服务注册与发现>篇中曾提到,Spring Cloud Alibaba Nacos Discovery 能无缝整合 Spring C ...
最新文章
- iOS开发之使用XMPPFramework实现即时通信(二)
- Spring-Spring配置概述
- ci发什么音标_48个国际音标发音舌位图
- nssl1269-射击【贪心,堆】
- 微服务架构工作笔记001---认识Service Mesh
- Java Web文件上传原理分析(不借助开源fileupload上传jar包)
- 5. Mac phpstorm 快捷键
- POJ 2253 1797
- 节奏大师乐谱破解 续
- BP算法简单推导过程
- python打印质数(素数)
- Linux系统无法在spyder5中输入中文的解决办法
- 永久免费使用免费20G空间的推荐
- 电脑上如何进行MP4格式转换成其它格式?
- 高德地图刷新当前位置_定位-服务-教程-地图 JS API | 高德地图API
- ctf夏季集训结训赛-简单题writeup
- 这几年被分布式坑惨了,曝光十大坑
- 非线性可视化(3)混沌系统
- 循环相乘取整法C语言,华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...
- Oracle EBS使用CSV导入Oracle Form及BOM清单导入 API