微服务网关Zuul在EDAS环境的实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介:

问题起因

最近参与的一个项目,客户基于EDAS开发的微服务应用,应用间提供的都是Restful接口。

总所周知,EDAS是基于内部HSF接口的分布式服务框架,HSF的特点是服务调用者和服务提供者直接连接,不经过网关层转发,HSF接口无需引入网关层,EDAS会承担服务注册与服务发现功能,服务调用时由HSF-Client根据从configserver推送过来的服务提供方ip,直接发起调用。

但是后端的微服务应用提供Restful接口的话,不可能把每一个微服务所提供的Restful接口都直接暴露给前端应用,这样的话,前端应用需要知道每个微服务的vip、端口、请求path,这么做并不友好。这里需要引入一个网关层,前端应用发起请求到网关,由网关根据请求url智能转发到后端不同的微服务应用处理。

调研过程

调研了相关的产品,有几个备选方案:
1)Nginx:通过配置upstream来实现请求转发;
2)CSB:云服务总线
3)Zuul:Springcloud的网关产品,但是不确定是否能适配EDAS环境

调研后发现:
1)Nginx,虽然可以通过配置upstream来实现请求转发,但是需要人工介入,每当上线或者调整微服务应用接口时,都需要手工修改配置文件,非常繁琐。
2)CSB:云服务总线CSB主要功能有两点,1是实现跨域的级联调用。2是协议转换。CSB并不支持路由转发。
3)Zuul:基于Springcloud体系的网关产品,非常符合客户想要的智能路由转发的功能,但是是否能适配EDAS是不确定的,翻了下官网EDAS的文档,也只提到了仅支持Springcloud的eureka服务注册功能,并没有涉及到Zuul。

检验

为了检验Zuul是否可以在EDAS环境正常使用,写了个Demo做了试验:
1)pom文件里引入Zuul,同时需要把springcloud原生的eureka包换成EDAS提供的vipclient包。
image.png

2)application.xml配置文件里加入Zuul转发规则:
image.png

3)启动后可以正常注册到EDAS轻量注册中心:
image.png

4)访问页面,能够实现智能转发:
image.png

结论

至此,经过验证后,发现Zuul网关是可以在EDAS环境里正常使用的。

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
目录
相关文章
|
4天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
27 2
|
4天前
|
API 微服务
Traefik 微服务 API 网关教程(全)
Traefik 微服务 API 网关教程(全)
|
18天前
|
负载均衡 Java 网络架构
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
36 5
|
21天前
|
测试技术 微服务
微服务(八)-服务网关zuul(四)
微服务(八)-服务网关zuul(四)
|
21天前
|
监控 前端开发 Java
微服务(七)-服务网关zuul(三)
微服务(七)-服务网关zuul(三)
|
21天前
|
负载均衡 前端开发 安全
微服务(六)-服务网关zuul(二)
微服务(六)-服务网关zuul(二)
|
10月前
|
监控 应用服务中间件
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
107 2
|
Kubernetes 负载均衡 Serverless
通过EDAS部署并访问应用
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,掌握微服务应用的部署和访问。
392 1
|
Kubernetes Serverless 应用服务中间件
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,体验微服务应用的部署、访问和高级发布能力。
307 0
|
弹性计算 Kubernetes Cloud Native
云原生微服务应用平台 EDAS 2022 年度报告
最近一年来,随着我们的客户对于云技术的诉求从资源快速交付的服务,转变为对资源精益运用的服务。EDAS 团队结合公共云上所服务的企业类客户的几万个应用,选取了 8 个最具代表性的指标,进行了一次系统性的分析整理和总结,希望可以给当前正在从事软件架构的从业人员一个侧面的视角,来了解一些当下发生在身边的技术现象。
397 1
云原生微服务应用平台 EDAS 2022 年度报告