akka学习笔记(1)

来源:互联网 发布:mac os x 10.10 ios 编辑:程序博客网 时间:2024/05/17 00:10
什么是akka?

可扩展的实时的会话处理
我们相信编写正确的具有并发、容错以及可扩展特性的应用程序是非常困难的。大多数时候是因为我们使用了错误的工具和抽象的错误层次。Akka正是为了改变这一现状而诞生的。使用Actor模型,我们提升了抽象的层次,并且提供了一个更好的平台来构建正确的、并发的、以及可扩展的应用程序。为了容错,我们采用了电信行业已经使用的,用来构建具有自我恢复的应用程序、永远不宕机的系统时所采用的模型——“Let it crash”。Actors也提供了对用户透明的分布式的抽象以及确实可扩展和容错程序的基础。

Akka是开源的,且使用Apache 2的lisense。

可以从http://akka.io/downloads/下载akka的最新版本。

请注意所有的代码实例都是编译之后的,如果你想得到源码,请看https://github.com/akka/akka/tree/v2.2.4/akka-docs/rst


akka实现了很多优点

Actors
Actors可以给你:
  • 简单、高层次的并发和并行的抽象
  • 异步的、非阻塞的、高性能的事件驱动的编程模型
  • 非常轻量级的事件驱动的处理(每GB内存大约可以产生270万的actor)

容错
  • 具有“Let it crash”语义的管理层次结构
  • 管理层次结构可以横跨多个JVM来提供真正的容错系统。
  • 容错系统具有自我恢复以及永不宕机的优秀特色

位置透明
akka中的一切都是为在一个分布式的环境中工作而设计的。actors之间的所有交互都是使用纯粹的信息传递并且所有的东西都是异步的。

Transactors
Transactors将actors和软件可交互内存(software transactional memory)结合起来,成为可交互actors。他使得你可以将原子信息流和自动的重试和回滚组合起来。

scala和java api

akka有scala和java的文档,分别是http://doc.akka.io/docs/akka/2.2.4/scala.html#scala-api、
http://doc.akka.io/docs/akka/2.2.4/java.html#java-api

可以两种方式使用akka

  • 作为一个类库:如果是web应用,将akka放到WEB-INF/lib下面或者将其作为一个正常的jar放到classpath里。
  • 作为一个微核:一个独立的kernal,你可以将你的应用放到这个kernal里面。

cloudy akka发生了什么?

早一些的商业akka版本即为cloudy akka。这个商业版包括两部分:
  • 为akka提供集群支持
  • 监控和管理(以前叫atmos)
cloudy akka已经不再继续开发,集群支持功能已经被移到了akka的开原版本(akka版本大于等于2.1),监控管理功能已经被重命名为Typesafe Console,他现在是Typesafe stack商业发行版的一部分,后面会详细介绍。

Typesafe Stack

akka现在是typesafe stack的一部分(http://typesafe.com/stack?_ga=1.178957796.1741303676.1420440023

typesafe stack是一个先进的软件平台,使得开发者更加简单的开发易于扩展的应用程序。他将scala编程语言、akka、”Play!“web框架以及强大的开发者工具组合到一个简单的包之中,与当前的java框架无缝衔接。

typesafe stack完全是开源的。

Typesafe Console

在typesafe stack之上,我们也有一个商业产品,叫做Typesafe Console,提供以下功能特色:

  • 友好的web界面,能够实时地监控系统
  • 通过dashboard、JMX、和REST来进行管理
  • 以整洁的风格(dapper-style)在组件之间、远程节点之间追踪信息
  • 实时统计
  • 非常低的监控开销
  • 将统计信息、日志信息整合到一个单一结点上
  • 为以后的处理存储统计数据
  • 升级是可配置的和滚动的
0 0