上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

【项目实战】分布式计算和通信框架(AKKA)入门介绍

guduadmin11天前

一、AKKA是什么?

Akka是一个用于构建高并发、分布式、可容错、事件驱动的应用程序的工具包和运行时。它基于Actor模型,提供了一种高效的并发编程模型,可以轻松地编写出高并发、分布式、可容错的应用程序。Akka还提供了一些常用的组件,如路由、集群、持久化等,可以帮助开发人员更加方便地构建分布式应用程序。

  • 一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用
  • 使构建高并发的分布式应用更加容易。
  • 虽然它由scala编写的,但也同时提供java api接口,所以使用java一样可以使用akka。
  • 对并发模型进行了更高的抽象
  • 是异步、非阻塞、高性能的事件驱动编程模型
  • 是轻量级事件处理(1GB内存可容纳百万级别个Actor)
  • 它提供了一种称为Actor的并发模型,其粒度比线程更小,你可以在系统中启用大量的Actor。
  • 它提供了一套容错机制,允许在Actor出现异常时,进行一些恢复或重置操作。
  • Akka既可以在单机上构建高并发程序,也可以在网络中构建分布式程序,并提供位置透明的Actor定位服务。

    二、AKKA能做什么?

    当前大数据领域火热的框架底层的分布式计算和通信实现都是Akka

    一些使用Akka作为底层框架的知名项目包括:

    • Apache Spark:一个用于大规模数据处理的分布式计算框架,使用Akka作为其底层通信框架。
    • Apache Flink:也使用了Akka作为其底层通信框架。
    • Lagom:一个基于Akka和Play框架构建的微服务框架。
    • Akka HTTP:一个基于Akka构建的高性能HTTP服务器和客户端框架。
    • Alpakka:一个基于Akka Streams构建的数据集成框架,用于处理异步、非阻塞的数据流。

      三、AKKA有什么?技术去支撑它呢?

      • Akka处理并发的方法基于Actor模型,Actor之间通信的唯一机制就是消息传递。
      • Actor的基础就是消息传递。

        【项目实战】分布式计算和通信框架(AKKA)入门介绍,在这里插入图片描述,第1张

        Actor由状态(state)、行为(Behavior)和邮箱(mailBox)三部分组成

        【1】状态(state):Actor中的状态指的是Actor对象的变量信息,状态由Actor自己管理,避免了并发环境下的锁和内存原子性等问题

        【2】行为(Behavior):行为指定的是Actor中计算逻辑,通过Actor接收到消息来改变Actor的状态

        【3】邮箱(mailBox):邮箱是Actor和Actor之间的通信桥梁,邮箱内部通过FIFO消息队列来存储发送方Actor消息,接受方Actor从邮箱队列中获取消息

        3.1 Actor模型介绍

        Actor模型是一种并发编程模型,它将计算机系统中的并发实体抽象为Actor,每个Actor都是一个独立的计算单元,它们之间通过消息传递进行通信。Actor之间的通信是异步的,无需共享内存,因此可以避免共享内存带来的并发问题。Actor模型可以轻松地编写出高并发、分布式、可容错的应用程序,因此被广泛应用于分布式系统和并发编程领域。

        3.2 Actor模型的特点

        1. 每个Actor都是一个独立的计算单元,它们之间通过消息传递进行通信,因此可以避免共享内存带来的并发问题。
        2. Actor之间的通信是异步的,无需共享内存,因此可以避免共享内存带来的并发问题。
        3. Actor模型可以轻松地编写出高并发、分布式、可容错的应用程序,因此被广泛应用于分布式系统和并发编程领域。

        3.3 Actor模型的优点

        1. 可以避免共享内存带来的并发问题。
        2. 可以轻松地编写出高并发、分布式、可容错的应用程序。
        3. 可以提高系统的可伸缩性和可靠性。

        3.4 Actor模型的缺点

        1. 消息传递的开销比共享内存大。
        2. Actor之间的通信是异步的,因此可能会导致消息的顺序不确定。
        3. Actor模型需要开发人员具备一定的并发编程经验和技能。

        四、Akka的五大特性

        • 易于构建并行和分布式应用 (Simple Concurrency & Distribution)

          Akka在设计时采用了异步通讯和分布式架构,并对上层进行抽象,如Actors、Futures ,STM等。

        • 可靠性(Resilient by Design)

          系统具备自愈能力,在本地/远程都有监护。

        • 高性能(High Performance)

          在单机中每秒可发送50000000个消息。

          内存占用小,1GB内存中可保存2500000个actors。

        • 弹性,无中心(Elastic — Decentralized)

          自适应的负责均衡,路由,分区,配置

        • 可扩展(Extensible)

          可以使用Akka 扩展包进行扩展。

网友评论

搜索
最新文章
热门文章
热门标签