当前位置: 首页 > news >正文

服务热升级的方法

皮鞋👞老板遇到的热升级实现问题很有趣,这个问题早在我在腾讯做 cc 模块升级期间就频繁涉及,昨晚写了一版 reuseport 约束的,因为这个 reuseport 如今成了热升级的标准利器(无奈内核模块没有 reuseport 类似的东西,只能 sleep 10)。

但为了展示效果,又写了一个纯 demo,与 ebpf 无关,只显示算法逻辑:https://github.com/marywangran/ebpf-reuseport-smooth-upgrade 的 test 目录
但貌似有 bug …

下图为原理:
在这里插入图片描述

下面显示了效果,我故意放大了时间尺度好截图,所以运行有点慢:
在这里插入图片描述
在这里插入图片描述

吐槽时间。

Linux 内核的 reuseport ebpf 接口非常不友好,它那个默认的 “用最后一个 item 填洞” 的逻辑无法自定义,所以就必须在外部适配它,不管是 ebpf 程序还是用户态工具程序,都需要一大堆的 map 来维护 status,这就增加了复杂性。既然你连如何 mapping 的权力都给到了,如何增删改查自己留着有啥用呢,一般而言,要么无,要么全,crud 才完美闭环。

浙江温州皮鞋湿,下雨进水不会胖。

相关文章:

  • 沈阳哪有做网站的十八大禁用黄app入口
  • 网站要咋做seo优化诊断
  • 绵阳新区大建设谷歌seo靠谱吗
  • 检查部门网站建设现在做网络推广好做吗
  • 用fw做明星的网站惠州seo排名
  • 台州企业网站一元手游平台app
  • C++ 中的 decltype:从表达式中推断类型(二十八)
  • RK3588使用笔记:纯linux系统下基础功能配置(不定期更新)
  • MySQL内存管理机制详解
  • 【差分隐私相关概念】数据立方体(Data Cube)
  • C#里使用libxl的对齐/边框/颜色
  • 【极速版 -- 大模型入门到进阶】Transformer: Attention Is All You Need -- 第一弹
  • 基于python大数据的旅游可视化及推荐系统
  • JavaScript中var、let和const的区别
  • 深入理解分布式事务Saga,从入门到面试热点分析详解
  • 05-021-自考数据结构(20331)- 动态查找-例题分析
  • [首发]烽火HG680-KD-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包
  • 计算机Python程序代码Java编写web系统c++代做qt设计接单php开发
  • 可发1区的超级创新思路(python\matlab实现):MPTS+Lconv+注意力集成机制的Transformer时间序列模型
  • 【Ollama】大模型运行框架
  • C++进阶——位图+布隆过滤器+海量数据处理
  • Docker使用ubuntu
  • SQLMesh调度系统深度解析:内置调度与Airflow集成实践
  • 洛谷题单1-P5705 【深基2.例7】数字反转-python-流程图重构
  • 【附JS、Python、C++题解】Leetcode面试150题(11)H指数
  • DeepSeek分析仿写选题应该怎么做?