在微服务中,数据最终一致性的一个解决方案是通过有状态的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 【官网http://proto.actor】

这次要说一下Proto.Actor,关于Proto.Actor的资料较少,这里有一篇可以作简单入门

https://studygolang.com/p/protoactor

为了便于开码友们理解,这个系列就以代码为主来学习,通过代码来“意会”Proto.Actor,所以这个系列叫《通过C#学Proto.Actor模型》,并且这些例子都是参考官方案例进行改造的最基础代码;从易到难,从单一技术点到组合技术点,再从伪代码到Demo代码,一步一步来。就像我一样,前期可能会一头雾水,不过没关系,坚持走下去,在某个转弯处,肯定会柳暗花明,豁然开朗。

Proto.Actor特点是:异步,分布式,高并发,高容错性,跨语言调用

 系统博客Github地址:https://github.com/axzxs2001/ProtoActorSample

 通过C#学Proto.Actor模型系列:

1. 《通过C#学Proto.Actor模型》之 HelloWorld
  https://www.cnblogs.com/axzxs2001/p/9538313.html
2. 《通过C#学Proto.Actor模型》之Prpos 
  https://www.cnblogs.com/axzxs2001/p/9540265.html
3. 《通过C#学Proto.Actor模型》之Spawning
  https://www.cnblogs.com/axzxs2001/p/9546030.html
4. 《通过C#学Proto.Actor模型》之PID
  https://www.cnblogs.com/axzxs2001/p/9552186.html
5. 《通过C#学Proto.Actor模型》之Mailbox
  https://www.cnblogs.com/axzxs2001/p/9558040.html
6. 《通过C#学Proto.Actor模型》之Supervision
  https://www.cnblogs.com/axzxs2001/p/9564010.html
7. 《通过C#学Proto.Actor模型》之Behaviors
  https://www.cnblogs.com/axzxs2001/p/9569146.html
8. 《通过C#学Proto.Actor模型》之Persistence
  https://www.cnblogs.com/axzxs2001/p/9569899.html
9. 《通过C#学Proto.Actor模型》之Remote
  https://www.cnblogs.com/axzxs2001/p/9570640.html

 请注意代码注释,不可忽略哦!

《通过C#学Proto.Actor模型》之 HelloWorld:

代码:https://github.com/axzxs2001/ProtoActorSample/tree/master/ProtoActorSample/P001_HelloWorld

引用NuGet:Proto.Actor

可能你觉得就是一个控制台输出个Hello World,转了这么多弯;不要小看它,这可是一个支持分布式的Hello World,来看看后面经历了或可能经历了什么?

注意上图中的Event,我们在后面了解中会遇到他们。可运行上面的代码,并调试,会发现ReceiveAsync会在pid.Tell后被调用两次,第一次Context.Message就是Started对象,第二次才是Hello对象。

不防在Main中调用一下pid.Stop(),跟踪一下ReceiveAsync会有什么发现……

相关文章:

  • 下一代的 Actor 模型框架 Proto Actor

  • 使用DDD、事件风暴和Actor来设计反应式系统

  • Akka系列---什么是Actor

  • 视频游戏《光环4》的Actor模型设计和实现

  • .NET的Actor模型:Orleans

原文链接:https://www.cnblogs.com/axzxs2001/p/9538313.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

《通过C#学Proto.Actor模型》之 HelloWorld相关推荐

  1. 下一代的 Actor 模型框架 Proto Actor

    ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能.在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 ...

  2. 漫谈并发编程:Actor模型

    0x00 前言 一般来说有两种策略用来在并发线程中进行通信:共享数据和消息传递.熟悉c和java并发编程的都会比较熟悉共享数据的策略,比如java程序员就会常用到java.util.concurren ...

  3. actor 模型 锁 java_漫谈并发编程:Actor模型

    0x00 前言 一般来说有两种策略用来在并发线程中进行通信:共享数据和消息传递.熟悉c和java并发编程的都会比较熟悉共享数据的策略,比如java程序员就会常用到 java.util.concurre ...

  4. actor 模型原理 (一)

    actor模型很牛逼,很流行,但是我不会,妈的,国内搜出来的讲解actor的都看不太懂,讲不太清,下面哥们就翻译一下老外的文章,以粗浅的方式体会一下到底什么是actor模型? 多线程开发要处理并发,锁 ...

  5. actor 模型原理 (二)

    现在开始研究一下akka的actor模型是怎么实现的: 老外写了一个程序说明actor的工作机制,下图就是学生给老师发邮件的具体示意图,那么1-6一共6个步骤 1.学生创建actor system , ...

  6. 用JAVA实现基于Actor模型的RPC

    基于Actor模型的RPC ReleaseNote 使用protostuff序列化(.proto文件编写恶心,与Protocol Buffer性能几乎接近) 使用Netty进行通讯(同节点RPC不走网 ...

  7. 深入解析actor 模型(一): actor 介绍及在游戏行业应用

    1 介绍 1.1 什么是actor 对于刚接触actor的我,第一感觉就像redis一样,每个actor就是一个redis 实例,都有自己消息队列,actor相互通信通过将消息发给对方,消息发送进对方 ...

  8. 在.NET中实现Actor模型的不同方式

    上周,<实现领域驱动设计>(Implementing Domain-Driven Design)一书的作者Vaughn Vernon,发布了Dotsero,这是一个使用C#编写的.基于.N ...

  9. java actor模型实例,详解Theron通过Actor模型解决C++并发编程的一种思维

    现今,单台机器拥有多个独立的计算单元已经太常见了,这点在服务器的处理器上表现尤为明显,据AMD的一张2012-2013服务器路线图显示,服务器处理器的核心数将在2013年达到20颗之多,合理的利用CP ...

最新文章

  1. 摩尔投票法(力扣- -229. 求众数 II)
  2. 【渝粤教育】国家开放大学2018年秋季 2405T现代汉语(1) 参考试题
  3. 【转】图文详解YUV420数据格式
  4. 对HashMap对象的键值对内容进行排序
  5. 【Flink】Flink 1.9 升级 到 flink 1.12.4 报错 flink.client.cli.AbstractCustomCommandLine <init>
  6. LVS-NAT工作模式的实现
  7. 从大整数乘法的实现到 Karatsuba 快速算法
  8. [linux]linux IO 5种方式
  9. InnoDB缓存相关优化
  10. QML Text 文字元素
  11. java宠物商店_Java实现宠物商店管理系统
  12. 液晶屏LED背光板可以分为几类?
  13. 定时备份网站数据文件到阿里网盘
  14. c/c++原子锁应用(跨平台)
  15. 苹果手机的定向广告时代告终
  16. Springboot +AOP日志系统
  17. 《山海经——五藏山经》
  18. 网络信息安全:消息认证
  19. 为什么收藏了这么多3D游戏建模教程,还是没达到可以就业接包的水准?
  20. 诺基亚NoKia 8250维修笔记

热门文章

  1. 利用 Node.js 实现 SAP Hana 数据库编程接口
  2. java多线程编程——锁优化
  3. window 效率神器:Wox
  4. openstack horizon国际化分析
  5. Stopwatch类学习
  6. Android开发入门之学习笔记(三):程序窗口的布局
  7. 孟岩谈Erlang:并行计算和云计算
  8. Dapr + .NET 实战(十三)跨语言开发
  9. Blazor Day
  10. EF Core事务提交,分布式事务