高并发解决方案之Actor——第一节
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发解决方案之Actor——第一节相关的知识,希望对你有一定的参考价值。
还在为状态的并发控制而痛苦吗?
还在因为数据库瓶颈而痛苦吗?
还在因为缓存的实时性控制而痛苦吗?
还在为了想分布式,但又不知道怎么下手而痛苦吗?
Actor欢迎你!!!
一、什么是Actor?
Actor提供了一个简单的方式来构建分布式大规模的应用程序,而不需要学习和应用复杂的并发性控制。
java和Scala的框架有Akka,.NET平台有Orleans,Akka.net,Service Fabric。以上几个框架都使用简单,易于上手,只需要稍微熟悉下就能开码。
Actor是分布式存在的内存状态及单线程计算单元,一个Id对应的Actor只会在集群种存在一个(有状态的 Actor在集群中一个Id只会存在一个实例,无状态的可配置为根据流量存在多个),使用者只需要通过Id就能随时访问不需要关注该Actor在集群的什么位置。单线程计算单元又保证了消息的顺序到达,不存在Actor内部状态竞用问题。
这个特性让你可以很容易的开发一套高并发分布式的高拓展系统,而且不用关注并发和分布式控制。
Actor是永久存在的,一段时间没有消息,Actor会失活,从内存中释放,但只要有消息就会马上激活,但激活过程对访问者透明。
这个特性能很好的利用系统资源,而且提供了很友好的拓展,开发者可以在Actor失活时做一些自定义操作(例如保存状态),在激活时也可以做自定义操作(例如加载状态)
Actor和DDD,CQRS,Event Soucing设计模型有天然的融合性,基于Actor可以很好的进行以上实践.
最近项目中使用Actor和DDD,CQRS,Event Soucing设计模型开发了一套实时交易系统(无事务无锁),团队计划开源底层框架。但在发布框架前先做一些预热,会先不定期的更新一些博文,从各个角度来介绍Actor及实践案例。
以上是关于高并发解决方案之Actor——第一节的主要内容,如果未能解决你的问题,请参考以下文章