企业网站的职能主要有建行

张小明 2025/12/23 4:53:29
企业网站的职能主要有,建行,昆明优化官网服务,温州网站优化关键词LocalGrainDirectory 详解 LocalGrainDirectory是Orleans分布式系统中负责本地Grain目录管理的核心组件#xff0c;它实现了分布式哈希表(DHT)风格的Grain定位服务。 类图 #mermaid-svg-Y9v3byHPfAfBrOZm {font-family:trebuchet ms,verdana,arial,sans-serif;fon…LocalGrainDirectory 详解LocalGrainDirectory是Orleans分布式系统中负责本地Grain目录管理的核心组件它实现了分布式哈希表(DHT)风格的Grain定位服务。类图LocalGrainDirectory-ILogger log-SiloAddress? seed-ISiloStatusOracle siloStatusOracle-IInternalGrainFactory grainFactory-object writeLock-IServiceProvider _serviceProvider-DirectoryMembership directoryMembership-bool Running-Catalog? _catalogSiloAddress MyAddressIGrainDirectoryCache DirectoryCacheLocalGrainDirectoryPartition DirectoryPartitionRemoteGrainDirectory RemoteGrainDirectoryRemoteGrainDirectory CacheValidatorGrainDirectoryHandoffManager HandoffManagerStart() : voidStopAsync() : TaskSiloStatusChangeNotification(SiloAddress, SiloStatus) : voidRegisterAsync(GrainAddress, int) : TaskAddressAndTagUnregisterAsync(GrainAddress, UnregistrationCause, int) : TaskLookupAsync(GrainId, int) : TaskAddressAndTagLocalLookup(GrainId, out AddressAndTag) : boolCalculateGrainDirectoryPartition(GrainId)«interface»ILocalGrainDirectoryStart() : voidStopAsync() : TaskRegisterAsync(GrainAddress, int) : TaskAddressAndTagUnregisterAsync(GrainAddress, UnregistrationCause, int) : TaskLookupAsync(GrainId, int) : TaskAddressAndTagLocalLookup(GrainId, out AddressAndTag) : bool«interface»ISiloStatusListenerSiloStatusChangeNotification(SiloAddress, SiloStatus) : void«interface»ILifecycleParticipantISiloLifecycleParticipate(ISiloLifecycle) : voidLocalGrainDirectoryPartitionAddSingleActivation(GrainAddress, GrainAddress?) : AddressAndTagRemoveActivation(GrainId, ActivationId, UnregistrationCause) : voidLookUpActivation(GrainId) : AddressAndTagGetItems()«interface»IGrainDirectoryCacheAddOrUpdate(GrainAddress, int) : voidLookUp(GrainId, out GrainAddress) : boolRemove(GrainId) : boolKeyValues IEnumerable~(GrainAddress, int)协作图ClientLocalGrainDirectoryLocalGrainDirectoryPartitionDirectoryCacheRemoteGrainDirectorySiloStatusOracleGrain注册流程RegisterAsync(grainAddress, hopCount)CalculateGrainDirectoryPartition(grainId)AddSingleActivation(address, previousAddress)AddressAndTag resultAddOrUpdate(result.Address, result.VersionTag)返回注册结果RegisterAsync(address, previousAddress, hopCount1)AddressAndTag resultAddOrUpdate(result.Address, result.VersionTag)返回注册结果alt[当前Silo是Owner][需要转发到其他Silo]Grain查找流程LookupAsync(grainId, hopCount)LookUp(grainId, out address)返回缓存地址返回查找结果CalculateGrainDirectoryPartition(grainId)LookUpActivation(grainId)AddressAndTag result返回查找结果LookupAsync(grainId, hopCount1)AddressAndTag resultAddOrUpdate(result.Address, result.VersionTag)返回查找结果alt[当前Silo是Owner][需要转发到其他Silo]alt[缓存命中且Silo有效][缓存未命中或无效]Silo状态变化处理SiloStatusChangeNotification(updatedSilo, status)AddServer(updatedSilo)AdjustLocalDirectory(silo, dead: false)AdjustLocalCache(silo, dead: false)RemoveServer(updatedSilo, status)AdjustLocalDirectory(silo, dead: true)AdjustLocalCache(silo, dead: true)alt[Silo变为Active状态][Silo变为Terminating状态]ClientLocalGrainDirectoryLocalGrainDirectoryPartitionDirectoryCacheRemoteGrainDirectorySiloStatusOracle核心功能详解1. 分布式哈希表(DHT)分区算法LocalGrainDirectory使用一致性哈希算法来确定每个Grain的目录分区所有者publicSiloAddress?CalculateGrainDirectoryPartition(GrainIdgrainId){inthashunchecked((int)grainId.GetUniformHashCode());// 在排序的Silo列表中查找第一个哈希值小于等于目标哈希的Silofor(varindexexisting.MembershipRingList.Count-1;index0;--index){varitemexisting.MembershipRingList[index];if(IsSiloNextInTheRing(item,hash,excludeMySelf)){returnitem;}}}2. 请求转发机制当当前Silo不是Grain的目录所有者时会进行请求转发publicSiloAddress?CheckIfShouldForward(GrainIdgrainId,inthopCount,stringoperationDescription){varownerCalculateGrainDirectoryPartition(grainId);if(ownerisnull||owner.Equals(MyAddress))returnnull;if(hopCountHOP_LIMIT)// 跳数限制为6thrownewOrleansException($Hop limit reached);returnowner;// 转发到目标Silo}3. 缓存管理LocalGrainDirectory维护本地缓存以提高查找性能publicboolLocalLookup(GrainIdgrain,outAddressAndTagresult){// 首先检查缓存varaddressGetLocalCacheData(grain);if(address!default){resultnew(address,0);returntrue;}// 如果是本地分区检查本地目录if(silo.Equals(MyAddress)){resultGetLocalDirectoryData(grain);returnresult.Address!null;}returnfalse;}4. 集群成员变化处理LocalGrainDirectory监听Silo状态变化并相应调整目录和缓存publicvoidSiloStatusChangeNotification(SiloAddressupdatedSilo,SiloStatusstatus){if(status.IsTerminating()){CacheValidator.WorkItemGroup.QueueAction(()RemoveServer(updatedSilo,status));}elseif(statusSiloStatus.Active){CacheValidator.WorkItemGroup.QueueAction(()AddServer(updatedSilo));}}关键设计特点线程安全使用writeLock对象确保目录操作的线程安全容错性支持Silo故障时的目录分区重新分配性能优化本地缓存减少远程查找开销可扩展性支持动态集群成员变化一致性确保目录信息在集群中的一致性LocalGrainDirectory是Orleans分布式系统的核心组件它通过分布式哈希表算法实现了高效的Grain定位服务为整个系统的可扩展性和可靠性提供了基础支撑。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

淘宝客 备案 网站名称企业网站定制收费标准

第一章:环境Agent监测频率的核心挑战在现代分布式系统中,环境Agent作为数据采集与状态监控的关键组件,其监测频率的设定直接影响系统的性能、资源消耗与响应实时性。过高频率可能导致资源过载,而过低则可能遗漏关键事件&#xff0…

张小明 2025/12/22 9:58:17 网站建设

电商网站购物流程南阳建设局网站

Clipper2多边形处理技术深度解析:从基础概念到高级应用实践 【免费下载链接】Clipper2 Polygon Clipping and Offsetting - C, C# and Delphi 项目地址: https://gitcode.com/gh_mirrors/cl/Clipper2 在计算机图形学和几何计算领域,多边形裁剪与偏…

张小明 2025/12/22 9:58:21 网站建设

什么网站可以设计接单做广州网站建设开发团队

一:当代码开始“自省”:AI在IT领域的渗透现状 清晨,硅谷某科技公司的开发团队正在使用AI辅助编程工具。只需用自然语言描述需求,系统便能生成基础代码框架,自动检测漏洞,甚至优化算法效率。这一幕正日益普遍…

张小明 2025/12/22 9:58:21 网站建设

网站建设最好用什么语言虚拟网站建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个AI辅助工具,能够自动分析MySQL连接错误is not allowed to connect to this MySQL server。工具应能识别常见原因(如权限问题、防火墙设置、绑定地址…

张小明 2025/12/22 9:58:20 网站建设

南昌网站设计哪个最好如何查询网站接入信息

还在为Linux系统中查找特定文件而烦恼吗?每次在终端中输入复杂的find命令,却难以快速定位目标文件?FSearch快速文件搜索工具正是为您量身打造的完美解决方案!这款基于GTK3的轻量级工具,让您在Linux桌面上享受前所未有的…

张小明 2025/12/22 9:58:22 网站建设

网站优化的基本思想阿里云服务器618

iPad越狱教程终极指南:使用palera1n工具的详细步骤 【免费下载链接】palera1n Jailbreak for arm64 devices on iOS 15.0 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n iPad越狱一直是苹果用户关注的热门话题,而palera1n工具作为目…

张小明 2025/12/22 10:05:49 网站建设