您的位置:首页 > 其它

akka应用背景介绍

2016-08-19 16:48 169 查看
事务机制由来

大多数互联网公司软件,如twitter或facebook,对事务要求低。而涉及到钱等重要交易都需要事务。也即,非结构化的数据一般都没有事务要求,结构化聚合的数据才有事务要求。

actor模型

actor模型内部的状态由自己的行为维护,外部线程不能直接调用对象的行为,必须通过消息才能激发行为,这样就能保证actor内部的数据只有自己能修改。

akka的应用背景

写并发程序很难,程序员不得不处理线程、锁和竞态条件等。这个过程很容器出错,而且会导致代码难以阅读、测试和维护。所以,很多人不倾向于使用多线程编程。取而代之的是,他们使用单线程进程(译者注:只含有一个线程的进程),依赖外部服务(如数据库、队列等)处理所需的并发或异步操作。虽然这种方法在有些情况下是可行的,但还有很多其他情况不能奏效。很多实时系统——例如交易或银行业务应用,或实时游戏——等待一个单线程进程完成就太奢侈了(他们需要立即应答!)。其他的一些对于计算或资源要求非常高的系统,如果在程序中不引入并行机制就会耗时很久(有些情况下可以达到几个小时或数天)。常用的一种单线程方法(例如,在
   Node.js里广泛应用)是使用基于事件的、非阻塞模式(Event-Based, NON-Blocking Paradigm,其中Paradigm也有译作成例)。虽然这种方法可以避免上下文切换、锁和阻塞,的确能提高性能,但还是不能解决并发使用多个处理器(需要启动和协调多个独立的处理器)的问题。那么,这是不是意味着为了构建一个并发程序,除了深入到线程、锁和竞态条件之外没有别的选择呢?Akka框架,它为我们提供了一种选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: