spacewander

627
获赞数
3
关注数
1496
粉丝数
IP 属地广东
2013-11-27 加入
浏览 33.2k

make building blocks that people can understand and use easily, and people will work together to solve the very largest problems.

5,593 声望|大师
全站排名超越 99.8% 用户
shell
694
linux
549
python
470
bash
460
c
433
个人动态
  • 发布了文章5 月 11 日
    简单讨论下推理请求调度架构
    在当今复杂多变的技术领域,任何足够复杂的推理业务,都必然要紧密结合推理引擎行为,精心设计出高效的调度系统。原因主要有以下三点:其一,复杂推理服务本质上是分布式的;其二,分布式系统处理请求时,调度不可或缺,若缺乏精细调度,各节点工作负载将不均衡;其...
  • 发布了文章1 月 26 日
    Envoy Golang Filter 实践:挑战与应对之道
    有经验的程序员都知道,技术选型是一个 trade-off 的过程。当你选择玫瑰时,小心花朵下面的尖刺。进一步想,如果我们早已知晓鲜花底下的不怀好意的锋芒,就能在摘花时借助剪刀,避免赤手空拳地冒险。这也是本文的主题:应用 Envoy Golang filter 过程中的挑战以及如...
  • 发布了文章2024-12-16
    AI 网关:谈谈 envoyproxy/ai-gateway 和 llm-instance-gateway
    正好我也是做 AI 网关的业内人士,看到同类项目自然会拿来仔细分析一番。三人行必有我师,从别人的思路总是可以学到不少东西。需要注意的是,这两个项目都还处于非常早期的阶段,有可能在将来出现 180° 的变化,因此我这里的分析只能反映当前的状态,不代表后期演进...
  • 发布了文章2024-11-10
    最近看了几篇关于网关和PD分离的论文,分享下个人想法
    PD分离的效果很大程度上受限于kvcache的传输的代价(kvcache是以GB为单位的,跑RDMA也需要100毫秒级的时间)。而kvcache主要是P产生的。
  • 发布了文章2024-10-27
    在 OpenResty 里实现异步的流式代理
    七层代理经常会有需要承接流式业务的需求,比如通过 SSE 来代理推理服务返回的结果。有些时候,我们还需要在流式处理过程中进行异步操作,比如访问其他服务来丰富原来的输入输出。
  • 发布了文章2024-10-27
    浅谈 istio 配置下发(下篇,istio 处理来自 k8s 的配置)
    istio 不仅支持从 k8s 中获取配置,还支持通过 MCP over XDS 从实现了 MCP 协议的服务器中获取配置,抑或从文件中直接获取数据。在实践中,没听说过有哪些项目通过文件的方式来提供 istio 配置,所以这里不谈。MCP 实际上就只是把 istio 资源装进 MCP 这个箱子里,然...
  • 发布了文章2024-09-07
    浅谈 istio 配置下发(上篇,istio 和 Envoy 交互部分)
    在定下本文的标题之前,我推敲了几遍。最终决定以“浅谈”开头,是因为本文将专注于 istio 下发配置给 Envoy 的功能,尤其是关注 Ingress 场景的配置下发(NodeType 为 Router),不祈求涉及 ztunnel、grpc 等边边角角。
  • 发布了文章2024-08-31
    pingora 能做什么和不能做什么
    最近把 pingora 的代码略略过了下,稍微弄懂了 pingora 这个项目的大致情况。Pingora 作为 Cloudflare 内部开发来替代 OpenResty 的项目,可以看到不少 Nginx 的影子。比如 Pingora 的插件叫 Module,对应插件顺序叫 module_index,和 Nginx 一模一样。有趣的是还有...
  • 发布了文章2024-08-17
    真实世界里的 go work 体验
    早在 1.18 版本,Go 就引入了 workspace 功能来改善多 module 开发的体验。网上关于 workspace 功能的介绍大多局限于玩具项目内的开发,并无多少实际的案例。正巧 mosn/htnn 这个项目就深度依赖 workspace 功能,而且它也足够复杂,可以拿来说明真实世界里面的 go wo...
  • 发布了文章2024-07-07
    在 Envoy 中规避 LDS drain 的奇技淫巧
    本文是“Envoy 哪里做得不够好”系列的第三篇。前文提要:为何 Envoy 会经常全量推送路由变更,以及如何改善(上)为何 Envoy 会经常全量推送路由变更,以及如何改善(下)Envoy 支持通过 Listener 资源动态调整监听配置和设置四层策略。但和直觉不同,对 Listener 资...
  • 发布了文章2024-06-18
    为什么选择 HTNN 这款网络产品?
    推广一个开源项目其实就是推广一种理念。几年前 APISIX 在推广时,主打的是更好的性能。HTNN 主打的也是“快”,但不仅仅是数据面执行性能之快,更主要的是研发效率之快。无论是什么时候,又快又好地推出新功能都是研发人员的刚需。HTNN 的各项功能,都围绕着提升开发...
  • 发布了文章2024-06-16
    为何 Envoy 会经常全量推送路由变更,以及如何改善(下)
    上篇文章的结尾,我提到了 “Envoy 社区并非对此毫无察觉。针对这个问题,不少解法被提了出来”。其中一个解法是 VHDS(Virtual Host Discovery Service)。
  • 发布了文章2024-05-26
    为何 Envoy 会经常全量推送路由变更,以及如何改善(上)
    之前和读者聊到,“现在envoy用来做七层网关,要想达到好用,就差几个关键技术点没解决”:[链接]。于是我决定开一个系列,不定期更新,写写 Envoy 目前还做得不够好的地方。
  • 发布了文章2024-05-04
    预测未来一两年内七层代理的发展趋势
    预测未来最安全的做法是不要给预言加个限期。只要不停鼓吹“会有一个光明的明天”,“明日复明日,明日何其多”,到底哪一天才是光明的明天,那就要等那一天到来之际的事后诸葛亮了。所谓说,“不走的钟一天也会准两次”,为了表明我不是撞大运的不走钟,我决定给这篇文章...
  • 发布了文章2024-04-14
    狸猫换太子:聊聊那些藏在 Go interface 方法调用里的坑
    对 interface 的使用想必是一件简单到自然的事。定义一组方法描述特定的行为,然后在某个类上实现这组方法。如此一来,这个类就能作为某些函数的输入或输出参数,而外界无从知晓用作参数的实际的类到底是怎么实现的。interface 带来的“隐藏性”,可以让它的使用者和实...
  • 发布了文章2024-02-06
    为什么 Tetrate 逐渐成为 Envoy Gateway 的主心骨?
    Envoy Gateway 的发起 是 2022 年网络领域的一件大事。扛着 Envoy 这面大旗,Envoy Gateway 奉天子以令不臣,任何基于 Envoy 的网关都不得不回答一个问题:“你和 Envoy Gateway 是什么关系”。比如:
  • 发布了文章2023-06-24
    你的Go应用真的用了正确的 CPU 核数吗?
    Go 的调度模型是 GMP,其中 G 是 goroutine,M 是线程,P 是可用的 CPU 核数。多个 G 会共用一个 M。M 作为操作系统层面上的调度单位,在执行时需要绑定到 P。如果操作系统认为的某个 Go 进程可用的 CPU 数,和该进程认为的可用的 CPU 数不一致,那么即使把 M 绑定到...
  • 发布了文章2023-02-27
    ebpf 月报 - 2023 年 2 月
    本刊物旨在为中文用户提供及时、深入、有态度的 ebpf 资讯。如果你吃了鸡蛋觉得好吃,还想认识下蛋的母鸡,欢迎关注:笔者的 twitter:[链接]bpftrace 发布 0.17.0 版本[链接]时隔数月,bpftrace 发布了新版本 0.17.0。这个版本,允许直接比较整数数组,还新增了对以...
  • 发布了文章2023-02-12
    漫谈负载均衡算法
    负载均衡是个大话题,我们可以谈谈:slow start 给新加入的节点分配较低权重,避免过载priority 不同的可用区(AZ)有不同的优先级,非当前可用区的节点只有在当前可用区节点不可用时才作为备份加入subset 分组负载均衡,会先通过负载均衡算法选择一个组,再通过负载...
  • 发布了文章2023-01-29
    化虹为桥 - Nginx 如何代理 UDP “连接”
    众所周知,UDP 并不像 TCP 那样是基于连接的。但有些时候,我们需要往一个固定的地址发送多个 UDP 来完成一个 UDP 请求。为了保证服务端能够知道这几个 UDP 包构成同一个会话,我们需要在发送 UDP 包时绑定某个端口,这样当网络栈通过五元组(协议、客户端IP、客户端...