概述
并发分布式框架:作者号称可以在jvm用来构建高并发,分布式,消息驱动式的程序。依据当前我使用的范围还只局限于并发与任务调度的使用层面上, 在这两方面的表现还是很令我满意的。
当前自己所熟悉的互联网开发模式有
------------------------------------------------------------
借组于队列,异步处理问题,处理不需要及时作出响应的任务
使用缓存,减少对常用数据的查询
使用内存数据库 加快查询某些需要快速查询响应的速度
数据库,主从模式,读写分离,分库分表
并发处理任务
------------------------------------------------------------
akka 框架可以用到的应用场景就是在队列和并发任务的处理上以及分布式应用
akka官网:http://akka.io
特点
- 简单--实现actor模型,不需要关心lock,thread,io等,你只需要把精力集中在消息在你系统中得流动过程
- 稳定--号称一年只有3s的宕机时间
- 高性能--号称 50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors per GB of heap
- 容错性--不保证所有的消息都被正确的发送与处理
消息驱动
所谓的消息驱动就是:actor表现的行为是和接收到消息内容有关,反过来我们可以这样理解,是消息在驱动actor的表现行为,这是我个人的理解,以这种理解来观看我们整个系统的运行 我们要做某件事情,那我们只需要给某个actor发送一个消息,actor就会明白我们要做什么事,然后这个actor可能还需要其它actor的配合,这样就会在actor之间形成消息的流动。所以就有了像上面 说的那样,在你构建并发系统时,你不在关心lock,关心thread等很麻烦有低级的这些原语。
actor 模型
可以把actor模型想象是一群人,每个actor代表一个人。如果利用actor来解决问题进行建模时,你需要的就是怎么组织这么多人(actor)完成一个任务, 比如创立一个学校,你得有校长和老师,老师又要分为语文数学音乐老师等。利用actor来建模时,也就是这样,有的actor要充当校长,管理这些教师,有的actor要 充当教师的角色,做好自己的责任。