Fork me on GitHub

08 2018 档案

摘要:Supervision,字面意思是监督,是父Actor发现子Actor有异常发生后,对子Actor产用保种策略处理的机制,如果父Actor不处理,则往上传递。 阅读全文
posted @ 2018-08-31 09:39 桂素伟 阅读(1048) 评论(1) 推荐(0) 编辑
摘要:邮箱是Actor模型的一个重要组成部分,负责接收发过来的消息,并保存起来,等待Actor处理。邮箱中维护着两种队列,一种是存系统消息,另一个是存用户消息,系统省是指Started,Stoping,Stoped之类的,用户当然指我们自定义的Actor。 另外,我们可以通过实现IMailboxStatistics接口,来获取邮箱的状态变更,并且可以有多个IMailboxStatistics实现。 阅读全文
posted @ 2018-08-30 08:35 桂素伟 阅读(999) 评论(2) 推荐(0) 编辑
摘要:PID对象是代表Actor对象的进程,是能过Actor.Spawn(props)获取的;它有什么成员呢?既然代理Actor,首先有一个ID,标识自己是谁,Actor在Spawn时可以命名这个ID,否则会自动生成。还有三种向邮箱发消息的方法,Tell(),Request(),RequestAsync(),还有一个发送系统消息(Started,Stoping,Stoped等)方法SendSystemMessage(),还有一个停止的方法Stop()。 阅读全文
posted @ 2018-08-29 08:58 桂素伟 阅读(1049) 评论(0) 推荐(1) 编辑
摘要:Props是配置Actor和实例化Actor,那实例化后,就应该访问了,Props.Actor提供了Actor.Spawn(),Actor.SpawnPrefix(),Actor.SpawnNamed()三个方法,来获取Actor实例,需要注意的是,这些方法返回的并不是真正的Actor对象,而是一个ProgressID,一个代表Actor对象的进程ID,缩写PID。 阅读全文
posted @ 2018-08-28 09:05 桂素伟 阅读(952) 评论(0) 推荐(0) 编辑
摘要:在第一篇Proto.Actor博文中,HelloWorld的第一行真正代码是: var props = Actor.FromProducer(() => new HelloActor()); 这个返回的变量props就是一个Props的对象,它是负责创Actor实例,以及配置Actor实例,并且产Actor上下文Context(类似asp.net中的Context)。 阅读全文
posted @ 2018-08-27 09:05 桂素伟 阅读(2142) 评论(5) 推荐(2) 编辑
摘要:在微服务中,数据最终一致性的一个解决方案是通过有状态的Actor模型来达到,那什么是Actor模型呢? Actor是并行的计算模型,包含状态,行为,并且包含一个邮箱,来异步处理消息。 关于Actor的介绍可参考: https://www.jianshu.com/p/449850aa8e82 https://www.jianshu.com/p/db04cab86ab9 对于.net下的Actor模型有akka.net, Microsoft Orleans,在这里我们介绍的是另外一个Actor模型Proto.Actor。 阅读全文
posted @ 2018-08-26 19:11 桂素伟 阅读(1909) 评论(1) 推荐(3) 编辑