【Orleans开胃菜系列2】连接Connect源码简易分析
【Orleans开胃菜系列2】连接Connect源码简易分析 简要说明 //连接代码。 using ( var client = await StartClientWithRetries ( ) ) { } 从方法看,只是一个简单允许重试的启动客户端。追踪进去会发现关于重试逻辑的实践,Socket编程的实践,基于内存的消息队列的实践,依赖注入。再看源码的基础上,最好能配合一些理论书籍来看。理论指导实践,实践反馈理论,才是技术成长的步骤。 这篇文章只涉及Connect所引用方法的部分说明,一步一步来加深理解。 本来我是打算把orleans研究透之后再来写一篇,但看了一周之后,发下connect里面调用了很多类,每个类又有很多方法,这样下去没有尽头,到最终估计什么也写不成。 分析源码本来就是循环渐进的过程,也是一个熟悉框架/原理/实践的过程。直接跳过这个步骤,必然损失良多。所以这部分就叫开胃菜吧。在查看connect过程,会越来越接触到各种知识。 本篇暂不涉及数据持久化,主要依赖.netcore内置方法操纵内存实现。 您会接触到的扩展知识 扩展知识之Timer&TimerQueue Timer Timer 在设置的间隔后生成事件,并提供生成重复事件的选项 TimerQueue 时间队列 扩展知识之信号量 SemaphoreSlim SemaphoreSlim 实现 //信号量