自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(238)
  • 收藏
  • 关注

原创 哈哈哈哈哈打不过我吧,没有办法我(vllm)就是这么强大!

是阿里开源的完整版本、未经蒸馏的的 Transformer 文生图模型, 10.26B权重参数, 20.55GB GPU显存, 专为高质量、强生成多样性、广泛的风格覆盖能力以及精准的提示词遵循而设计。这个一步步预测并减去噪声的循环,从方向上看是前向加噪的“反向”,从动作上看就是在“去噪”。循环往复:把上一步得到的、稍微清晰一点的图片作为新的输入,再次让模型预测并减去噪声。终点:重复几十步后,噪声被逐步移除干净,一张清晰的、符合你描述的图片就诞生了。结果得到一张噪声少了一点点的、略微能看出模糊轮廓的图片。

2026-05-19 10:00:01 530

原创 智谱GLM太强了,coding plan还需要限时抢购,咱们自己vllm也咧一个呗!

借助vLLM,LLM可以将批处理请求中重复部分的词元字符串(“what is the capital of”)保存在短期记忆(KV 缓存)中,并发送一个“翻译请求”,而不是两个单独的请求。为了理解请求,LLM 需要了解字词之间的关系以及如何在字词之间建立关联,与人类使用语义和推理来理解字词不同,LLM 是通过数学运算来“推理”的, 面对大量用户请求时, 需要消耗大量显存。社区引入的LMCache进一步将昂贵的KVCache显存卸载到内存或其他存储, 目的是提高显存使用率,优化吞吐量和首字延迟。

2026-04-16 17:51:35 437

转载 同样都是九年义务教育,他知道的AI算力科普好像比我多耶

二进制中,除1/2=0.5,1/4=0.25,1/8=0.125,1/2+1/8=0.625等在计算机中能精确存储, 其他数字(eg:0.1,0.2,0.3)都不能精确存储.MoE专家架构,总参数是122B, 激活参数10B(每次推理用到的参数),但是总参数要都加载进显存。, 参考上面的场景③。场景③ 其余的 0.1,0.2,0.3,0.314等是有限小数, 口语一般不涉及精度,保持原数。只要小数能拆成若干个1/10,1/100,1/1000,1/10000等相加,那么就是有限小数。

2026-04-01 17:47:04 79

原创 Higress这个中登才是AI时代网关的心头好

这里留一个问题: ingress-nginx-controller,higress-gateway svc占据了metalLb分配的2个ip,如何在不通知运维切换的情况下,固定一个ip。② apply的时候,会被ingress nginx的准入机制拦截, 需要先删除准入机制,该行为不影响ingress-nginx-controller行为。api控制台模式:通过过API控制台界面或者API配置,提供完整的api生命周期管理、精细化策略,适用与集中化治理和精细化管理的场景。

2026-03-24 19:14:54 300

原创 MetalLB才是给Ingress这个老登做负重前行的那个男人

ingress 本身不是一个对外暴露服务的方式,它的重点是一个规则入口(收敛了众多upstream的服务访问), 它本身是一个 nginx svc,故做成loadbalancer形式就做到了统一对外暴露upstream服务。既然ingress也是一个k8s服务(收敛了upstream服务的访问能力), 那么上面k8s对外暴露服务的两种方式 也可以作用在 ingress上,打通整个南北链路。ingress本身是一个nginx svc,提供了统一的入站请求规则入口,收敛了访问k8s内部服务的能力。

2026-03-19 12:47:52 577

原创 超性感的openclaw低门槛平替,我给你打call

春节期间,qwen3.5和openclaw火到爆, 咱们让子弹飞了一阵子,目前收到的信息是 ① 大龙虾配置极其复杂,非科班生很容易失败 ② 大龙虾很费token。", 它就不知道。作为大龙虾的平替, 我试用下来,门槛相对较低,资源占用很少,功能/生态完备, github上26k star。官方给出的nanobot gateway 是前台启动nanobot,不适合生产环境。① 要翻墙 ② 获取免费额度的apikey,要信用卡,我没有!本文文字原创,搁笔常恐意味尽,愿闻读者金玉声, ”永久更新“地址见原文。

2026-02-28 08:32:26 370

原创 我不允许谁还不清楚function call在AI-Agent领域中打手的地位

在由LLM驱动的agent应用中,function calling(function tools)作为LLM的手脚,让LLM具备使用工具从外部获取最新信息并指导应用行为的能力,这一过程由结构化的输入输出参数来传递。从三次请求对话来看, LLM在三次对话的响应中体现了它的思考和逻辑步骤,应用持续被LLM引导做出行动,同时LLM也持续对应用的行为做出进一步观察和思考。按照我们的分析, 从LLM的视角,要回答这个问题,经历了“思考-行动-观察-思考” 循环, 这是一个。”(输出 不包含 ToolCall)

2026-01-29 11:28:32 261

原创 我不允许谁还不清楚function call在AI-Agent领域中打手的地位

在由LLM驱动的agent应用中,function calling(function tools)作为LLM的手脚,让LLM具备使用工具从外部获取最新信息并指导应用行为的能力,这一过程由结构化的输入输出参数来传递。从三次请求对话来看, LLM在三次对话的响应中体现了它的思考和逻辑步骤,应用持续被LLM引导做出行动,同时LLM也持续对应用的行为做出进一步观察和思考。按照我们的分析, 从LLM的视角,要回答这个问题,经历了“思考-行动-观察-思考” 循环, 这是一个。”(输出 不包含 ToolCall)

2026-01-29 11:28:32 1037

原创 还有比ollama更傻瓜式的大模型本地部署方式吗 ?

无论是agentic开发,使用LLM APi, 理解function calling 都很重要,特别是底层的请求和响应payload工作方式。ollama是服务端-客户端架构,有后台服务进程olllama.exe,提供了GUI终端和命令行工具可交互,另外提供sdk和restful api,可供各种程序或者语言操作ollama。首次推理请求, 显存使用稳定在6g, gpu使用率上升,推理结束,显存使用率不会降, gpu使用率回落, 说明ollama是。LLM是静态知识,他肯定不知道今天是几号?

2026-01-22 19:36:58 487

原创 云原生AI算力平台 阶段性解读

对idc内各种异构计算(GPU、CPU、NPU等)、存储(OSS、NAS、CPFS、HDFS)、网络(TCP、RDMA)资源进行抽象,统一管理和运维和分配,通过软硬协同优化,提供资源利用率。从异构资源管理的角度,可一键部署、操作各种异构资源,在运维过程中,需要多维度的异构资源可观测性: 监控、健康检查、告警、自愈等自动化运维能力。提供弹性训练和弹性推理服务, 建立统一的数据集管理,模型生命周期管理, 优化模型访问性能,通过标准API使推理能力易于被业务应用集成。

2026-01-08 18:32:21 318

原创 云原生AI算力平台阶段性解读

对idc内各种异构计算(GPU、CPU、NPU等)、存储(OSS、NAS、CPFS、HDFS)、网络(TCP、RDMA)资源进行抽象,统一管理和运维和分配,通过软硬协同优化,提供资源利用率。从异构资源管理的角度,可一键部署、操作各种异构资源,在运维过程中,需要多维度的异构资源可观测性: 监控、健康检查、告警、自愈等自动化运维能力。提供弹性训练和弹性推理服务, 建立统一的数据集管理,模型生命周期管理, 优化模型访问性能,通过标准API使推理能力易于被业务应用集成。

2026-01-08 18:32:21 629

原创 糟糕,我实现的k8s informer好像是依托答辩

是一个同步的函数,持续执行list-watch-cache-react这个引擎, 在应用层面需要以子goroutine形式,client-go另有informer工厂,informerFactory.Start(stopCh) 内部也是启协程,这里也要认识到信道stopCh在golang中的通信作用。运行一个完整的informer: list ---> watch ---> cache---> react。④ 事件处理,应用在业务层面的动作,可以写日志,可以做controller的Reconcile动作。

2025-12-23 17:09:30 358

原创 糟糕,我实现的k8s informer好像是依托答辩

是一个同步的函数,持续执行list-watch-cache-react这个引擎, 在应用层面需要以子goroutine形式,client-go另有informer工厂,informerFactory.Start(stopCh) 内部也是启协程,这里也要认识到信道stopCh在golang中的通信作用。运行一个完整的informer: list ---> watch ---> cache---> react。④ 事件处理,应用在业务层面的动作,可以写日志,可以做controller的Reconcile动作。

2025-12-23 17:09:30 651

原创 在调度的花园里面挖呀挖

kueue资源池的配额约束了某些细粒度要求的资源池的逻辑使用边界(支持借用和抢占),通过resourceFalvor抽象出资源池的概念, kueue通过”排队“这个概念细化了准入这个动作,在kube-scheduler工作前管控了批处理任务的调度。下图是kueue的作用机制:任务满足配额准入后: 修改job的suspend: false,放行job,向job注入nodeselector注解,将本次资源风味相关的信息给到job,用于后续调度!未被准入的旧任务不会影响后续能被准入的新来任务。

2025-12-14 21:54:43 1050

原创 在k8s调度的花园里面挖呀挖

kueue资源池的配额约束了某些细粒度要求的资源池的逻辑使用边界(支持借用和抢占),通过resourceFalvor抽象出资源池的概念, kueue通过”排队“这个概念细化了准入这个动作,在kube-scheduler工作前管控了批处理任务的调度。下图是kueue的作用机制:任务满足配额准入后: 修改job的suspend: false,放行job,向job注入nodeselector注解,将本次资源风味相关的信息给到job,用于后续调度!未被准入的旧任务不会影响后续能被准入的新来任务。

2025-12-14 21:54:43 377

原创 刚入职的AIops菜鸡,应该知道gang-scheduling和binpack调度吗?

粗略想象在第一个Pod被调度到节点A之后, 调度第二个Pod时, 节点A的MostAllocatedAlg = 2/6, 而节点B的MostAllocatedAlg = 2/8, 20的权重值在分子端占据更大因素,故第二个Pod也会更倾向于调度到节点A, 这样算法就做到了binpack。本文原创不易,特别是binpack的验证耗费了博主1个星期的倒腾时间,后面博主会将企业项目[云原生算力平台]做一个整体的架构梳理, 期待一键三连,交个朋友, 35+报团不迷路。

2025-12-05 14:47:56 681

原创 刚入职的AI菜鸡,应该知道gang-scheduling和binpack调度吗?

粗略想象在第一个Pod被调度到节点A之后, 调度第二个Pod时, 节点A的MostAllocatedAlg = 2/6, 而节点B的MostAllocatedAlg = 2/8, 20的权重值在分子端占据更大因素,故第二个Pod也会更倾向于调度到节点A, 这样算法就做到了binpack。本文原创不易,特别是binpack的验证耗费了博主1个星期的倒腾时间,后面博主会将企业项目[云原生算力平台]做一个整体的架构梳理, 期待一键三连,交个朋友, 35+报团不迷路。

2025-12-05 14:47:56 338

原创 <span class=“js_title_inner“>刚入职的AI菜鸡,应该知道gang-scheduling和binpack调度吗?</span>

粗略想象在第一个Pod被调度到节点A之后, 调度第二个Pod时, 节点A的MostAllocatedAlg = 2/6, 而节点B的MostAllocatedAlg = 2/8, 20的权重值在分子端占据更大因素,故第二个Pod也会更倾向于调度到节点A, 这样算法就做到了binpack。本文原创不易,特别是binpack的验证耗费了博主1个星期的倒腾时间,后面博主会将企业项目[云原生算力平台]做一个整体的架构梳理, 期待一键三连,交个朋友, 35+报团不迷路。

2025-12-05 14:47:56 973

原创 网关上的限流器

按照上面的计算,应对1M/s的请求,需要10台redis分片实例。对于要求高精度的(涉及财务)的交易请求,推荐使用 cluster或者redis,kong网关的cluster策略其实就是使用kong 网关的数据存储postgres, 性能肯定没有redis好,但好在不需要引入新的组件。这里的关键是区分“有损服务” 和“完全不可用服务”, 体现的是“牺牲局部,保全整体”的设计哲学。④ 上文“漏桶算法”显示,排队中的请求会有等待的延迟时间,如果不希望过多的等待,指定。

2025-11-24 22:47:15 348

原创 <span class=“js_title_inner“>网关上的限流器</span>

按照上面的计算,应对1M/s的请求,需要10台redis分片实例。对于要求高精度的(涉及财务)的交易请求,推荐使用 cluster或者redis,kong网关的cluster策略其实就是使用kong 网关的数据存储postgres, 性能肯定没有redis好,但好在不需要引入新的组件。这里的关键是区分“有损服务” 和“完全不可用服务”, 体现的是“牺牲局部,保全整体”的设计哲学。④ 上文“漏桶算法”显示,排队中的请求会有等待的延迟时间,如果不希望过多的等待,指定。

2025-11-24 22:47:15 1022

原创 新来的外包,在大群分享了它的限流算法的实现

redis作为限流计数器的外置存储,令牌桶算法在redis上实现原理:核心是使用hashmap存储当前请求用户的令牌桶状态(current_tokens, last_time), 落地时注意使用lua脚本避免竞态条件。上面还使用的redis expire机制: redis expire不是滑动过期,但是每次被请求触发执行的时候就重新设置TTL, 表现为“滑动过期”。这个思路也是极其常见的行为: redis可以成为用户令牌桶的全局中心存储: 当多个负载层需要读写用户限流器时,与redis交互。

2025-11-19 22:03:03 345

原创 新来的外包,限流算法用的这么6

Drawback:客户端可通过在两个时间窗口的边界堆砌请求(例如,在1min时间窗口的第59秒和下一个1min窗口的第1s都堆砌100 个请求), 轻松突破qps=100/min 语义。消耗令牌的速率某些时刻可能就不是恒定的:在突发大流量时,桶中暂存的令牌可以迅速给到请求用(这一瞬间突破qps语义),而不用像漏桶一样排队等待被处理(因漏水塑形)请求迅速堆满漏桶:后80个请求被拒绝,前20个请求被处理(第一个请求迅速被处理,第20个在第2s末被处理完,because恒定的漏水塑形)。

2025-11-03 16:31:32 603

原创 两张大图一次性讲透k8s调度器工作原理

当部署pod时,可以在pod manifest文件指定自定义的Scheduler, 这样调度器的调度决定就会基于你自定义的调度逻辑。从本质上讲,它会利用pod规格(cpu、memory、亲和性、污点、持久盘)过滤掉不适合运行特定pod的节点。pod priority: 高优先级的pod通过影响打分过程影响节点选择(高优Pod会先于低优Pod被调度)。pod拓扑分布: 确保 pod 分布在不同的拓扑域(如区域或节点)中,避免在一个地方集中过多pod。最后,排名最高的worker节点会被选中调度pod。

2025-10-25 23:01:05 502

原创 调试grpc的哼哈二将,你值得拥有

当客户端创建grpc通道,内部会创建到服务器的HTTP/2连接,通道创建完,就可以重用连接来发送多个到服务端的远程调用(多路复用)。这些远程调用会映射为HTTP/2中的流,远程调用中的消息以HTTP/2帧的形式进行发送,帧可能会携带一条gRPC长度前缀的消息,也可能在 gRPC消息非常大的情况下,一条消息跨多帧。kong网关原生支持代理gRPC请求,本文通过一个示例来记录通过kong网关管理gRPC服务,并且使用grpcbin和grpcurl哼哈二将来模拟和验证grpc服务能力。

2025-10-21 23:13:21 336

原创 有关CORS跨域请求,这事没完

默认preflight_continue = false, 意味着插件不将预检请求转发给upstream,所以此处保持默认就好, 网关会根据请求特征和CORS配置产生CORS响应头,并返回你。,但在常见的web编程实践中(凭据认证会在处理管道的前面),如果预检Options返回非200, 后续的实际请求就不会发起, 所以请考虑对预检Options请求忽略凭据访问。如果你手痒设置成true,那么预检请求就会转发到upstream,需要后端自己去忽略对预检Options请求的凭据认证。

2025-10-20 19:50:39 897

原创 JWT这点小秘密,你们肯定都知道!

用户一旦通过登录认证, 会被下发一个token, 之后的每次请求都会带上这个token, 将能访问该token允许的资源/服务, 单点登录广泛采用了jwt, 因为它负载轻量且自然跨域使用。B因为要校验A服务,也共享有A的secret, B也可以发出信息且产生sign=HS256(info, secret), 最终这个结果不能推断出是A发出的信息。非对称加密为什么可以?是因为用私钥签名后, 虽然可能很多人持有公钥能验签, 但根据私钥的私密性和非对称加密的配对性,能推断信息是持有私钥的一方发送的。

2025-08-26 12:26:59 351

原创 Go动态感知资源变更的常规套路,你指定用过!

作为面向算法开发者的云原生saas平台,平台在界面上提供了纳管集群的交互入口,平台启动后会去监听pytorch、mpi训练任务的状态变更,并回显到界面(并给开发者发送飞书变更通知)。最近在倒腾“AI大模型基础设施”, 目标是做一个基于云原生的AI算力平台,目前因公司隐私暂不能公开宏观背景和技术方案, 姑且记录实践中遇到的一些技能点。本文记录了使用定时任务感知资源变更,并利用golang信道作为变更重建信号的姿势,可作为golang中动态感知资源变化的常规套路。一次sql请求,返回分页数据和总条数?

2025-07-31 07:54:33 277

原创 Golang的文本模板,你指定没用过!

Arena有golang、python、java sdk, 早期我们尝试使用Arena sdk提交训练任务, 后面发现这个工具截止1.4.2版本时依旧是只支持单用户, 那么在用户粒度上使用该sdk就会有线程安全问题, 这个如果二开,改动还挺大。理论上还有另外一种启动子进程的方式: exec.Command("arena",args...), args 是参数切片,或者叫不定长参数,但是我们已经用模板字符串了,所以这里使用sh来启动子进程并自行解释arena参数比较合适。http请求超时,底层发生了什么?

2025-07-14 07:11:01 389

原创 双份请求,双倍快乐

这种乐观锁的思想去解决幂等问题有一个小弊端, 因为乐观锁的思想本是针对并发控制,它解决了并发请求中的重复请求这一子集场景,但是带来的副作用就是高并发时,很多请求会被拒绝,效率变低,但数据不一致问题没有了,双倍悲伤也不会有。如果你的实体更新的不频繁, 可以考虑使用基于乐观锁的版本状态来解决(总体上乐观锁是更宏达叙事的一个思路,在频繁更新场景下能处理幂等问题,但体验不佳)。在软件领域,同一动作请求并不总会只产生一次,这可能会带来一些问题: 想象你月底发薪,公司的转账指令错误的触发了2次,这是不是双倍快乐。

2025-03-31 07:58:21 835

原创 Ingress,你这个老6

Ingress-Nginx Controller是本次业务的声明式核心控制器,确保产生满足这一规则的NodePort类型的nginx服务,注意还需前置负载提供跨节点负载均衡能力。给了一个通过Ingress引流到"hello world“ 这样的演示服务,但是它的服务竟然采用了NodePort形式,这都NodePort了,还要你Ingress作甚。外部客户端---> 任意节点(NodePort)---> ClusterIP服务---> Pod。本篇内容为原创,读者可结合图片探索源码和官方, 欢迎反馈 ~。

2025-03-28 06:57:29 1065

原创 老八股谈事务处理,到底在谈什么?

回滚阶段: 以上剩下的事务日志,不包含commit record,说明事务日志还没有写完,这部分需要回滚,根据事务日志id到undolog中找到逻辑日志开始回滚。重做阶段: 从以上待恢复事务集合中,找出“含有commit record”的事务日志,这一部分已经写完事务日志,可以重做。业务上的操作组合与数据库的落盘行为在不同的时空维度,因数据库崩溃恢复的时机,导致数据库难以做到业务逻辑自洽的数据一致性。事务日志的生成就是事务提交的关键点,代表性的有阿里的Oceanbase, 但是有一个巨大的问题,

2025-03-16 18:17:12 1081

原创 协程池是调用端并发请求的缓释胶囊

动图显示,整体耗时相比于不用协程池无差, 但是每个请求的耗时都得到了很好的控制, 整个客户端程序批量发起1000个请求显得轻快又高效。总体而言, ants是golang中用于将高并发的Goroutine削峰填谷, 起到调用端缓释胶囊的作用。调用方某些场景下突发批量请求,一开始也是自然启动多协程发起请求,大量请求因为服务端限制而超时失败, 启动。hello, 我是马甲哥,这是我的第183篇原创文章,阅读时间3min,有用指数4颗星。既要让所有客户端请求都能被处理,又要保证不超过客户端自设的超时配置。

2025-03-14 07:47:51 1005

原创 Golang倒腾一款简配的具有请求排队功能的并发受限服务器

golang官方指南[1]给了一些代码片段,层层递进演示了信道的能力:1>. 信号量2>. 限流能力var sem = make(chan int, MaxOutstanding)func Serve(queue chan *Request) { forreq := range queue { req:= req sem <- 1...

2025-03-12 18:07:33 1144

原创 记一次由context引起的进程OOM问题

之前写过《一种基于etcd实践节点自动故障转移的思路》, 程序经历过一次线上进程OOM的小事故, 本次技术复盘导致内存泄露的完整起因。提炼代码:业务函数etcdWatchLoop: 基于etcd的Watch机制持续监听/foo前缀键值对的变更; 收到Watch信道的变更消息,就去查询当前键值对。funcetcdWatchLoop()error{ctx, cancle := context...

2025-02-22 17:36:35 1034

原创 字节二面:你怎么理解信道是Golang中的顶级公民

1. 信道是Golang中的顶级公民goroutine结合信道channel是golang中实现并发编程的标配。信道给出了一种不同于传统共享内存并发通信的新思路,以一种通道复制的思想解耦了并发编程的各个参与方。信道分为两种: 无缓冲和有缓冲信道(先入先出)。分别用于goroutine同步和异步生产消费:无缓冲信道: 若没有反向的goroutine在做动作, 当前goroutine会阻塞;有缓冲信道...

2025-01-06 15:21:04 1092

原创 一种基于etcd实践节点自动故障转移的思路

自动故障转移是服务高可用的一种实现方式。mongodb,redis哨兵集群、 etcd都具备某种程度的故障转移能力。今天记录利用etcd选举sdk实践 服务自动故障转移服务以leader、follower多节点启动,日常leader接受所有业务流量,follower作为备用实例,不接受业务流量;监测到leader宕机,follower节点自动提升为leader并接管业务流量。1. 节点故障转移既然...

2024-12-23 16:58:24 1166

原创 http请求超时,底层发生了什么?

业务方反应调用接口超时,但是在服务端监控并没有看到5xx异常, 于是我们模拟一下请求超时时发生了什么?1.openresty模拟长耗时服务端延迟5s响应error_loglogs/error.log;http{server{listen80;charsetutf-8;location/reqtimeout{...

2024-12-04 17:19:49 859

原创 三张大图剖析HttpClient和IHttpClientFactory在DNS解析问题上的殊途同归

在开发者便利度角度,我们很轻松地使用HttpClient对象发出HTTP请求,只需要关注应用层协议的BaseAddr、Url、ReqHeader、timeout。实际在HttpClient请求在源码级别是 HttpMessageHandler在躬身前行。1. 早期.NET HttpClient遇到的Socket滥用/DNS解析问题早期.NET的HttpClient使用HttpClientHandl...

2024-11-19 09:23:17 718 1

原创 unix进程间通信信号的有效实践

背景最近优化了一版程序:用到了golang的优雅退出机制。程序使用leader/follower分布式高可用模型,所有的请求都会命中leader;使用etcd的election sdk做选主,需要在节点意外下线的时候,主动去etcd卸任(删除10s租约), 否则已经下线的节点还会被etcd认为是leader。所以在这里,优雅退出是技术刚需。另外根据[云原生十二要素方法论] 第9条:快速启动和优雅...

2024-09-30 18:58:07 985

原创 一次sql请求,返回分页数据和总条数

日常搬砖,总少不了需要获取分页数据和总行数。一直以来的实践是编码两次sql请求,分别拉分页数据和totalCount。最近我在思考:常规实践为什么不是 在一次sql请求中中执行多次sql查询或多次更新,显而易见的优势:① 能显著减低“客户端和服务器之间的网络往返次数”,提高吞吐量② 简化客户端代码逻辑1. mysql 默认单sql请求单语句mysql客户端选项client_multi_statem...

2024-08-13 17:15:48 1593 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除