草庐IT

grpc-gateway

全部标签

【RuoYi-Cloud-Plus】学习笔记 05 - Spring Cloud Gateway(一)关于配置文件参数

文章目录前言参考目录文档书籍1、Gateway框架配置2、Gateway执行过程3、Gateway执行原理4、框架配置参数整理分析4.1、开启注册中心服务发现集成4.2、小写服务ID4.3、负载均衡`lb`4.4、Path路由断言4.5、前缀网关过滤器前言关于SpringCloud,需要学习的知识点非常多,本篇是学习SpringCloudGateway(以下简称为Gateway)时一些知识点的汇总,主要围绕着配置文件ruoyi-gateway.yml展开。参考目录文档SpringCloudGateway官方文档若依文档-服务网关书籍SpringCloud微服务和分布式系统实战第9章新网关——S

限流算法,基于go的gRPC 实现的

目录一、单机限流1、令牌桶算法3、固定窗口限流算法4、滑动窗口二、集群限流1、分布式固定窗口(基于redis)2、分布式滑动窗口一、单机限流1、令牌桶算法令牌桶算法是当流量进入系统前需要获取令牌,没有令牌那么就要进行限流这个算法是怎么实现的呢定义一个后台协程按照一定的频率去产生token后台协程产生的token放到固定大小容器里面有流量进入系统尝试拿到token,没有token就需要限流了typeTokenBucketLimiterstruct{ tokenchanstruct{} stop chanstruct{}}​funcNewTokenBucket(capactityint,timeI

GRPC(HTTP/2)是否比使用HTTP/2的休息更快?

目的是引入运输和应用层协议,该协议更好潜伏和网络吞吐量。目前,应用程序使用休息和http/1.1而且我们经历了很高的潜伏期。我需要解决这个延迟问题,我愿意使用GRPC(HTTP/2)或者REST/HTTP2.http/2:多路复用单个TCP连接二进制而不是文字标题压缩服务器推我知道上述所有优势。问题1:如果我使用与http/2一起休息,我敢肯定,与与HTTP/1.1休息,但是这与GRPC(HTTP/2)?我也知道GRPC使用了原始缓冲区,这是最好的二进制序列化电线上结构化数据传输的技术。原始缓冲区还有助于开发一种语言不可知论方法。我同意这一点,可以在使用GraphQL的REST中实现相同的功能

介绍HTTP错误码504 Gateway Timeout

介绍HTTP错误码504GatewayTimeout什么是HTTP错误码504?HTTP错误码504表示网关超时,它是一种服务器端错误响应状态码。当客户端向服务器发送请求时,如果服务器在一定时间内无法从上游服务器(例如应用程序服务器、数据库服务器)获取到响应,就会返回504错误码给客户端。为什么会出现504错误?504错误通常是由一些因素导致的,包括但不限于以下情况:上游服务器响应超时:如果上游服务器处理请求的时间超过了服务器设置的超时时间,那么服务器就会返回504错误码。网络连接问题:如果服务器无法与上游服务器建立稳定的网络连接,那么也会导致504错误的发生。504错误对网站和用户的影响对网

gateway转发websocket显示403(Forbidden) 已解决

 因业务调整,需要在gateway中添加websocket的转发地址(PS:网上目前没有关于这个错误解决),原来的配置如下代码可见,我在cors‐configurations配置了跨域信息,拦截所有请求,下面配置了websocket的路由规则。代码如下spring:application:name:api-gateway-servercloud:#网关配置gateway:globalcors:add-to-simple-url-handler-mapping:truecors‐configurations:'[/**]':#匹配请求#allowedOrigins:"*"allowedOrigi

Spring Cloud Gateway 过滤器详解

一、概述SpringCloudGateway根据作用范围划分为:GatewayFilter和GlobalFilter1、filter的作用和生命周期由filter工作流程点,可以知道filter有着非常重要的作用,在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等作用网关过滤器用于拦截并链式处理Web请求,可以实现横切与应用无关的需求,比如:鉴权、限流、日志输出等生命周期SpringCloudGateway同zuul类似,有“pre”和“post”两种方式的filter。客户端的请求

Spring Gateway基础知识总结

本文主要总结SpringGateway的基础用法,内容包括网关、SpringGateway工作流程、SpringCloudGateway搭建、路由配置方式、负载均衡实现、断言工厂这几个部分目录1.网关1.1网关介绍1.2网关对比1.3SpringGateway1.4核心概念1.6总结2.SpringGateway工作流程2.1官网上的核心工作流程核心流程:核心点:2.2SpringGateway执行流程总结3.SpringCloudGateway搭建3.1Gateway搭建3.2总结4.Gateway路由配置方式4.1GatewayConfig4.2通过yml文件配置5.Gateway实现负载

一文搞懂Go gRPC服务Handler单元测试

在云原生时代和微服务架构背景下,HTTP和RPC协议成为服务间通信和与客户端交互的两种主要方式。对于Go语言而言,标准库提供了net/http/httptest包,为开发人员提供了便捷的方式来构建服务端HTTPHandler单元测试的测试脚手架代码,而无需真正建立HTTP服务器,让开发人员可以聚焦于对Handler业务逻辑的测试。比如下面这个示例:// grpc-test-examples/httptest/http_handler_test.gofunc myHandler(w http.ResponseWriter, r *http.Request) {    // 设置响应头    w.

解决gateway使用nacos重启报503 Service Unavailable问题

问题描述项目使用springcloudgateway作为网关,nacos作为微服务注册中心,项目搭建好后正常访问都没问题,但是有个很烦人的小瑕疵:当某个微服务重启后,通过网关调用这个服务时有时会出现503ServiceUnavailable(服务不可用)的错误,但过了一会儿又可以访问了,这个等待时间有时很长有时很短,甚至有时候还不会出现导致每次重启某个项目都要顺便启动gateway项目才能保证立即可以访问,时间长了感觉好累,想彻底研究下为什么,并彻底解决接下来介绍我在解决整个过程的思路,如果没兴趣,可以直接跳到最后的最终解决方案gateway感知其它服务上下线首先在某个微服务上下线时,gate

Spring Gateway + Oauth2 + Jwt网关统一鉴权

之前文章里说过,分布式系统的鉴权有两种方式,一是在网关进行统一的鉴权操作,二是在各个微服务里单独鉴权。第二种方式比较常见,代码网上也是很多。今天主要是说第一种方式。1.网关鉴权的流程重要前提:需要收集各个接口的uri路径和所需权限列表的对应关系,并存入缓存。2.收集uri路径和对应权限服务启动的时候,执行缓存数据的初始化操作:扫描服务内的所有controller接口方法,利用反射,获取方法的完整uri路径,方法上指定注解中的权限值,再存入Redis缓存。服务启动时做一些操作,方法有很多,可以继承CommandLineRunner或者其他方式。不熟悉的可以去查一下有关资料。因为后续可能会有很多微