- 博客(541)
- 资源 (22)
- 收藏
- 关注
原创 奇技淫巧抢国补
尽管使用这奇技淫巧,依然还是没有抢到。不会是内定的吧。每天试试吧,也不知道哪一次就成功了呀。更多内容,欢迎关注我的微信公众号: 半夏之夜的无情剑客。
2025-10-01 13:02:04
1641
原创 验证码和滑块破解
Frida可视化工具Dwarf2已经开源,大家有什么问题,可以一起交流。本文内容仅用于学习,严禁用作非法目的。验证码作用验证码作为一种人机识别手段,其终极目的,就是区分正常人和机器的操作。 区分人机行为的作用不言而喻。互联行为的注册、登录、发帖、领优惠券、投票等等应用场景,都有被机器刷造成各类损失的风险,如果不对各类机器垃圾的行为加以防范,灌水内容、垃圾注册、恶意登录、刷票、撞库、活动作弊、垃圾广告、爬虫、羊毛党等用户行为一旦发生,将对产品自身发展、用户体验造成极大的影响。搞定验证码很多网站都使
2022-03-26 12:31:18
3072
2
原创 JavaScript回调函数以及一些思考
最终的一点,就是提高了程序的扩展性。只要签名符合callback格式函数,都可以使用test或者test2函数,极大的提高了代码的复用性和可扩展性能。仔细分析上面的代码,可以看出和设计模式中的模版模式很像。可以说是通过回调函数来替代了模版中的子类实现。本编以最简单的例子来说明回调函数的执行过程。典型的mvc中的controller和service,以及service和Dao是转调。这里是回调,简单点说是函数做为参数,对于面向对象语言,可以是接口,可以是委托(C#),对于C/C++语言可以是是(函数指针)。
2018-05-05 10:22:25
718
1
原创 编程入门(劝学)
【作者】荀子 【朝代】先秦 君子曰:学不可以已。 青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规。虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。 故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。干、越、夷、貉(hé)之子,生而同声,长而异俗,教使之然也。诗曰:“嗟(jiē)尔君子
2018-01-21 15:46:57
773
原创 C语言中 .h文件和.c文件的区别
要理解.c文件与.h文件有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息...
2017-08-06 18:16:12
65617
3
原创 GetDirectoryReference 远程代理创建机制详解
透明的分布式编程模型:调用远程方法就像调用本地方法一样高效的消息传递:自动处理网络通信、序列化和反序列化类型安全:提供编译时类型检查,避免运行时错误性能优化:通过缓存机制避免重复创建代理可靠性:内置重试、超时和故障转移机制让分布式编程变得简单。
2025-12-22 21:40:50
924
原创 CalculateGrainDirectoryPartition
方法是 Orleans 分布式系统中 Grain 目录服务的核心组件之一,主要负责确定给定 GrainId 应该由集群中的哪个 Silo 来管理。它实现了一致性哈希算法,将 GrainId 映射到特定的 Silo 地址,从而实现 Grain 目录的分布式管理。方法是 Orleans 分布式系统中实现 Grain 目录分布式管理的核心组件。它通过一致性哈希算法将 GrainId 映射到特定的 Silo,实现了高可用性、负载均衡和系统扩展性。
2025-12-18 23:16:15
739
1
原创 Orleans 成员资格通知机制
fill:#333;存储弱引用到监听器列表触发 MembershipTableUpdates 流异步执行 AddServer/RemoveServerloop。
2025-12-17 21:52:40
653
原创 LocalGrainDirectory详解
是Orleans分布式系统的核心组件,它通过分布式哈希表算法实现了高效的Grain定位服务,为整个系统的可扩展性和可靠性提供了基础支撑。是Orleans分布式系统中负责本地Grain目录管理的核心组件,它实现了分布式哈希表(DHT)风格的Grain定位服务。[Silo变为Terminating状态][需要转发到其他Silo][需要转发到其他Silo][缓存未命中或无效]
2025-12-16 22:32:18
879
原创 WinUI3 主线程不要执行耗时操作的原因
主线程是UI应用程序的核心,负责协调所有与用户交互相关的操作。执行耗时操作会阻塞主线程的消息循环,导致UI无响应、布局异常,甚至程序崩溃。因此,任何可能耗时的操作都应该在后台线程执行,只有UI更新才应该在主线程上进行。主线程被阻塞时,无法处理新的UI更新请求和用户输入事件,导致界面卡顿甚至完全无响应。在Microsoft UI XAML(WinUI)框架中,存在严格的。当主线程被阻塞,布局无法及时更新,可能导致界面元素位置错误。,它会检查当前线程是否是UI线程,如果不是,直接返回。
2025-12-16 10:21:23
610
原创 UnregisterManyAsync
方法是Orleans分布式系统中用于批量注销Grain激活的核心方法,实现了。:在集群成员变化时,给系统时间"稳定下来",避免基于过时的成员信息进行转发。等待200ms重试延迟。检查Grain所有权。并行等待所有转发完成。
2025-12-15 22:25:17
759
原创 Orleans Grain Directory 详细解析
Orleans 支持自定义基于 Redis 或其他外部存储的目录自定义分区策略与现有服务集成Grain Directory 是 Orleans 分布式架构的核心组件,它通过分布式目录服务位置透明性:客户端无需关心 Grain 位置动态扩展性:支持集群弹性伸缩高可用性:容忍 Silo 故障高性能:通过缓存和分区优化查找速度灵活扩展:支持自定义目录实现。
2025-12-12 22:55:12
511
原创 GrainType详解
本文通过 UserGrain 示例详细解析了 Orleans 中 GrainType 的作用机制。当客户端调用 UserGrain 时,系统基于 GrainType 自动选择放置策略(如 PreferLocalPlacement),确定目标 Silo 并激活 Grain。GrainType 实现了位置透明性,允许灵活配置不同放置策略(随机、哈希、无状态工作等)以满足各类场景需求,同时确保负载均衡和性能优化。整个过程展示了 GrainType 如何作为核心标识符,协调 Grain 定位、策略选择和目录管理的完
2025-12-10 22:17:39
745
原创 NSIS编写C/C++扩展
由于NSIS默认是不支持C++扩展的,因此可以采用动态加载dll的方式;编译位dll后在C侧动态加载dll。这样就可以充分利用C++的功能了。
2025-12-10 18:35:35
260
原创 OCCT画一个立方体
构造函数:只设置参数,(默认)调用Shell()/Solid():构建几何体 +Done()→调用Shape():检查IsDone(),如果false则调用Build()→Solid()→Done()→所以您的问题中的这三个函数确实都会设置myDone为true,确保后续的IsDone()调用返回正确状态。这是OCCT状态管理模式的核心机制。
2025-11-23 13:21:37
801
原创 如何让 C++ 无缝衔接 NumPy 的强大计算能力
本文介绍了使用Python C API和NumPy C API进行图像处理的优化方法。通过Py_Initialize()和np::initialize()初始化后,建议使用Py_intptr_t数组指定维度而非py::tuple,确保版本兼容性。示例代码展示了如何创建480x640x3的零值数组,并调用处理函数获取图像数据。这种方法避免了直接依赖Python版本特性,提供了更稳定的实现方案。
2025-11-14 21:40:13
154
原创 一次惊心动魄的现场死锁:串行方案终破循环等待
本文讨论了C++线程分离(detach)的风险及死锁问题。当线程独立运行循环时,资源可能被释放导致崩溃。通过案例分析发现,在DLL回调中重复加锁会引发死锁。文章提出队列+串行化解决方案:将回调事件放入队列,由独立线程处理,采用无锁队列算法避免竞争。同时展示了串行化机制的应用,既避免死锁又实现并行功能。虽然该无锁队列存在ABA问题,但发生概率极低。
2025-11-14 21:26:07
199
原创 Java和.NET的核心差异
历史背景:1995年,内存受限,网络计算技术架构:类文件格式,类加载器层次结构设计理念:灵活性优先,动态性,模块化生态系统:向后兼容,工具链,框架依赖。
2025-11-09 11:13:34
871
原创 Orleans GetGrain<T>(string) 底层原理
本文对比了Orleans异步执行模型与.NET中Task.Run/TaskFactory.StartNew的区别。Orleans采用单激活、回合制执行模型,建议使用自然的async/await方式编写逻辑。Task.Run和TaskFactory.StartNew虽然都能调度线程池任务,但后者默认使用当前调度器且需要手动Unwrap异步lambda。在Orleans中,随意使用这些方法会破坏回合调度的顺序性,导致状态安全风险。最佳实践是在Grain内优先使用async/await串行控制,仅在隔离CPU/阻
2025-10-31 22:21:32
299
原创 Orleans 的异步
本文对比了Orleans异步执行模型与.NET中Task.Run/TaskFactory.StartNew的区别。Orleans采用单激活、回合制执行模型,建议使用自然的async/await方式编写逻辑。Task.Run和TaskFactory.StartNew虽然都能调度线程池任务,但后者默认使用当前调度器且需要手动Unwrap异步lambda。在Orleans中,随意使用这些方法会破坏回合调度的顺序性,导致状态安全风险。最佳实践是在Grain内优先使用async/await串行控制,仅在隔离CPU/阻
2025-10-31 22:00:51
459
原创 wx.CallAfter 机制分析
机制通过事件循环和队列化处理的方式,提供了一种安全、高效的跨线程方法调用解决方案。它隐藏了线程同步的复杂性,让开发者能够专注于业务逻辑的实现,是 wxWidgets 框架中处理多线程 GUI 应用的重要工具。
2025-10-28 11:58:25
1056
原创 Orleans 自定义二进制协议在 TCP 上层实现的完整过程
Orleans 自定义二进制协议实现解析 协议架构 分层设计:上层应用协议(Grain路由/方法调度)+底层TCP传输层 消息结构:包含帧长度头、元数据头和消息体,支持压缩头信息 核心实现 消息序列化:采用二进制协议,小端序处理,包含消息ID、Grain地址等元数据 连接管理:支持连接池复用,自动维护连接健康状态 传输优化:禁用Nagle算法,支持KeepAlive和快速路径优化 处理流程 本地消息直接路由,跨节点消息通过TCP连接发送 自动处理目标节点失效情况
2025-10-27 19:58:09
622
原创 Orleans ILifecycleParticipant 生命周期管理详细分析
Orleans框架中的ILifecycleParticipant<TLifecycleObservable>接口是组件生命周期管理的核心机制。该接口定义了Participate方法,允许组件注册到生命周期观察者中,实现启动和关闭过程的标准化管理。相关接口包括ILifecycleObservable(定义订阅方法)和ILifecycleObserver(定义启动/停止回调)。框架通过ServiceLifecycleStage和GrainLifecycleStage枚举管理不同阶段的执行顺序,确保组
2025-10-26 13:29:37
672
原创 Orleans Grain Directory 系统综合分析文档
Orleans Grain目录系统架构分析摘要 本文档通过UML图示系统分析了Orleans分布式Grain目录的核心架构。主要包含: 核心接口层:定义IGrainDirectory、IGrainLocator等基础目录操作接口,支持注册、注销和查找功能 实现层: LocalGrainDirectory处理本地Grain目录管理 CachedGrainLocator提供带缓存的查找机制 分布式定位器(DhtGrainLocator)和客户端定位器(ClientGrainLocator)实现不同场景下的Gra
2025-10-25 23:18:58
468
原创 Orleans分布式系统架构详细分析
本文档结合Orleans源代码详细解释分布式系统架构图中的组件交互流程。该图展示了Orleans集群中两个节点(和)之间的通信机制,包括Grain定位、激活、消息传递等核心功能。服务发现:通过Directory服务实现Grain的定位智能放置:通过Placement服务决定Grain的激活位置可靠通信:通过Messaging服务处理跨节点通信透明调用:客户端无需关心Grain的具体位置这种设计实现了高可用性、可扩展性和透明性的分布式系统架构,是Orleans框架的核心优势所在。
2025-10-25 12:26:02
1054
原创 Orleans 客户端与 Silo 配置方式深度分析
客户端配置UseOrleans- Silo 服务器配置和UseOrleans是 Orleans 框架中两种不同的配置方式,分别对应客户端和服务器端的角色。它们在架构设计、服务注册、运行时行为等方面存在显著差异。正确选择和使用这两种配置方式对于构建高性能、可扩展的分布式应用程序至关重要。通过源码分析可以看出,Orleans 框架通过严格的互斥性检查和不同的服务注册机制,确保了配置的正确性和系统的稳定性。开发者应该根据应用的具体需求选择合适的配置方式。
2025-10-24 22:34:58
1010
原创 Orleans 配置方式时序图
这些时序图清晰地展示了两种配置方式在初始化、服务注册、运行时行为等方面的差异,帮助开发者更好地理解何时使用哪种配置方式。设置 HasOrleansClientBuilder = "true"设置 HasOrleansClientBuilder = "true"设置 HasOrleansSiloBuilder = "true"设置 HasOrleansSiloBuilder = "true"注册 ClientMessageCenter。注册 IClusterClient。
2025-10-24 22:33:08
576
原创 Orleans + Kubernetes + Istio 服务网格集成深度解析
本文分析了Orleans分布式系统与Kubernetes和Istio的集成机制。通过Orleans源码解析,展示了Kubernetes环境下状态外置存储、动态服务发现和网络通信的实现原理。Orleans与Kubernetes的集成主要通过环境变量配置、集群成员管理和Pod-Silo对应关系实现。Istio则通过ServiceEntry和VirtualService增强服务发现和流量管理能力。这种架构结合了Orleans的有状态计算能力、Kubernetes的容器编排优势以及Istio的服务网格功能,构建出高
2025-10-23 21:50:48
675
原创 SignalR 协议深度分析
SignalR底层通信协议解析:通过握手协议建立连接后,支持WebSocket、长轮询等多种传输方式。核心是JSON/MessagePack格式的RPC消息交换,包含方法调用、流处理等9种消息类型。系统通过连接状态管理、错误处理机制和批处理优化确保可靠性,同时提供身份验证和日志调试支持。该协议实现了C#与JavaScript的双向方法调用,广泛应用于实时聊天、游戏和物联网等场景。
2025-10-22 23:04:27
437
原创 SignalR 底层原理详解
SignalR 架构采用客户端-服务器实时通信模型,通过 WebSocket 作为首选传输协议,并支持长轮询等回退机制。其核心 RPC 调用机制实现了双向通信:客户端通过 JSON 或二进制协议序列化消息,服务器端 SignalR Hub 路由到对应方法处理。架构包含连接生命周期管理、分组功能、自动重连机制和安全认证,支持消息批处理和连接池优化性能。服务端提供详细的日志记录和监控能力,确保实时通信的可靠性和可维护性。
2025-10-22 23:03:27
420
原创 Orleans Grain生命周期与架构设计手册
本手册全面覆盖了Orleans Grain的生命周期管理、架构设计和高级特性,结合源码实现提供了专业的技术参考。
2025-10-22 17:32:22
927
原创 Orleans 与 Kubernetes 结合的价值分析
故障检测的互补性Orleans:应用级别、业务逻辑级别Kubernetes:基础设施级别、系统级别结合:全方位故障检测自动恢复的完整性Orleans:只能检测和标记Kubernetes:提供完整的自动恢复结合:完整的故障处理生命周期运维效率的提升Orleans:需要大量手动干预Kubernetes:提供完全自动化结合:大幅提升运维效率服务可用性的保障Orleans:检测延迟高,恢复需要手动Kubernetes:检测快速,恢复自动结合:更高的服务可用性。
2025-10-21 22:15:24
1052
原创 Orleans 与 Kubernetes 完整集成指南
本文深入解析 Orleans 有状态系统与 Kubernetes 无状态平台的融合机制,通过源码分析展示两者如何协同工作,实现高可用、可扩展的分布式系统。
2025-10-21 22:05:42
615
原创 Orleans 可观测性实战:基于源码的指标与分布式追踪(含 Prometheus 集成)
I整理了一份基于源码的 Orleans 可观测性与 Prometheus 集成说明文档(含指标体系、关键代码位置、Tracing、实践建议与 PromQL 示例)。
2025-10-20 21:34:26
749
原创 Orleans 在 Kubernetes 上的部署配置
Orleans 在 Kubernetes 上的部署与运行机制摘要 Orleans 通过 Microsoft.Orleans.Hosting.Kubernetes 包提供 Kubernetes 托管支持,主要特性包括: 自动配置:自动设置 Silo 名称、IP 地址和监听端口(默认 11111/30000),并从 Pod 标签/环境变量获取集群 ID 和服务 ID 集群管理:启动时检测无效 Pod,运行时仅选取少量 Silo 作为观察者监视 K8s 事件,减轻 API Server 压力 必要配置:要求 Po
2025-10-20 21:24:17
914
原创 NSIS 环境变量陷阱:一不小心 PATH 就消失了
本文介绍了在NSIS中添加系统环境变量Path时可能遇到的问题及解决方案。直接修改注册表可能导致原有Path内容被覆盖,特别是当Path长度超过NSIS字符串限制时。推荐使用EnVar插件来安全地操作环境变量:通过AddValue添加路径,DeleteValue删除路径,并支持检查路径是否存在。这种方法避免了直接操作注册表的风险,确保环境变量修改的可靠性。
2025-10-20 11:39:33
873
原创 Orleans 序列化、Actor Placement 和 Actor 调用详细分析
Orleans分布式架构核心技术解析 Orleans框架的核心技术包括序列化机制、Actor放置策略和调用机制。在序列化方面,采用多层次架构,支持默认二进制、JSON和自定义编解码器,通过IFieldCodec接口实现高效类型处理。Actor放置策略包含随机、基于哈希、本地优先等多种方式,由PlacementService根据策略选择最优Silo。调用机制建立完整的请求-响应流程,支持远程方法调用和异步处理。整体架构实现了分布式Actor模型的高效运行,通过序列化优化、智能放置和可靠调用机制确保系统性能和可
2025-10-19 22:25:52
349
原创 Orleans流背压控制机制深度分析
Orleans流背压控制是一个多层次的流量控制机制,旨在防止系统在高负载下出现内存溢出、消息丢失或性能急剧下降。该机制通过智能的缓存管理、压力检测和流量控制,确保分布式流处理系统的稳定性和可靠性。智能压力检测:基于缓存桶和游标监控优雅降级:背压期间保持系统稳定自动恢复:压力缓解后自动恢复正常消息保护:确保消息不丢失性能优化:通过批处理和对象池提升效率该机制为分布式流处理系统提供了可靠的流量控制基础,是构建高可用、高性能流处理应用的重要保障。
2025-10-19 22:05:30
456
百度地图隐藏无关区域
2017-10-11
在线预览完整实现.zip
2019-08-16
Builder模式
2017-09-03
原型模式代码
2017-09-11
抽象工厂模式代码
2017-08-31
mysql-connector-java-5.1.7-bin.jar
2017-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅