akka消息传递
消息传递
消息本身要求是什么?是否必须可以序列化?
消息传递根据传递的要求严格程序依次分为三类,
1.至多一次到达 至消息最多一次传递到目的端,消息可能会丢失,但不会重复
2.至少一次到达 潜在可能存在多次尝试在传送一次消息的时候,这种情况下,消息不会丢失,至少一次
3.有切只有一次到达 表述很明确,消息有且仅有一次被传递到目的端.
Akka采用第一种试,成本最低性能最好.使用它的fire-forget模式不需要保持发送消息的状态.
至少一次的模式,需要考虑到传输丢失,这需要发送端保持发送消息的状态,而且还需要接收端在接收到消息
之后发送确认.
精确一次的模式,这种成本最高,同时性能最差,为了保持至少一次,接收端也需要保持消息的状态,以避免重复.
保证到达还不能是领域层面的保证,因为业务不同,含义也会不同.
所以只有应用程序自己才知道什么是真正的到达,这样才能做到真正含义上的保证.
也正是这个原因,akka把这个保证的任务下放到应用程序自己,你可以控制数据是至少一次到达或精确一次.
akka消息传递的更多相关文章
- Akka Typed 官方文档之随手记
️ 引言 近两年,一直在折腾用FP与OO共存的编程语言Scala,采取以函数式编程为主的方式,结合TDD和BDD的手段,采用Domain Driven Design的方法学,去构造DDDD应用(Dom ...
- 使用Masstransit开发基于消息传递的分布式应用
Masstransit作为.Net平台下的一款优秀的开源产品却没有得到应有的关注,这段时间有机会阅读了Masstransit的源码,我觉得我有必要普及一下这个框架的使用. 值得一提的是Masstran ...
- 使用Akka.net开发第一个分布式应用
系列主题:基于消息的软件架构模型演变 既然这个系列的主题是"基于消息的架构模型演变",少不了说说Actor模型.Akka.net是一个基于Actor模型的分布式框架.如果你对分布式 ...
- [Scala] akka actor编程(一)
Akka基础 Akka笔记之Actor简介 Akka中的Actor遵循Actor模型.你可以把Actor当作是人.这些人不会亲自去和别人交谈.他们只通过邮件来交流. 1. 消息传递 2. 并发 3 ...
- AKKA(一)认知AKKA
Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用.它已经成功运用在电信行业.系统几乎不会宕机(高可用性 99.999999 ...
- 混合使用 ForkJoin, Akka, Future 实现一千万个不重复整数的排序
定位 本文适合于想要了解新语言 Scala 以及异步并发编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何使用 ForkJoin 框架.如何使用 Akka 构建并发程序.如何使用 ...
- akka cluster sharding source code 学习 (2/5) handle off
一旦 shard coordinator(相当于分布式系统的 zookeeper) 启动,它就会启动一个定时器,每隔一定的时间尝试平衡一下集群中各个节点的负载,平衡的办法是把那些负载较重的 actor ...
- Akka.NET
https://github.com/akkadotnet Akka是什么? 可扩展的分布式实时事务处理 编写正确的并发,容错和可扩展的应用程序是太难了.大多数时候,这是因为我们使用了错误的工具和错误 ...
- Scala的Actor模式 & Akka框架
今天学Spark的时候,看到Scala的actor模式是一个加分点.所以搜了一下,看了.主要参考下面两篇文章,还没有实验,有些地方领会的不深刻: http://nxlhero.blog.51cto.c ...
随机推荐
- 【转】Native Thread for Win32 C- Creating Processes(通俗易懂,非常好)
http://www.bogotobogo.com/cplusplus/multithreading_win32C.php To create a new process, we need to ca ...
- windows CMD命令大全及详细解释和语法
http://blog.csdn.net/god_7z1/article/details/51173067
- sqlalchemy 判断字段是否存在
1.low方法: (1)person_obj=session.query(Person).filter(Person.name=='jack') print (person_obj.count()) ...
- 【黑金原创教程】【TimeQuest】【第七章】供源时钟与其他
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- 【BZOJ3238】[Ahoi2013]差异 后缀数组+单调栈
[BZOJ3238][Ahoi2013]差异 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Ou ...
- [Java][Tomcat]在eclipse中运行tomcat报的一个错误
2008-11-9 16:27:59 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Se ...
- Xcode6 部署iphone4s出现的问题 No architectures to compile for
手贱升级到了Xcode6.结果一打开来就爆了各种错误换个警告; 各种百度和谷歌,终于搞定了,然后插上4S,结果还是报错. 解决: 1.找到 Build Settings 2.点击 Architectu ...
- iOS中navigationItem修改标题的颜色
UIColor * color = [UIColor redColor];//这里我们设置的是颜色,NSDictionary * dict = [NSDictionary dictionaryWith ...
- cmake The C compiler identification is unknown
本地安装有Visual Studio 2015 ,同时更新了update 3 执行上述报错 本地还安装Visual Studio 2017 使用cmake 没问题 分析: 在CMakeFiles/CM ...
- python中读取json文件报错,TypeError:the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
利用python中的json读取json文件时,因为错误使用了相应的方法导致报错:TypeError:the Json object must be str, bytes or bytearray,n ...