- 博客(77)
- 收藏
- 关注
原创 吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础 课后习题和代码实践
这里需要知道dapo的reward_manager_cls 具体是什么,因为reward需要batch数据才能计算,因此对于reward manager咱们先按下不表(其实dapo对应的reward_manager_cls是在verl/verl/workers/reward_manager/dapo.py),先去dapo_ray_trainer.py看一下batch是怎么采样的,再回来仔细阅读reward的具体计算方法。# max_num_gen_batches是最多可以使用的gen_batch的个数。
2025-11-19 21:26:35
337
原创 作者生成包括开场设计、内容分段、互动埋点、标题标签等完整的视频文案框架。文章提供了完整的提示词代码,并客观分析了使用场景、实际... ...
Console.WriteLine($"性能提升:{((watch1.ElapsedMilliseconds - watch2.ElapsedMilliseconds) / (double)watch1.ElapsedMilliseconds):P2}");这会延长对象的生命周期,因为 GC 会认为这个对象 “仍在被使用”。例如,元组解构时,var (_, name, _) = data 生成的 IL 代码仅包含对 name 的存储指令,而传统方式会包含所有成员的存储指令,减少了 CPU 执行的指令数。
2025-11-19 21:22:41
626
原创 .A.swift 使用指南
很显然 \(f(q)\) 是个很没用而且碍眼并且值又固定的东西,那么预处理算出 \(f(q)\),然后问题转化成求长度为 \(k\) 值域为 \(1 \sim n\) 的序列中单调不降的序列个数,那么仔细思考,对于从 \(n\) 中任选 \(k\) 个,重排一遍一定可以,所以说就是 \(C_n^k\),答案为 \(C_n^k f(q)\)。我们先给每组分配一个物品,只剩 \(n-1\) 个物品,我们要在这 \(n-1\) 个物品中选择 \(k-1\) 个隔板,所以是 \(C_{n-1}^{k-1}\)。
2025-11-19 21:15:27
477
原创 实用设计模式之二--Strategy模式续,Strategy模式在Windows Mobile网络连
特点: 随机访问速度快(可直接 “按地址读取”,类似 RAM),支持 “代码在 Flash 中直接运行”(XIP,eXecute In Place);密度低(容量小),价格高(单位容量成本高),擦写速度慢(尤其大容量擦除)。H7的内部内存分为了ITCM,DTCM,AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4和备份SRAM。速度中等(比 SRAM 慢),功耗较高(刷新需要耗电);容量小(通常 KB 级,最大几 MB),速度慢(擦写时间毫秒级),寿命有限(通常 10 万次擦写)。
2025-11-19 21:12:05
433
原创 JQuery实现经典网站后台框架
如对于权限模块,我们涉及到的用户管理、机构管理、角色管理、菜单管理、功能管理、操作日志、登录日志等业务类,那么这些类继承BaseApi,就会具有相关的接口了,如下所示继承关系。一般API控制器的子类,只需要继承基类就可以了,额外增加的接口按常规化的设计函数即可,可以参考基类的做法来写各种(GET、PUT、DELETE、POST)的处理函数。表格的数据直接录入,一般不是仅仅的通过文本框的录入,一般录入有选择表的记录,下拉类表、复选框、图像、数值、颜色等等特殊的录入的。如下是生成的相关类的界面效果。
2025-11-18 22:30:18
310
1
原创 将ASP.NET MVC . 部署在IIS和IIS上的教程
除了标准的闭包(你可以内联定义函数体),现在你也可以用 first-class callables 作为常量表达式了。这是一个简单的验证器属性,用来检查值是否为真值,默认实现就是把它转成布尔值,让 PHP 自己处理转换。谢撂踪稼PHP 8.5 又带来了一个让人兴奋的新特性:闭包现在可以作为常量表达式使用了,这意味着它们可以出现在默认参数或属性值中。严格来说这是一个独立的 RFC,但它是因为投票原因才拆分的,技术上并不是独立的,所以我在同一篇文章里一起介绍。// 定义一个默认验证器。
2025-11-18 22:26:48
259
原创 利用WCF的PP共享剪贴板上的数据
咐俸桌掏探秘Transformer系列之(1):注意力机制0x00 概述因为各种事情,好久没有写博客了,之前写得一些草稿也没有时间整理(都没有时间登录博客和微信,导致最近才发现好多未读消息和私信,在这里和各位朋友说下万分抱歉)。现在恢复更新,是因为最近有些从非AI领域转过来的新同学来找我询问是否有比较好的学习资料,他们希望在短期内迅速上手 Transformer。我在网上找了下,但是没有找到非常合适的系统的学习资料,于是就萌发了自己写一个系列的想法,遂有此系列。在整理过程中,我也发现了自己很多似是而非的错误
2025-11-18 22:22:42
235
原创 C#会重蹈覆辙吗?系列之:华而不实的C#析构器
业务逻辑是基于线程数据的传递进行处理,主线程传递线程ID到子线程。处理方式:重写线程池的execute(*)、submit(*)方法。关键代码:[traceId:%X{traceId}],traceId是通过拦截器里MDC.put(traceId, tid)添加。4、异步定时任务线程接口ScheduledExecutorService的日志链路追踪。在执行前,执行后进行跟踪ID的生成和删除。2、整合logback,打印日志,logback.xml (日志配置文件)4、异步线程的跟踪ID链路追踪。
2025-11-18 22:18:20
285
原创 一个架构的演化--从All in One到SOA的实践
其中引用到的上下文变量arr是["1","2","3","1","2","333",""],处理完成后的array是["1","2","3","333",""],注意我的""是空串,不是空值,因此是没有去除的。经过查询,多个查询条件组合为[{"ID":1,"文本":"AB","整数":1,"小数":1.5,"日期":44927.75,"是_否":0}]越接近1表示,方向越接近。经过查询,第一个{"ID":1,"文本":"AB","整数":1,"小数":1.5,"日期":44927.75,"是_否":0}
2025-11-18 22:14:27
350
原创 微软对PHP支持的改进,及一些胡言乱语
* 项目间间隔与项目与边框间隔相等 *//* 两端对齐,项目间间隔相等 *//* 每个项目两侧的间隔相等 *//* 从下到上 */justify-content: flex-start;/* 默认值:左对齐 *//* 项目的第一行文字的基线对齐 */flex-direction: row-reverse;/* 交叉轴的起点对齐 */align-items: flex-end;/* 交叉轴的终点对齐 */justify-content: flex-end;
2025-11-17 21:13:48
642
原创 什么叫做类型?简单地说,类型就是把内存中的一个二进制序列赋予某种意义。这篇随笔系统地介绍了JavaScript的类型。 ...
而且是纯粹的那种,不要框架,只依赖原生。早期 JavaScript 没有类的概念,通过 “构造函数+原型链” 模拟面向对象,this 因“动态绑定”特性,从强类型语言的角度看,其表现堪比怪物,this 指向完全依赖调用方式,稍不注意就出错。继承的先父后子,无论是隐式调用父类无参构造,还是显式调用有参构造,父类的构造函数总是先执行,父类成员先行完成初始化,不会出现子类访问未就绪的父类属性的情况。JavaScript 的 this 像怪物,核心是指向由函数调用时的方式决定,属于动态绑定,而非定义时的静态绑定。
2025-11-17 21:09:39
638
原创 基于.NET Framework .的解决方案部署
在实用性能上,它在OmniDocBench基准测试中,仅用100个视觉token就超越需256个token的GOT-OCR2.0,用少于800个视觉token超越平均需6000+个token的MinerU2.0,且单A100-40G显卡日生成20万+页LLM/VLM训练数据,代码和模型权重已开源(http://github.com/deepseek-ai/DeepSeek-OCR),为LLM长上下文压缩、记忆遗忘机制研究及实际OCR任务提供重要价值。配置:AdamW优化器,步长调度器,初始学习率3e-5;
2025-11-17 21:05:27
302
原创 程序员应知——团队精神
纯色背景,上方留白,一位头发灰白、脸颊圆润的老奶奶,头顶写着“{{text}}”的文字内容,{{prompt}},脸颊泛红、嘴角上扬露出愉悦笑容,整体画面色彩柔和温暖、线条简洁流畅,有着可爱温馨的卡通风格,简笔画,彩铅手绘,治愈系插画,富有童趣,笔触简单,有线条感。你是一位经验丰富且亲切温暖的老奶奶语录视频剪映草稿生成专家,以老奶奶的身份,结合一只的猫咪,根据用户提供的文案和语境,创作出适合用于制作老奶奶语录视频剪映草稿的温馨绘画提示词。我们只需复制视频渲染地址,在浏览器中打开,即可看到成功生成的短视频。
2025-11-17 21:00:43
634
原创 OS X 上使用.NET开发应用程序
高动态范围(HDR)渲染是Unity通用渲染管线(URP)中的关键技术,它解决了传统低动态范围(LDR)渲染无法准确表现真实世界光照强度范围的问题。在真实世界中,光照强度的变化范围极大(从阴暗室内到阳光直射可达100,000:1),而传统8位LDR渲染只能表示256:1的范围,导致亮部细节丢失(过曝)或暗部细节不足。URP支持多种色调映射算子(如ACES、Neutral、Reinhard等),将HDR值转换为适合屏幕显示的LDR值。更广的光照范围:使用浮点纹理存储光照信息,能够表示更大范围的亮度值。
2025-11-17 20:55:52
252
原创 ASP.NET MVC关于生成纯静态后如何不再走路由直接访问静态页面
可以使用此函数允许将特定消息传递到窗口,即使消息源自较低完整性级别的进程也是如此。与控制进程消息筛选器的 ChangeWindowMessageFilter 函数不同, ChangeWindowMessageFilterEx 函数控制窗口消息筛选器。如果进程消息筛选器或窗口消息筛选器允许该消息,则会将其传递到窗口。允许全局或进程范围内的任何消息都将通过,但任何未包含在这两个类别中以及来自较低特权进程的消息都将被阻止。这使 hWnd 能够接收消息,无论消息的来源如何,即使消息来自较低特权进程也是如此。
2025-11-16 15:38:12
269
原创 .Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓)
一般为了美观会增加一点圆角,可以使用在线的工具增加一下圆角,然后通过png转ico工具制作ico图片。首先想一下这个项目图标想要运用在哪些地方。在WPF中你想为你的应用增加你的项目图标主要在这三个地方。以上就是在开发WPF应用时如果你想为这个应用添加自己的图标最常设置的几个地方,希望对你有所帮助。本文梳理一下怎么给WPF应用增加自己的项目图标,还是以Rouyan为例进行说明。将指定的文件标记为WPF应用程序的资源文件。文件会随应用程序一起分发,不需要单独部署。1、应用程序图标设置。3、系统托盘图标设置。
2025-11-16 15:34:11
206
原创 对jQuery的事件绑定的一些思考
UnifiedTTS 通过统一的 API 屏蔽了不同 TTS 模型的差异,使你无需维护多个 SDK,即可在成本与效果之间自由切换。UnifiedTTS 抽象了不同模型的请求,这样用户可以用同一套请求参数标准来实现对不同TTS模型的调用,这个非常方便。所以,为了简化TTS的客户端调用,非常推荐使用 UnifiedTTS。下面根据API 文档:https://unifiedtts.com/zh/api-docs/tts-sync 实现一个可运行的参考实现,包括配置文件、请求模型、服务类与控制器。
2025-11-16 15:30:14
764
原创 关于如何提高Web服务端并发效率的异步编程技术
文章简介: TDS 是一款基于 .NET 开源免费(MIT license)、高效且用户友好的文件搜索工具,使用 Avalonia UI 技术并完美支持 AOT 编译,实现并优化了如 USN 读取/近实时更新,索引磁盘缓存,索引增强搜索,多关键字匹配,多线程搜索,Avalonia UI 实现(虚拟化,全局热键,系统托盘)等功能,具有轻量高效、界面美观、交互舒适等特性。文章简介: 在 C# 的语法演进中,“弃元(Discard)” 以一个简单的下划线 _ 成为了既提升代码可读性,又优化性能的 “双料特性”。
2025-11-16 15:26:07
605
原创 简单粗暴地理解js原型链--js面向对象编程
周一早上9点,某制造企业的项目经理李明收到一个紧急任务——公司决定开发一套新的ERP系统,预算300万元,需要12个月完成。企业AI的未来,不是一个"超级大脑"替代所有人,而是让每个专业团队拥有自己的AI助手,然后通过标准化的协议实现智能协作。在传统软件工程中,这意味着:如果你的组织有5个团队,那么你的系统架构最终会演化成5个相对独立的子系统。// ========== Stage 2: PMO规划 ==========10:30-11:30:跑到HR部门,询问有没有足够的开发人员,现有团队的技能如何?
2025-11-16 15:21:49
535
原创 【译】 款微软 MCP 服务器,加速您的开发工作流程
MudTools.OfficeInterop.Word 是一个强大的 .NET 库,它封装了 Microsoft Word 的 COM 组件,让开发者能够以面向对象的方式轻松操作 Word 文档。通过定义规则模板,我们可以创建一个灵活的系统,能够适应不同类型的合同需求,而无需修改代码。虽然 MudTools.OfficeInterop.Word 没有直接提供创建目录的方法,但我们可以通过使用 Word 的内置功能来实现。通过设置段落的大纲级别,我们可以创建一个结构清晰的文档,便于读者快速定位感兴趣的内容。
2025-11-15 16:44:32
699
原创 ontainer App】Container App无法从Container Registries 拉取镜像 - 报错 Forbidden
而.NET的RID支持linux-musl-arm64/linux-musl-x64,所以理论上可以将.NET程序编译为原生的Linux动态库(.so),然后在鸿蒙的原生项目中,通过dlopen以及dlsym等函数调用C#中的入口函数。鸿蒙系统中seccomp的系统调用白名单如下:https://gitee.com/openharmony/startup_init/blob/master/services/modules/seccomp/seccomp_policy/app.seccomp.policy。
2025-11-15 16:40:24
380
原创 仅一个 Python 文件,狂揽近 万 Star「GitHub 热点速览」
选择UDP,因为视频会议对实时性要求高,能容忍少量数据丢失,但无法接受高延迟。现代协议演进:QUIC(HTTP/3基础)在UDP上实现了TCP的可靠性,结合两者优点,解决TCP队头阻塞问题。TCP通过序列号、确认机制、超时重传、错误校验等保证数据不丢失、不重复、按序到达。因为UDP的设计初衷是高效、低延迟,适用于实时场景,丢包并不影响系统的正常运行。UDP不保证数据的顺序和完整性,而TCP通过确认机制确保数据的可靠传输。不可以,UDP无法保证数据的到达,也没有重传机制,数据丢失无法恢复。
2025-11-15 16:35:58
389
原创 # 一步一步学习使用LiveBindings() LiveBindings绑定到漂亮的TCombobox
System.out.println("StatementHandler类型: " + handler.getClass().getSimpleName());System.out.println("=== 测试 PreparedStatementHandler ===");System.out.println("=== 测试 CallableStatementHandler ===");System.out.println("=== 测试 SimpleStatementHandler ===");
2025-11-15 16:31:00
667
原创 Nginx反向代理Kafka集群
在日常开发中,我们常常需要将一个对象映射到另一个对象,比如将数据库实体转换为数据传输对象(DTO),或将请求模型映射为领域模型。Mapster 是一个开源免费(MIT license)、快速、高性能、灵活且易于使用的 .NET 对象映射库,用于在 .NET 用程序中进行对象之间的转换和映射操作,大幅减少手动赋值带来的重复代码、人为错误和维护成本。接下来我们分别定义一个源对象(Student)和一个目标对象(StudentViewModel),它们的属性名和类型完全一致。FirstName = "李",
2025-11-15 16:25:49
707
原创 让集成更安心,让连接更高效:鸿蒙生态伙伴SDK优选库双端赋能
MudTools.OfficeInterop.Word 是一个强大的 .NET 库,它封装了 Microsoft Word 的 COM 组件,让开发者能够以面向对象的方式轻松操作 Word 文档。通过定义规则模板,我们可以创建一个灵活的系统,能够适应不同类型的合同需求,而无需修改代码。虽然 MudTools.OfficeInterop.Word 没有直接提供创建目录的方法,但我们可以通过使用 Word 的内置功能来实现。通过设置段落的大纲级别,我们可以创建一个结构清晰的文档,便于读者快速定位感兴趣的内容。
2025-11-14 14:20:08
907
原创 。 、通用命令 keys:查看当前库所有key (匹配:keys *) exists key:判断某个key是否存在 type ke ...
而.NET的RID支持linux-musl-arm64/linux-musl-x64,所以理论上可以将.NET程序编译为原生的Linux动态库(.so),然后在鸿蒙的原生项目中,通过dlopen以及dlsym等函数调用C#中的入口函数。鸿蒙系统中seccomp的系统调用白名单如下:https://gitee.com/openharmony/startup_init/blob/master/services/modules/seccomp/seccomp_policy/app.seccomp.policy。
2025-11-14 14:15:52
245
原创 【URP】Unity超分辨率优化实践
选择UDP,因为视频会议对实时性要求高,能容忍少量数据丢失,但无法接受高延迟。现代协议演进:QUIC(HTTP/3基础)在UDP上实现了TCP的可靠性,结合两者优点,解决TCP队头阻塞问题。TCP通过序列号、确认机制、超时重传、错误校验等保证数据不丢失、不重复、按序到达。因为UDP的设计初衷是高效、低延迟,适用于实时场景,丢包并不影响系统的正常运行。UDP不保证数据的顺序和完整性,而TCP通过确认机制确保数据的可靠传输。不可以,UDP无法保证数据的到达,也没有重传机制,数据丢失无法恢复。
2025-11-14 14:11:04
369
原创 小区物业的智慧:轻松理解JVM垃圾回收的奥秘
System.out.println("StatementHandler类型: " + handler.getClass().getSimpleName());System.out.println("=== 测试 PreparedStatementHandler ===");System.out.println("=== 测试 CallableStatementHandler ===");System.out.println("=== 测试 SimpleStatementHandler ===");
2025-11-14 14:06:21
565
原创 一个 Blazor/WinForm 开发者的 WPF 学习记:通往 Avalonia 的那条路
在日常开发中,我们常常需要将一个对象映射到另一个对象,比如将数据库实体转换为数据传输对象(DTO),或将请求模型映射为领域模型。Mapster 是一个开源免费(MIT license)、快速、高性能、灵活且易于使用的 .NET 对象映射库,用于在 .NET 用程序中进行对象之间的转换和映射操作,大幅减少手动赋值带来的重复代码、人为错误和维护成本。接下来我们分别定义一个源对象(Student)和一个目标对象(StudentViewModel),它们的属性名和类型完全一致。FirstName = "李",
2025-11-14 14:01:17
574
原创 Oracle数据库注入基础入门
裁剪之后的视频片段放在App安装路径下的cache目录,完整路径为“我的手机/Android/data/com/iknow.android/cache/视频片段的文件名.mp4”。打开Android-Video-Trimmer工程的app/build.gradle,发现里面引用了支持库Support v27,但Android早已废弃Support库,转为使用AndroidX库,所以要么把Support库升级到最后更新的v28库,要么把支持库迁移到AndroidX。二、更新工具库的仓库位置。
2025-11-13 17:00:07
432
原创 HuggingFace
本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。
2025-11-13 16:55:41
225
原创 .NET 记录Amazon上传S异常问题
Microsoft 代理框架(Microsoft Agent Framework)的推出,旨在简化这一过程,让开发人员能够像创建 Web API 或控制台应用一样轻松构建 AI 代理。Microsoft 代理框架为.NET开发者提供了一套强大工具,显著简化了AI代理的开发、编排和部署过程。工具使用:工具是离散的、可调用的功能,如API、模型上下文协议(MCP)工具、代码执行或数据查询。现在就开始使用Microsoft 代理框架,将AI代理的强大功能融入您的应用程序中,以更智能、更高效的方式解决业务挑战。
2025-11-13 16:51:07
347
原创 Ks配置的“双重人格”:一次hostPort神秘复现的排查之旅
vu3中$attrs: 包含了所有[传递]给[子组件]的非 props 属性。如:继承的属性(如 class 和 style)以及未在 props 中声明的属性。vu2中$attrs: 包含了所有[传递]给[子组件]的非 props 属性和style和class之外的属性。当一个组件声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。v-bind="$attrs" 可以接收到父组件中的属性设置。我们发现一个问题:在父组件中的组件写相关属性时,没有属性提示。
2025-11-13 16:41:09
342
原创 【】How-To: Using the N* Stack, part
裁剪之后的视频片段放在App安装路径下的cache目录,完整路径为“我的手机/Android/data/com/iknow.android/cache/视频片段的文件名.mp4”。打开Android-Video-Trimmer工程的app/build.gradle,发现里面引用了支持库Support v27,但Android早已废弃Support库,转为使用AndroidX库,所以要么把Support库升级到最后更新的v28库,要么把支持库迁移到AndroidX。二、更新工具库的仓库位置。
2025-11-12 15:19:55
252
原创 Visual Studio 实用功能总结 II
本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。
2025-11-12 15:15:17
319
原创 个Demo展示HTML无穷的魅力
Microsoft 代理框架(Microsoft Agent Framework)的推出,旨在简化这一过程,让开发人员能够像创建 Web API 或控制台应用一样轻松构建 AI 代理。Microsoft 代理框架为.NET开发者提供了一套强大工具,显著简化了AI代理的开发、编排和部署过程。工具使用:工具是离散的、可调用的功能,如API、模型上下文协议(MCP)工具、代码执行或数据查询。现在就开始使用Microsoft 代理框架,将AI代理的强大功能融入您的应用程序中,以更智能、更高效的方式解决业务挑战。
2025-11-12 15:10:03
731
原创 WCF.进阶系列--第二章 寄宿WCF服务
处于waitting状态是因为它在等任务执行,从堆栈可以看出是阻塞在TaskQueue.take方法,org.apache.tomcat.util.threads.TaskQueue是tomcat中的LinkedBlockingQueue,是生产者-消费者模型,take方法阻塞表示当前队列是空的,没有任务需要执行,一旦有任务放入TaskQueue,take方法就会唤醒,进入Runnable状态。这点就不好理解了,应用恢复了,为什么tomcat没有恢复,tomcat线程此时在做什么?
2025-11-12 15:04:43
617
原创 细说ASP.NET的各种异步操作
vu3中$attrs: 包含了所有[传递]给[子组件]的非 props 属性。如:继承的属性(如 class 和 style)以及未在 props 中声明的属性。vu2中$attrs: 包含了所有[传递]给[子组件]的非 props 属性和style和class之外的属性。当一个组件声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。v-bind="$attrs" 可以接收到父组件中的属性设置。我们发现一个问题:在父组件中的组件写相关属性时,没有属性提示。
2025-11-12 14:59:00
375
原创 每个人都应该懂点函数式编程
裁剪之后的视频片段放在App安装路径下的cache目录,完整路径为“我的手机/Android/data/com/iknow.android/cache/视频片段的文件名.mp4”。打开Android-Video-Trimmer工程的app/build.gradle,发现里面引用了支持库Support v27,但Android早已废弃Support库,转为使用AndroidX库,所以要么把Support库升级到最后更新的v28库,要么把支持库迁移到AndroidX。二、更新工具库的仓库位置。
2025-11-11 14:40:47
354
原创 十倍效能提升——Web 基础研发体系的建立
本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。
2025-11-11 14:36:03
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅