浅聊SpringCloud的网关

56次阅读

共计 708 个字符,预计需要花费 2 分钟才能阅读完成。

本博客 猫叔的博客,转载请申明出处

阅读本文约“4 分钟”

适读人群:Java 初级

为什么要设计网关?

上网搜罗了一下,觉得别人说的挺好,就引用了一下,在使用微服务的时候,不同的功能业务会集成一个服务群,而网关是基于服务群上的一个服务层,也是单独暴露给客户端的 APIs。

客户端对微服务的依赖直接使重构服务变得困难。一种直观的方法是将这些服务隐藏在一个新的服务层后面,并提供针对每个客户端的 APIs。

这个聚合器服务层也称为 API 网关,它是解决这个问题的一种常见方法。

引用下图,原文出处。

SpringCloud 的网关

zuul1.X(阻塞)

  • 架构:

通过 servlet 做处理,并通过多个 Groovy Filter 做链过滤请求

  • 现状:

目前比较少,但是对于实时业务还是可以稳定使用

  • 应用场景:

简单业务,逻辑简单,实时业务,cpu 型业务

  • 使用方式:

引入 maven 包,使用注解的形式,可以在配置文件配置

zuul2.X(非阻塞)

  • 架构:

2.0 引入了 Netty 服务,实现非阻塞与高并发的处理能力

  • 现状:

官方停止维护,非阻塞

  • 应用场景:

大数据、队列类型、高并发、io 型业务

  • 使用方式:

引入 maven 包,使用注解的形式,可以在配置文件配置

Gateway(非阻塞)

  • 架构:

与 zuul2.0 一致,不上图

  • 现状:

SpringCloud 官方维护,因为 zuul2.X 停止维护,所以基于 2.X 的同架构版本

  • 应用场景:

大数据、队列类型、高并发、io 型业务

  • 使用方式:

引入 maven 包,路由注解(route-》path-》filters-》uri)或者以配置的形式

公众号:Java 猫说

学习交流群:728698035

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。

正文完
 0