当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

ws-cloud-gateway

轻量级网关服务
授权协议 Apache
开发语言 Lua
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 庞修贤
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

基于 openresty + etcd 实现的轻量级网关服务。

目前市面上已经有很多网关组件,ws-cloud-gateway 的定位是比更加轻量,只保留在实践中经常使用到的组件,同时可以自定义插件,针对不用业务,定制化个性功能。

项目中参考了 incubator-apisix,同时有部分代码直接引用了 apisix 源码。

为什么选择 ws-cloud-gateway

  1. 高性能:底层使用 nginx 异步事件驱动的网络通信模型

  2. 轻量、灵活:将多个微服务组件整合到一起,对服务器开销小(节省服务器成本),适合初创业务,同时后期业务规模扩大后也容易调整

  3. 上手简单学习曲线低,支持自定义插件,可灵活定制个性化功能

  4. 上游服务节点使用 etcd 管理,可以通过推模式更新节点配置

  5. 无需重启服务,可实时修改参数配置

  6. 支持控制面板管理

架构

服务启动时,将自己的节点信息注册到 etcd,包括:服务名称、ip、端口

网关服务从 etcd 监听服务节点信息,保存到缓存中,从客户端请求的 url 中提取服务名称,通过服务名称查找节点信息,将请求转发到后端服务

todo

  • [x] 服务发现,动态路由

  • [x] 自动生成 requestId,方便链路跟踪

  • [x] 控制面板

  • [ ] gRPC 代理

  • [ ] 动态ip防火墙

  • [ ] 限流器

  • [ ] 用户登录认证

  • [ ] 接口协议加解密

  • [ ] 统一配置管理

控制面板

鸣谢

  • 1. 引入pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 2. 配置文件 2.1 配置eureka,application等信息 server: port: 300

  • 转自:https://blog.csdn.net/qq_43253123/article/details/83311557 在Spring-Cloud-Gateway初始化时我们在GatewayAutoConfiguration配置中看到了有初始化加载GatewayProperties实例的配置,接下来学习下GatewayProperties都加载了哪些信息。 GatewayAutoConfigu

  • nginx代理配置: http { map $http_upgrade $connection_upgrade { //这个很重要,如果不配置,前是wss(https)时,浏览器会提示https安全问题 default upgrade; '' close; } server { ...

  • 原文网址:Spring Cloud Gateway--配置路由的方法_IT利刃出鞘的博客-CSDN博客 简介 说明         本文介绍Spring Cloud Gateway配置路由的方法。 路由概述         路由是网关配置的基本组成模块,和Zuul的路由配置模块类似。一个Route模块由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配,目标URI会被

  • spring-cloud-gateway负载普通web项目 对于普通的web项目,也是可以通过spring-cloud-gateway进行负载的,只是无法通过服务发现。 背景 不知道各位道友有没有使用过帆软,帆软是国内一款报表工具,这里不做过多介绍。 它是通过war包部署到tomcat,默认是单台服务。如果想做集群,需要配置cluster.xml,帆软会将当前节点的请求转发给主节点(一段时间内)。

  • 前面我们简单的介绍了Spring Cloud Gateway的使用和原理,以及SpringCloud Gateway的三大组件:路由、断言和过滤器。而路由则是由一个ID、一个目的URL、一组断言工厂和一组Filter过滤器组成。本篇博客主要介绍路由的配置,ID表示一个路由的唯一标识,URL为要转发的地址,这两个比较简单。复杂的就是断言和过滤器的配置。 首先我们介绍断言的配置,Spring Clou

  • 1.引入pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 2.application.yml 配置文件 spring: profiles:

 相关资料
  • 本文向大家介绍spring cloud gateway整合sentinel实现网关限流,包括了spring cloud gateway整合sentinel实现网关限流的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了spring cloud gateway整合sentinel实现网关限流,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 说

  • 本文向大家介绍详解Spring Cloud Zuul 服务网关,包括了详解Spring Cloud Zuul 服务网关的使用技巧和注意事项,需要的朋友参考一下 有了Eureka服务注册发现、Hystrix断路器、Ribbon服务调用负载均衡,以及spring cloud config 集群配置中心,似乎一个微服务框架已五脏俱全,last but not least,一个服务网关却不可或缺。 Spr

  • AWS Storage Gateway提供内部部署IT环境与AWS存储基础架构之间的集成。 用户可以将数据存储在AWS云中,以实现可扩展的数据安全功能和经济高效的存储。 AWS Gateway提供两种类型的存储,即基于卷和基于磁带。 卷网关 此存储类型提供云支持的存储卷,可以从本地应用程序服务器安装为Internet小型计算机系统接口(iSCSI)设备。 Gateway-cached Volume

  • 我试图调试我的应用程序,但调试器没有击中此代码块。这是我的自定义网关过滤器。 下面是这个过滤器的配置 当尝试发送请求时,此endpoint不会启动调试器或将日志打印到控制台。我在这里错过了什么。谢谢你。 如果我在主应用程序中创建AuthorizationHeaderFilter的bean,如下所示 应用程序在启动时引发此错误 我还为云api网关设置了日志级别来调试,下面是日志

  • 主要内容:API 网关,Spring Cloud Gateway ,Gateway 的工作流程,Predicate 断言,Spring Cloud Gateway 动态路由,Filter 过滤器在微服务架构中,一个系统往往由多个微服务组成,而这些服务可能部署在不同机房、不同地区、不同域名下。这种情况下,客户端(例如浏览器、手机、软件工具等)想要直接请求这些服务,就需要知道它们具体的地址信息,例如 IP 地址、端口号等。 这种客户端直接请求服务的方式存在以下问题: 当服务数量众多时,客户端需要维护