• 服务网关Gateway_微服务中的应用


    image-20220215101103844

    没有服务网关

    image-20220224162126668

    问题:

    1. 地址太多
    2. 安全性
    3. 管理问题

    为什么要使用服务网关

    网关是微服务架构中不可或缺的部分。使用网关后,客户端和微服务之间的网络结构如下。

    image-20220223211428943

    注意:

    网关统一向外部系统(如访问者、服务)提供REST API。在SpringCloud 中,使用Zuul、Spring Cloud Gateway等作为API Gateway来实现动态路由、监控、回退、安全等功能。

    认识Spring Cloud Gateway

    Spring Cloud Gateway 是 Spring Cloud生态系统中的网关,它是基于Spring 5.0、SpringBoot 2.0和Project Reactor等技术开发的,旨在为微服务架构提供一种简单有效的、统一的API路由管理方式,并为微服务架构提供安全、监控、指标和弹性等功能。其目标是替代Zuul。

    image-20220220160843847

    注意:

    Spring Cloud Gateway 用"Netty + Webflux"实现,不要加入Web依赖,否则会报错,它需要加入Webflux依赖。

    什么是WebFlux

    Webflux模式替换了旧的Servlet线程模型。用少量的线程处理request和response io操作,这些线程称为Loop线程,而业务交给响应式编程框架处理,响应式编程是非常灵活的,用户可以将业务中阻塞的操作提交到响应式框架的work线程中执行,而不阻塞的操作依然可以在Loop线程中进行处理,大大提高了Loop线程的利用率。

    image-20220223212244204

    注意:

    Webflux虽然可以兼容多个底层的通信框架,但是一般情况下,底层使用的还是Netty,毕竟,Netty是目前业界认可的最高性能的通信框架。而Webflux的Loop线程,正好就是著名的Reactor模式IO处理模型的Reactor线程,如果使用的是高性能的通信框架Netty。

    温馨提示:

    什么是Netty,Netty 是一个基于NIO的客户、服务器端的编程框架。提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

    Spring Cloud Gateway特点

    • 易于编写谓词( Predicates )和过滤器( Filters ) 。其Predicates和Filters可作用于特定路由。
    • 支持路径重写。
    • 支持动态路由。
    • 集成了Spring Cloud DiscoveryClient。
  • 相关阅读:
    那些编程中遇到的常见英文缩写
    马斯洛需求层次模型之安全需求之云安全浅谈
    C++之运算符重载的简明了解其原理
    算法分析与设计——要求根据给定的正整数n计算第n个斐波那契数。
    【Rust】function和methed的区别
    数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
    像追女神一样学好java~
    关于 Node.js 参数 max-old-space-size
    在 Kubernetes 环境中实现证书管理的自动化
    Mysql的执行日志
  • 原文地址:https://blog.csdn.net/weixin_68967484/article/details/133364043