如何通过Apollo配置中心与Zuul实现vue动态路由怎么实现

本文起笔于周二,接了一个这周要完成的开发任务,需要先等其他人的接口,可能更新的会慢一些,还望大家见谅。这篇博客我们主要讲Spring Cloud Zuul。项目地址:

Spring Cloud Zuul大家可以理解为一个集网关(路由)、负载均衡、校验过滤、结合服务治理框架、请求转发时熔断机制、服务聚合等 一系列功能。我们可以将Zuul当成一个门面,所有外部请求都经过Zuul的转发到具体的服务实例,减少了每个服务之间互相鉴权代码冗余问题,统一交给Zuul进行鉴权,在此基础上集成上边说的高级功能。路由功能相当于反向代理。

//使用Zuul来过滤这次请求 ("请求通过过滤器");

注意:这里除了在类头上打上@Component注解外,还可以使用@Bean注入的办法

快速入门这一块就到这里,总结一下:

  • 它作为系统的统一入口,屏蔽了系统内部各个微服务的细节
  • 可以和服务治理框架结合,实现自动化服务实例维护和负载均衡
  • 实现接口权限校验与微服务业务逻辑的解耦
  • 通过网关中的过滤器,在各生命周期中去校验请求的内容,将原本在对外的服务层做的校验前移,保证微服务的无状态性,降低测试难度,解放程序员专注业务的处理

这样就会将请求到/second端点的请求转发到/first端点

上文有讲过,Zuul中包含了Hystrix和Ribbon的依赖,所以Zuul拥有线程隔离和断路器的自我保护功能,以及对服务调用的客户端负载均衡,需要注意的是传统路由也就是使用path与url映射关系来配置路由规则的时候,对于路由转发的请求不会使用HystrixCommand来包装,所以没有线程隔离和断路器的保护,并且也不会有负载均衡的能力。所以我们在使用Zuul的时候推荐使用path与serviceId的组合来进行配置。

@ComponentScan("blogs.hellxz的包,这里有这个包是因为如果你没有包用来包扫描,会报一个错误,如下图。

这里为了提github代码的时候不会将这个空目录忽略掉,加了一个只有包路径的一个类

分别启动注册中心、服务提供者、ConfigServer还有刚刚创建的动态路由项目

启动动态路由项目的过程中会看到控制台打印了如下图

博客园的图片无法看大图,想看大图可以复制这个图片的地址放到地址栏访问查看

也就是说,我们为service路径匹配到了服务提供者项目中,我们在这里使用postman访问一下

这里省去了动态过滤器的实现,因为用到groovy,本人能力有限,有兴趣了解这一块的请看书查验

这篇文章处在一个很尴尬的时间里,正如开头说的是开始于6.26日,一个是最近工作忙,一个是有些代码没有测试成功就没有提github上,然后回去只能干看着,重新写还浪费时间……然后今天抽空毅然决然的把这篇文章发了出来,看到之前几篇文章最近的阅读数不少,我心甚慰,如果你有更好的想法和建议,欢迎大家评论拍砖。

最后感谢一下《Spring Cloud微服务实战》的作者 程序员DD 翟永超 老师,书写的不错,Spring Cloud坑本来就不少,这种情况下还能将这些概念说的比较清晰,实属不易。

我要回帖

更多关于 vue动态路由怎么实现 的文章

 

随机推荐