随笔分类 - bulid api gateway
摘要:现在ai盛行,各家api gateway 纷纷实现了ai gateway 的功能,作为强大的卖点 2025 年个人用c#造了个api gateway的轮子VKProxy,现在各项功能或扩展能力齐备,性能也不差,个人时间精力也有限,ai gateway 就搞个简单的 demo 做为此轮子篇章的结尾吧
阅读全文
摘要:OpenTelemetry OpenTelemetry 是各类 API、SDK 和工具形成的集合。可用于插桩、生成、采集和导出遥测数据(链路、指标和日志),帮助你分析软件的性能和行为。 VKProxy 已集成OpenTelemetry,所以现在可以非常简单采集和导出遥测数据(链路、指标和日志)。 简
阅读全文
摘要:其实原本是打算OpenTelemetry对应内容搞好后再做个简单的性能测试,也算表明自己写(抄)代码的能力(不至于用了反射什么的就把Kestrel这么好的底子的性能拖垮了) 但是最近看见一篇go的文章 报告揭示 OpenTelemetry 对 Go 的性能影响,说OpenTelemetry 拖慢了
阅读全文
摘要:VKProxy 目前新添加了如下功能 会话亲和性 禁止http 静态内容 简单的waf VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理(感兴趣的同学烦请点个github小赞赞呢) 会话亲和性 会话亲和性是一种机制,用于将有因果关系的请求序列绑定到在多个目标之间均衡负载时
阅读全文
摘要:http流量镜像 “流量镜像”是指将网络中的数据流量复制一份,并将这份复制流量发送到另一个目的地(如监控、分析或安全检测系统)。这项技术常用于网络安全、故障排查、业务灰度发布等场景。 主要应用场景 安全监控与威胁检测 将生产环境的流量镜像到安全分析设备(如IDS/IPS),用于实时监控和威胁检测。
阅读全文
摘要:VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理(感兴趣的同学烦请点个github小赞赞呢) 目前新添加了如下功能 http响应缓存 Memory Disk Redis CORS设置 log 配置随机概率采样 A/B 测试和滚动升级 http响应缓存 响应缓存可减少客户端
阅读全文
摘要:VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理(感兴趣的同学烦请点个github小赞赞呢) 目前新添加了速率限制(限流)功能 什么是速率限制? 速率限制是限制可以访问的资源量的概念。 例如,你可能知道应用访问的数据库每分钟可以安全地处理 1,000 个请求,但它可能处理
阅读全文
摘要:VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理 经过6个月业余时间偶尔缝缝补补,已经达到能跑的地步了 (感兴趣的同学烦请点个github小赞赞呢) 相关使用写了一些简单的文档说明 安装 通过UI站点配置 不同监听场景如何配置 如何为HTTP配置路由复杂匹配 如何为HTT
阅读全文
摘要:VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理 有兴趣的同学点个赞呗 目前已经在写文档了, 文档在 https://fs7744.github.io/VKProxy.Doc/docs/introduction.html (未完成全部) UI配置站点也在开发ing了,会基
阅读全文
摘要:有盆友好奇所谓的网络穿透是怎么做的 然后talk is cheap,please show code 所以只好写个简单且常见的websocket例子, 这里的例子大致是这个原理 浏览器插件(或者其他)首先将正常访问请求 --> 转换为socks5访问 --> 假代理服务器建立websocket链接,
阅读全文
摘要:前言 之前做了个轮子NZOrz, 本来打算慢慢参照Kestrel和Yarp长久地写着玩 奈何川普上台,关税,订婚案,自身和钱包等等各种乐子层出不穷,无暇慢悠悠地写轮子玩 还有有些盆友也想知道能否直接使用 Kestrel 来实现L4的处理, 所以为了2025年轻松一些,重新基于 Kestrel 实现了
阅读全文
摘要:由于之前借鉴 Kestrel 了非常多抽象和优化实现,对于后续的扩展非常便利, 实现 简单udp和sni 代理 两个功能比预期快了超多(当然也有偷懒因素) (PS 大家有空的话,能否在 GitHub https://github.com/fs7744/NZOrz 点个 star 呢?毕竟借鉴代码也不
阅读全文
摘要:24年终自己立了flag: 25年做些轮子玩(用于浪费生命,赚不了钱) 所以25年就准备用c#写一个网络代理NZOrz(nginx知道吧,就那玩意儿干的事),包含 udp/tcp/http1 2 3, 至于为啥不用rust写,主要由于某台电脑某些不可告知的原因不方便安装rust,所以等我写完c#的,
阅读全文
摘要:openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如C、C++和Rust等低级源语言提供一个高效的编译目标。 对于网络平台而言,这具有巨大的意义——这为客户端ap
阅读全文
摘要:如何给openresty打patch 由于很多功能实现的限制,我们不得不修改openresty,但我们又不一定能持续维护一个 openresty 分支,所有有了patch 这一操作。 patch是怎么补“漏洞”的? patch 中文含义为补丁,给大家的感觉就像在原来的基础上修复漏洞,就像小时候旧衣服
阅读全文
摘要:动态插件 之前已经拆解细点逐个介绍了 tcp 、http 代理相关核心点,现在介绍一个让 api gateway 变得很灵活的功能实现: 动态插件。 由于 lua 的动态语言特点,我们可以比较方便做到动态插件机制。 首先我们来了解这一切的基石:lua 模块加载机制。 lua 模块加载机制 一个模块是
阅读全文
摘要:配置中心 在之前 tcp的yaml配置 介绍了如何监听yaml文件变化然后更新配置。 当然假如我们有很多实例,那么yaml改动将是非常痛苦的事情,那么如何做到配置文件统一管理,实时更新呢? 我们可以引入配置中心,从而达到这样的效果。 业界已经有非常多配置中心了,这里为了简化内容,将选用etcd作为配
阅读全文
摘要:Healthcheck 由于服务无法保证永远不会下线,而且下线时不一定能有人员能及时发现, 所以api gateway 一般会引入一个监工 Healthcheck, 像大家每年体检一样定时确认服务是否存活。 这样就可以在上游节点发生故障或者迁移时,将请求代理到健康的节点上,最大程度避免服务不可用的问
阅读全文
摘要:什么是负载均衡 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行 以下为几种负载均衡策略介绍 1.随机(Random) 大家很多时候说到随机的负载均衡都会想到 Round Robin, 其实 Round Robin并非随机, Rand
阅读全文
摘要:http路由 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。 而这里的http路由其实等同于web开发中,根据http相关参数(比如url、http method)分配到对应的处理程序。 借用web框架的示意图,其作用如下 路由匹配 这里我们先简化一下内
阅读全文

浙公网安备 33010602011771号