背景:
老项目改造,前端地址url不变,通过zuul转发到不同服务上请求。由于之前项目请求路径的命名格式是驼峰式的,而zuul中service-id是用“-”进行分隔的命名方式,使用默认配置是无法将原有url地址通过zuul转发到微服务上去的。
解决方案:
1、使用静态路由配置的方式,在yml配置文件中将原请求路径前缀和service-id进行对应
2、实现zuulfilter,将url进行转发
比较:首先两种方式都能实现需求,但是我们的目标不仅仅是实现需求,我们的目标是如何更优雅的实现需求。
两种方案对比:
方案1在服务不是很多且不会增加的情况下,这样配置其实也是可以的,但是实际工作中,服务肯定不会是固定的,随着业务的发展,肯定还会增加新的服务,由此可见这种方式扩展性不够好,并且配置文件穷举配置似乎显得很low。
废话不多说,直接上代码!!!
# application.yml
zuul:
routes:
# 随便起,反正目标是要拦截所有请求
all:
path=/**
@Component
public class