akka应用背景介绍
2016-08-19 16:48
169 查看
事务机制由来
大多数互联网公司软件,如twitter或facebook,对事务要求低。而涉及到钱等重要交易都需要事务。也即,非结构化的数据一般都没有事务要求,结构化聚合的数据才有事务要求。
actor模型
actor模型内部的状态由自己的行为维护,外部线程不能直接调用对象的行为,必须通过消息才能激发行为,这样就能保证actor内部的数据只有自己能修改。
akka的应用背景
写并发程序很难,程序员不得不处理线程、锁和竞态条件等。这个过程很容器出错,而且会导致代码难以阅读、测试和维护。所以,很多人不倾向于使用多线程编程。取而代之的是,他们使用单线程进程(译者注:只含有一个线程的进程),依赖外部服务(如数据库、队列等)处理所需的并发或异步操作。虽然这种方法在有些情况下是可行的,但还有很多其他情况不能奏效。很多实时系统——例如交易或银行业务应用,或实时游戏——等待一个单线程进程完成就太奢侈了(他们需要立即应答!)。其他的一些对于计算或资源要求非常高的系统,如果在程序中不引入并行机制就会耗时很久(有些情况下可以达到几个小时或数天)。常用的一种单线程方法(例如,在
Node.js里广泛应用)是使用基于事件的、非阻塞模式(Event-Based, NON-Blocking Paradigm,其中Paradigm也有译作成例)。虽然这种方法可以避免上下文切换、锁和阻塞,的确能提高性能,但还是不能解决并发使用多个处理器(需要启动和协调多个独立的处理器)的问题。那么,这是不是意味着为了构建一个并发程序,除了深入到线程、锁和竞态条件之外没有别的选择呢?Akka框架,它为我们提供了一种选择。
大多数互联网公司软件,如twitter或facebook,对事务要求低。而涉及到钱等重要交易都需要事务。也即,非结构化的数据一般都没有事务要求,结构化聚合的数据才有事务要求。
actor模型
actor模型内部的状态由自己的行为维护,外部线程不能直接调用对象的行为,必须通过消息才能激发行为,这样就能保证actor内部的数据只有自己能修改。
akka的应用背景
写并发程序很难,程序员不得不处理线程、锁和竞态条件等。这个过程很容器出错,而且会导致代码难以阅读、测试和维护。所以,很多人不倾向于使用多线程编程。取而代之的是,他们使用单线程进程(译者注:只含有一个线程的进程),依赖外部服务(如数据库、队列等)处理所需的并发或异步操作。虽然这种方法在有些情况下是可行的,但还有很多其他情况不能奏效。很多实时系统——例如交易或银行业务应用,或实时游戏——等待一个单线程进程完成就太奢侈了(他们需要立即应答!)。其他的一些对于计算或资源要求非常高的系统,如果在程序中不引入并行机制就会耗时很久(有些情况下可以达到几个小时或数天)。常用的一种单线程方法(例如,在
Node.js里广泛应用)是使用基于事件的、非阻塞模式(Event-Based, NON-Blocking Paradigm,其中Paradigm也有译作成例)。虽然这种方法可以避免上下文切换、锁和阻塞,的确能提高性能,但还是不能解决并发使用多个处理器(需要启动和协调多个独立的处理器)的问题。那么,这是不是意味着为了构建一个并发程序,除了深入到线程、锁和竞态条件之外没有别的选择呢?Akka框架,它为我们提供了一种选择。
相关文章推荐
- 什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料中的文档材料)
- 开源一站式移动应用生成平台Jingub系列(0):背景资料介绍
- [Java][转]Memcache —— 简单介绍:背景、原理、应用
- 2005,Linux企业应用走向成功-OSDL专题介绍
- Jakarta Struts应用框架介绍
- 应用Rational 工具简化基于J2EE的项目:第一部分 介绍
- 正则表达式的原理和介绍,应用(概念篇)
- WAP网关服务器应用介绍
- Rational中DataPool的介绍与实际应用-续(1)
- 蓝牙基本介绍及相关应用
- 在PHP中应用MVC的介绍(二)
- Rational中DataPool的介绍与实际应用
- UCML--编译型应用框架快速开发工具体系介绍
- Jakarta Struts应用框架介绍(转帖)
- 容忍入侵在CA中的应用介绍
- 应用Rational 工具简化基于J2EE的项目:第一部分 介绍
- Rational中DataPool的介绍与实际应用-续(4)
- CLR 调试接口的架构与应用 [1] 背景资料
- 端到端J2ME应用开发实例——介绍Smart Ticket
- PHP中的SQlite数据库应用介绍 php sqlite数据库