目录

一、需求背景

二、实现方案

一、源码获取

二、源码分析

三、效果展示

三、相关问题


一、需求背景

用JAVA为开发语言的流控网关主要分为以下三种:

  • Netflix Zuul/Zuul2
  • Spring Cloud GateWay
  • Alibaba Sentinel

从定位上来看,Zuul2与SpringCloudGateway其实比较接近,而Sentinel属于另外一种产品了。

Sentinel是一个强大的产品,它提供的流量管理策略多于另外两位,但它存在一个统一网关无法接受的问题:服务入侵,它需要客户端注册。

而Zuul2,可以做到完全无耦合,与下层服务完全脱离,接入方式比较轻便,另外,它所提供的基础能力很适配我们的需求,至于SpringCloudGateWay,暂且不谈。

但Zuul2也存在一些比较难搞的问题,它并不完善,它只提供了一个内核,它只会将流量交给ribbon处理,大部分功能是需要自己去实现的,包括路由、鉴权、限流方式、流量监控等功能。

并且,由于它不提供控制台界面,让运维人员自行去使用这些功能会是一件很烦心的事。

由此,便有了一个好点子:使用Sentinel的控制台,改造适配Zuul2。

二、实现方案

一、源码获取

从github上拿到sentinel UI相关源码,注意使用release版本。

git地址:https://github.com/alibaba/Sentinel

使用DashBoard项目即可

二、源码分析

整体DashBoard使用Springboot+AngularJS结构,是个单体应用,只需要启用java服务即可,前端代码自动部署在Tomcat中。

需要注意的是,前端代码的热部署比较麻烦,需要重新打包(可能有更多方式,笔者不熟前端),但tomcat不需要重启。

三、效果展示

花了一点时间,改造出了一个雏形,作为一个结构展示,后续会不断完善UI界面,接入更多功能,以满足业务运维的相关需求。

三、相关问题

一、为什么不直接自己做一个UI?

1、Sentinel控制台颜值够高,它的界面本就是为网关设计的

2、笔者前端代码编写能力不强,自己实现一个改CSS都得改得GG

3、后端功能编写比较简单,Sentinel自身后端太过复杂,集成了过多产品,完全可以摒弃后端代码,自己按需求实现,很快就能搞定

4、综合考虑,使用Sentinel的控制台实现起来更容易,做出来的产品更好看

【Zuul2】网关Zuul控制台DashBoard相关推荐

  1. 第九章:路由网关(Zuul)的使用

    2019独角兽企业重金招聘Python工程师标准>>> 第九章:路由网关(Zuul)的使用 前言 介绍完分布式配置中心,结合前面的文章.我们已经有了一个微服务的框架了,可以对外提供a ...

  2. Netflix网关zuul(1.x和2.x)全解析

    zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul可以通过加载动态过滤机制,从而实现以下各项功能: 验证与安全保障: 识别面向各类 ...

  3. SpringBoot版本:1.5.12.RELEASE 文件大小限制异常拦截网关zuul报错

    SpringBoot版本:1.5.12.RELEASE SpringCloud版本:1.4.3.RELEASE 文件上传异常处理代码: @Order(LOWEST_PRECEDENCE)//指定该实体 ...

  4. 带你入门SpringCloud 之 服务网关 Zuul

    前言 服务端提供 RestFul API ,客户端如果想要使用某个服务直接调用服务的API 即可.但是在微服务环境中会有很多的具体服务,而客户端在需要使用众多的服务时在和具体的服务打交道这样虽然可以实 ...

  5. [菜鸟SpringCloud实战入门]第九章:服务网关Zuul体验

    前言 欢迎来到菜鸟SpringCloud实战入门系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud. 本系列适合有一定Java以及Sp ...

  6. 网关 zuul 线程阻塞分析

    网关 zuul 线程阻塞分析 本文基于一个线上真实问题.在 Zuul 无任何安全防护措施时,若遇到较大流量(单个Zuul应用在默认配置下200并发即可),将产生非常严重的后果. 本文主要是探寻下问题产 ...

  7. 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)

    转:https://blog.csdn.net/forezp/article/details/69939114 最新版本: 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)( ...

  8. Hystrix在网关Zuul使用中遇到问题

    Hystrix在网关Zuul使用中遇到问题 Zuul默认隔离策略级别是信号量隔离,默认最大隔离信号量是100 信号量隔离和线程隔离的区别:https://blog.csdn.net/liaojiami ...

  9. SpringCloud 从菜鸟到大牛之七 服务网关 Zuul API网关等等

    话不多说 ,照常理 ,先来一张 整体架构图 服务网关 的要素 常见的网关方案 Nginx +Lua Kong 收费的Kong Tyk(Go语言开发) Spring Cloud Zuul Spring ...

最新文章

  1. java 递归return_java递归和反向递归
  2. python 命令行参数-Python 命令行参数解析
  3. C# UI界面的更新
  4. 手机号段对应地区编码_漫画:“哈夫曼编码” 是什么鬼?
  5. 转:精通JS正则表达式
  6. redisson的锁的类型_厉害了,中间件Redisson原来这么好用!
  7. JAVA中vector是否存在数据_如何找出std :: vector中是否存在项目?
  8. linux中的文件权限drm解释,DRM内核源码分析之三
  9. DevExpress学习笔记之如何获取Repository Item的值
  10. react-hooks原理
  11. DevExpress学习03——label控件的背景色问题
  12. jave se基础复习2
  13. SAPUI5入门到精通5---MVC和数据绑定
  14. 微信小程序 自定义底部导航栏(tabBar)
  15. Linux 复制文件命令
  16. 各国网站域名后缀名大全
  17. c语言日历程序 带农历,一个完整的日历程序(含有农历)
  18. 张宝杰:将IT创造价值进行到底的秘诀
  19. EndNote实现章节后插入参考文献的方法
  20. 自己的JS框架--Amy框架。

热门文章

  1. MICCAI 2023 肝脏病变诊断挑战赛 (奖金丰厚)
  2. Linux动态启用/禁用超线程技术
  3. 微信小程序表单post提交数据
  4. mPaas容器跳到原生页面使用popWindow返回后获取不到返回数据问题分析
  5. 各种鲜榨果汁配方及制作方法
  6. oracle隐式转换能禁用吗,Oracle隐式转换
  7. 中国建议以新储备货币替代美元获联合国支持
  8. 使用HighCharts绘制bar形柱状图
  9. Problem 2 西行寺幽幽子(spring.cpp/c/pas)
  10. 【论文翻译】S4: a High-sparsity, High-performance AI Accelerator