LINUX
文章平均质量分 77
helloworddm
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GrainType详解
本文通过 UserGrain 示例详细解析了 Orleans 中 GrainType 的作用机制。当客户端调用 UserGrain 时,系统基于 GrainType 自动选择放置策略(如 PreferLocalPlacement),确定目标 Silo 并激活 Grain。GrainType 实现了位置透明性,允许灵活配置不同放置策略(随机、哈希、无状态工作等)以满足各类场景需求,同时确保负载均衡和性能优化。整个过程展示了 GrainType 如何作为核心标识符,协调 Grain 定位、策略选择和目录管理的完原创 2025-12-10 22:17:39 · 745 阅读 · 0 评论 -
OCCT画一个立方体
构造函数:只设置参数,(默认)调用Shell()/Solid():构建几何体 +Done()→调用Shape():检查IsDone(),如果false则调用Build()→Solid()→Done()→所以您的问题中的这三个函数确实都会设置myDone为true,确保后续的IsDone()调用返回正确状态。这是OCCT状态管理模式的核心机制。原创 2025-11-23 13:21:37 · 802 阅读 · 0 评论 -
Orleans 自定义二进制协议在 TCP 上层实现的完整过程
Orleans 自定义二进制协议实现解析 协议架构 分层设计:上层应用协议(Grain路由/方法调度)+底层TCP传输层 消息结构:包含帧长度头、元数据头和消息体,支持压缩头信息 核心实现 消息序列化:采用二进制协议,小端序处理,包含消息ID、Grain地址等元数据 连接管理:支持连接池复用,自动维护连接健康状态 传输优化:禁用Nagle算法,支持KeepAlive和快速路径优化 处理流程 本地消息直接路由,跨节点消息通过TCP连接发送 自动处理目标节点失效情况原创 2025-10-27 19:58:09 · 622 阅读 · 0 评论 -
Orleans ILifecycleParticipant 生命周期管理详细分析
Orleans框架中的ILifecycleParticipant<TLifecycleObservable>接口是组件生命周期管理的核心机制。该接口定义了Participate方法,允许组件注册到生命周期观察者中,实现启动和关闭过程的标准化管理。相关接口包括ILifecycleObservable(定义订阅方法)和ILifecycleObserver(定义启动/停止回调)。框架通过ServiceLifecycleStage和GrainLifecycleStage枚举管理不同阶段的执行顺序,确保组原创 2025-10-26 13:29:37 · 672 阅读 · 0 评论 -
Orleans Grain Directory 系统综合分析文档
Orleans Grain目录系统架构分析摘要 本文档通过UML图示系统分析了Orleans分布式Grain目录的核心架构。主要包含: 核心接口层:定义IGrainDirectory、IGrainLocator等基础目录操作接口,支持注册、注销和查找功能 实现层: LocalGrainDirectory处理本地Grain目录管理 CachedGrainLocator提供带缓存的查找机制 分布式定位器(DhtGrainLocator)和客户端定位器(ClientGrainLocator)实现不同场景下的Gra原创 2025-10-25 23:18:58 · 470 阅读 · 0 评论 -
Orleans分布式系统架构详细分析
本文档结合Orleans源代码详细解释分布式系统架构图中的组件交互流程。该图展示了Orleans集群中两个节点(和)之间的通信机制,包括Grain定位、激活、消息传递等核心功能。服务发现:通过Directory服务实现Grain的定位智能放置:通过Placement服务决定Grain的激活位置可靠通信:通过Messaging服务处理跨节点通信透明调用:客户端无需关心Grain的具体位置这种设计实现了高可用性、可扩展性和透明性的分布式系统架构,是Orleans框架的核心优势所在。原创 2025-10-25 12:26:02 · 1054 阅读 · 0 评论 -
Orleans 客户端与 Silo 配置方式深度分析
客户端配置UseOrleans- Silo 服务器配置和UseOrleans是 Orleans 框架中两种不同的配置方式,分别对应客户端和服务器端的角色。它们在架构设计、服务注册、运行时行为等方面存在显著差异。正确选择和使用这两种配置方式对于构建高性能、可扩展的分布式应用程序至关重要。通过源码分析可以看出,Orleans 框架通过严格的互斥性检查和不同的服务注册机制,确保了配置的正确性和系统的稳定性。开发者应该根据应用的具体需求选择合适的配置方式。原创 2025-10-24 22:34:58 · 1012 阅读 · 0 评论 -
Orleans 配置方式时序图
这些时序图清晰地展示了两种配置方式在初始化、服务注册、运行时行为等方面的差异,帮助开发者更好地理解何时使用哪种配置方式。设置 HasOrleansClientBuilder = "true"设置 HasOrleansClientBuilder = "true"设置 HasOrleansSiloBuilder = "true"设置 HasOrleansSiloBuilder = "true"注册 ClientMessageCenter。注册 IClusterClient。原创 2025-10-24 22:33:08 · 577 阅读 · 0 评论 -
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 阅读 · 0 评论 -
SignalR 协议深度分析
SignalR底层通信协议解析:通过握手协议建立连接后,支持WebSocket、长轮询等多种传输方式。核心是JSON/MessagePack格式的RPC消息交换,包含方法调用、流处理等9种消息类型。系统通过连接状态管理、错误处理机制和批处理优化确保可靠性,同时提供身份验证和日志调试支持。该协议实现了C#与JavaScript的双向方法调用,广泛应用于实时聊天、游戏和物联网等场景。原创 2025-10-22 23:04:27 · 437 阅读 · 0 评论 -
SignalR 底层原理详解
SignalR 架构采用客户端-服务器实时通信模型,通过 WebSocket 作为首选传输协议,并支持长轮询等回退机制。其核心 RPC 调用机制实现了双向通信:客户端通过 JSON 或二进制协议序列化消息,服务器端 SignalR Hub 路由到对应方法处理。架构包含连接生命周期管理、分组功能、自动重连机制和安全认证,支持消息批处理和连接池优化性能。服务端提供详细的日志记录和监控能力,确保实时通信的可靠性和可维护性。原创 2025-10-22 23:03:27 · 421 阅读 · 0 评论 -
Orleans Grain生命周期与架构设计手册
本手册全面覆盖了Orleans Grain的生命周期管理、架构设计和高级特性,结合源码实现提供了专业的技术参考。原创 2025-10-22 17:32:22 · 927 阅读 · 0 评论 -
Orleans 与 Kubernetes 结合的价值分析
故障检测的互补性Orleans:应用级别、业务逻辑级别Kubernetes:基础设施级别、系统级别结合:全方位故障检测自动恢复的完整性Orleans:只能检测和标记Kubernetes:提供完整的自动恢复结合:完整的故障处理生命周期运维效率的提升Orleans:需要大量手动干预Kubernetes:提供完全自动化结合:大幅提升运维效率服务可用性的保障Orleans:检测延迟高,恢复需要手动Kubernetes:检测快速,恢复自动结合:更高的服务可用性。原创 2025-10-21 22:15:24 · 1052 阅读 · 0 评论 -
Orleans 可观测性实战:基于源码的指标与分布式追踪(含 Prometheus 集成)
I整理了一份基于源码的 Orleans 可观测性与 Prometheus 集成说明文档(含指标体系、关键代码位置、Tracing、实践建议与 PromQL 示例)。原创 2025-10-20 21:34:26 · 749 阅读 · 0 评论 -
Orleans 序列化、Actor Placement 和 Actor 调用详细分析
Orleans分布式架构核心技术解析 Orleans框架的核心技术包括序列化机制、Actor放置策略和调用机制。在序列化方面,采用多层次架构,支持默认二进制、JSON和自定义编解码器,通过IFieldCodec接口实现高效类型处理。Actor放置策略包含随机、基于哈希、本地优先等多种方式,由PlacementService根据策略选择最优Silo。调用机制建立完整的请求-响应流程,支持远程方法调用和异步处理。整体架构实现了分布式Actor模型的高效运行,通过序列化优化、智能放置和可靠调用机制确保系统性能和可原创 2025-10-19 22:25:52 · 349 阅读 · 0 评论 -
Orleans流背压控制机制深度分析
Orleans流背压控制是一个多层次的流量控制机制,旨在防止系统在高负载下出现内存溢出、消息丢失或性能急剧下降。该机制通过智能的缓存管理、压力检测和流量控制,确保分布式流处理系统的稳定性和可靠性。智能压力检测:基于缓存桶和游标监控优雅降级:背压期间保持系统稳定自动恢复:压力缓解后自动恢复正常消息保护:确保消息不丢失性能优化:通过批处理和对象池提升效率该机制为分布式流处理系统提供了可靠的流量控制基础,是构建高可用、高性能流处理应用的重要保障。原创 2025-10-19 22:05:30 · 459 阅读 · 0 评论 -
Orleans StreamInstruments 作用分析
StreamInstruments是Orleans流系统的性能监控组件,基于.NET的System.Diagnostics.Metrics框架实现。它主要提供两类核心指标:1)发布-订阅指标,包括生产者/消费者的注册/注销及总数统计;2)持久流指标,涵盖拉取代理数、消息处理量及缓存大小等。通过计数器(Counter)和可观察仪表(ObservableGauge)两种指标类型,实时监控流系统的生产者活跃度、消费者订阅状态、消息吞吐量等关键性能参数。该组件与.NET Metrics原生集成,为系统运维提供容量规原创 2025-10-18 22:48:39 · 906 阅读 · 0 评论 -
Orleans 流系统握手机制流程图
可靠性:多重容错机制确保消息不丢失一致性:通过令牌机制保证消息顺序性能:按需投递,避免重复处理可扩展性:支持多消费者、多流并发可观测性:完善的日志和监控这个握手机制是 Orleans 流系统可靠性的核心保障,通过精心设计的流程和异常处理,确保了分布式环境下的消息可靠投递。原创 2025-10-18 22:25:05 · 212 阅读 · 0 评论 -
Orleans 流系统握手机制时序图
以下时序图展示了 Orleans 流系统中握手机制的完整流程,包括正常情况和异常情况的处理。这个握手机制确保了 Orleans 流系统在复杂的分布式环境中能够可靠、高效地处理消息投递。原创 2025-10-18 22:23:18 · 336 阅读 · 0 评论 -
Orleans CodeGenerator
Orleans.CodeGenerator 技术概述 Orleans.CodeGenerator 是 Orleans 分布式框架的核心代码生成组件,它基于 Roslyn 编译器平台,在编译时自动生成序列化、代理调用等关键代码,以提升应用性能和类型安全。该组件采用模块化设计,包含序列化器生成器(SerializerGenerator)、拷贝器生成器(CopierGenerator)、代理生成器(ProxyGenerator)等多个专业子模块,支持带特性的类型、Grain接口、F#联合类型等多种目标。通过精细的原创 2025-10-12 11:42:39 · 686 阅读 · 0 评论 -
一台电脑玩集群---使用Orleans进行计算
文章摘要 Orleans是一个基于.NET的分布式虚拟Actor框架,采用Actor模型简化分布式编程。它通过Grain(虚拟Actor)实现单线程执行和消息通信,避免了锁竞争问题。Orleans集群由多个Silo节点组成,通过MembershipTable维护节点状态信息,包括Silo地址、状态、端口等关键数据。示例展示了如何配置两个Silo节点(不同端口)协同工作,并利用Redis实现集群管理和持久化。分布式计算案例演示了如何利用Orleans集群计算1到20亿的累加和,体现了其简化分布式开发的能力。原创 2025-10-08 14:51:22 · 67 阅读 · 0 评论 -
linux netstat 端口占用
话不多说,本文介绍Linux常规操作:查看端口占用进程,根据PID kill掉相关进程。另外补充:根据程序名查看进程PID。首先,两条命令,lsof命令和netstat命令。方式一:lsof命令1、查看占用端口进程的PID:lsof -i:{端口号}2、根据PID kill掉相关进程:kill -9 {PID}方式二:netstat命令1、查看占用端口进程的PID:netsta...原创 2019-05-14 15:37:12 · 446 阅读 · 0 评论 -
Android分段进度条(继承View实现)
titles.add("process1"); titles.add("process2"); titles.add("process3"); titles.add("process4"); Set indexSet = new HashSet(); indexSet.add(0); indexSet.add(1); nodeProgressView.show原创 2023-12-20 13:21:41 · 1026 阅读 · 0 评论 -
Windows创建服务(.NET8)
Windows服务是一种在Windows操作系统中运行的后台程序,用于在系统启动时启动并在系统关闭时关闭。这些服务可以是Microsoft自己的服务,也可以是第三方软件的服务。Windows服务通常用于在计算机上提供系统级别的功能和服务,例如打印服务、数据库服务、网络服务、系统安全服务等。通常,Windows服务可以在服务控制管理器(SCM)中进行配置和管理。ChatGPT最大的BOSS也是微软,只能说微软是真的强,虽错过了移动互联网,但凭借云计算和人工智能的布局,我想会再一次登顶科技圈。原创 2023-12-06 16:05:56 · 3071 阅读 · 0 评论 -
lldb安装以及调试Android程序
Android Studio自带lldb,安装过程不再赘述。lldb官网。原创 2023-09-19 11:40:01 · 1538 阅读 · 0 评论 -
Android 编译和使用libpng
使用上面的命令编译报错,从错误中推测应该需要zlib依赖,还需要下载zlib,由于Android自带zlib库,遂使用cmake进行。修改libpng中CmakeLists.txt中的add_library,修改为动态共享库。从上面的信息中可以看出libpng是一个历史悠久的处理png的库,需要zlib依赖。这个路径是clone下来的libpng中CmakeLists.txt所在的目录。更多内容,欢迎关注我的微信公众号: 半夏之夜的无情剑客。使用下面的命令可以直接编译为静态库。原创 2023-09-08 09:46:40 · 793 阅读 · 0 评论 -
深度学习书籍
TensorFlow深度学习——手把手教你掌握100个精彩案例》《NumPy攻略:Python科学计算与数据分析》《深度学习与图像识别:原理与实践》《python编程:从入门到实践》原创 2023-08-23 13:33:05 · 588 阅读 · 0 评论 -
主流语言运行系统命令
【代码】主流语言运行系统命令。原创 2023-02-02 16:52:34 · 253 阅读 · 0 评论 -
unidbg模拟执行so(1)
在 Android逆向之ARM64静态分析 对ARM64汇编进行了介绍,网传ARMV9要出来了,难道又要重新学习ARMV9? 在Frida高级篇-免ROOT使用Frida(不修改源代码) 中对elf文件进行了介绍,本文使用Unicorn模拟执行so来分析native方法。unidbgAllows you to emulate an Android native library, and an experimental iOS emulation....原创 2021-08-23 20:34:41 · 694 阅读 · 0 评论 -
JavaScript之QuickJs
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。JavaScript和Java的区别在我刚开始学JavaScript的时候,总感觉Java和JavaScript差不多,所以就没怎么关注JavaScript,直到工作后才知道,两者没有啥关系。有说有,那就是JavaScrip原创 2021-08-02 14:39:40 · 1929 阅读 · 0 评论 -
Fiddler Everywhere抓包之视频下载
曾几何时,看视频的时候都是可以下载的,不过不知道什么时候起,在线的视频不能下载了,很多精彩的内容想回味第二遍的时候居然要收费了,比如周星驰孟达的系列电影。本文通过Fiddler Everywhere来获取下载内容。主要是mp4文件和m3u8格式文件的下载。MP4MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999原创 2021-03-13 15:14:14 · 6719 阅读 · 3 评论 -
python源码安装(实现多个版本的python共存)
操作系统Ubuntu 16.04默认python 3的版本是3.5源码安装下载python3.9安装(1)解压文件 tar -xvf Python-3.9.1.tar.xztar命令使用可以通过tar --help 来查看。(2)进入解压后的文件夹cd Python-3.9.1(3)配置 配置文件 ./configure --prefix=/usr/local/python3 --with-ssl查看configure文件可以知道参数的作用:Installation原创 2021-01-07 18:50:02 · 578 阅读 · 0 评论 -
Java反射之实例构造
网上很多写反射的,但是对于内部类的反射涉及的非常少,尤其是这种私有的内部类。也许有人认为私有内部类是不能被外部实例化的,但是强大的反射功能突破了Java本身的一些规则。原创 2020-12-05 11:34:55 · 634 阅读 · 0 评论 -
Ubuntu系统安装&&解决Wi-Fi不可用
写系统安装的文章太多太多了,我为何还要写哪?因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一点不一样的。文章目录为和选择Ubuntu制作U盘启动盘U盘装机启动系统查看系统参数网络问题查询解决办法没有通用的方法查看无线网络的芯片驱动加载有问题?解决办法关于Linux写在最后公众号为和选择Ubuntu开源免费,功能强大,小巧精美。对于小巧的东西,个人都比较喜欢。还有友好的图形化界面,不要和win原创 2020-10-25 12:27:13 · 3231 阅读 · 3 评论 -
shellcode编写32位(Linux)
系统调用shellcode是一组可注入的指令,可以在被攻击的程序中运行。由于shellcode要直接操作寄存器和函数,所以必须是十六进制的形式。那么为什么要写shellcode呢?因为我们要让目标程序以不同于设计者预期的方式运行,而操作的程序的方法之一就是强制它产生系统调用(system,call,syscall)。通过系统调用,你可以直接访问系统内核。在Linux里有两个方法来执行系统调用,间接的方法是c函数包装(libc),直接的方法是用汇编指令(通过把适当的参数加载到寄存器,然后调用int 0x原创 2020-06-06 23:36:52 · 1703 阅读 · 0 评论 -
Unix攻击
后续文章会对内容展开,更多内肉可关注公众号:原创 2020-06-05 23:35:21 · 388 阅读 · 0 评论 -
Android启动流程
“当按下手机开机键的时候,究竟发生了什么”总览Android的启动流程是一个非常复杂的流程,如果有什么遗漏,还望多多指教。这里简单说下基本的流程:(1)当按下手机的开机键的时候,引导芯片代码从与预定以(固化在ROM)的地方开始执行。加载Bootloader到RAM中执行。(2)BootLoader主要用来拉起操作系统OS。(2)Linux内核启动,寻找init.rc文件。(3)启动init进程,开启属性服务,通过init进程启动Zygote进程。(4)通过Zygote进程启动SystemSer原创 2020-05-23 18:24:38 · 377 阅读 · 0 评论 -
Java 网络进程
``` if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())){ Log.d(LOGTAG, " because user is removed"); try { /// Process p = Runtime.getRuntim...原创 2020-04-07 14:13:16 · 422 阅读 · 0 评论 -
Kali Linux root账号
最新版本的Kali Linux的账号名和密码都是Kali.如何切换root如果想切换为root,步骤如下:设置密码sudo passwd root切换身份su图示过程如下图所示:原创 2020-02-27 23:35:33 · 8889 阅读 · 0 评论 -
常见应用层协议端口号
常见协议和端口号原创 2020-02-24 12:47:19 · 2589 阅读 · 0 评论
分享