Akka

Spring与Akka的集成 概述 近年来随着Spark的火热,Spark本身使用的开发语言Scala、用到的分布式内存文件系统Tachyon(现已更名为Alluxio)以及基于Actor并发编程模型的Akka都引起了大家的注意。了解过Akka或者Actor的人应该知道,这的确是一个很不错的框架,按照Akka官网的描述——使用Akka使得构建强有力的并发与分布式应用将更加容易。由于历史原因,很多Web系统在开发... 阅读详情

akka

@(scala)

基本介绍

Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。
官方网站 (http://akka.io/)的介绍是:

Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM.
Build powerful concurrent & distributed applications more easily.

翻译成中文就是:Akka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用。使构建高并发的分布式应用更加容易。

优势

  1. 易于构建并行和分布式应用 (Simple Concurrency & Distribution)Akka在设计时采用了异步通讯和分布式架构,并对上层进行抽象,如Actors、Futures ,STM等。
  2. 可靠性(Resilient by Design)系统具备自愈能力,在本地/远程都有监护。
  3. 高性能(High Performance)在单机中每秒可发送50000000个消息。内存占用小,1GB内存中可保存2500000个actors。
  4. 弹性,无中心(Elastic — Decentralized)。自适应的负责均衡,路由,分区,配置
  5. 可扩展(Extensible)。可以使用Akka 扩展包进行扩展。

取得优势的原因

采用Actor并发模型,放弃传统的锁模型
这样会:
1. 性能高
2. 天然适合并发环境

Actor 模型

Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:
- 系统中的所有事物都可以扮演一个Actor
- Actor之间完全独立
- 在收到消息时Actor所采取的所有动作都是并行的,在一个方法中的动作没有明确的顺序
- Actor由标识和当前行为描述
- Actor可能被分成原始(primitive)和非原始(non primitive)类别
很多开发语言都提供了原生的Actor模型。例如erlang,scala等

Actor,可以看作是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。

一个Actor收到其他Actor的信息后,它可以根据需要作出各种相应。消息的类型可以是任意的,消息的内容也可以是任意的。这点有点像webservice了。只提供接口服务,你不必了解我是如何实现的。

一个Actor如何处理多个Actor的请求呢?它先建立一个消息队列,每次收到消息后,就放入队列,而它每次也从队列中取出消息体来处理。通常我们都使得这个过程是循环的。让Actor可以时刻处理发送来的消息。

阅读材料

  1. 官方文档
  2. 上述文件的翻译
akka基础 [TOC] ps:本文主要参考《akka入门与实践》 学习akka之前最好先了解一下reactive架构,actor模型和erlang语言的设计思想 《大数据时代的软件架构范式:Reactive架构及Akka实践》 《面向软件错误构建可靠的分布式系统》 基本概念 akka:基于actor并发模型的分布式工具集,用于协调远程计算资源来进行一些工作。 actor:类似于进程或者线程的... 阅读详情

相关推荐

Flink底层实现Akka

Flink的RPC实现:是基于Scala的网络编程库Akka来的。 Akka的特点 它是对并发模型进行了更高的抽象 它是异步、非阻塞、高性能的事件驱动编程模型 它是轻量级事件处理(1GB内存可以以容纳百万级别的Actor) Akka简介 Akka是一个网络编程库 ActorSystem是管理Actor生命周期的组件,Actor是负责进行通信的组件 每个Actor都有一个MailBox(在Flink源码中经常可以看到,checkpoint通知就是基于此),别的Actor发送给它的消息都是首先存储在Mai

百看不如一RUN 3706

Akka框架简单介绍

Akka是Java虚拟机平台上构建高并发、分布式和容错应用的工具包和运行时。Akka使用Scala语言编写同时提供了Scala和Java的开发接口,Akka处理并发的方法基于Actor模型,Actor之间通信的唯一机制就是消息传递。 Akka特点: 对并发模型进行了更高的抽象 异步、非阻、高性能的事件驱动编程模型 轻量级事件处理(1GB内存可以容纳百万级别个Actor) 提供了一种称为Actor...

weixin_44240370的博客 2137

【akka】初识Akka 简单介绍

Akka是一个用来开发支持并发、容错、扩展性的应用程序框架,基于actor模式的实现。在actor模型的上下文中,所有的活动实体都被认为是互不依赖的actor,actor之间的互相通信是通过彼此之间发送异步消息来实现的。每个actor都有一个邮箱(Mailbox)来存储接收到的消息,因此每个actor都维护着自己独立的状态。

九师兄 1153

AKKA框架持久化入门样例

背景 我们在开发的过程中可能会在内存中操作数据,但是可能会遇到突然服务器断电、网线被挖等情况。这就需要将内存中的数据持久化,在程序重启的时候依然能够恢复。 AKKA介绍 Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Jav...

康雨城 909

Akka:Scala与Java的高性能并发框架

本文还有配套的精品资源,点击获取 简介:Akka是一个高性能、容错的并行计算框架,使用Scala编写,通过Actor模型实现分布式计算。其核心概念包括轻量级线程Actor,通过消息传递实现并发,监督和监控机制提供强大的容错能力,Cluster支持真正的分布式计算,而持久化特性确保了数据在系统崩溃后的可恢复性。Akka Streams提供声明式数据流处理,配合Play Fra...

weixin_42515842的博客 2722

comsol 多物理场仿真流程-以开关柜为例

1、主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模,生成能够导入软件计算的3D模型。将SolidWorks中的模型导入comsol软件中,设置参数进行多物理场耦合仿真。 1、具体步骤 删除高压开关柜中对其内部电磁环境无较大影响的结构,如低压测量柜、断路器内部结构等。 导入模型:将厂家提供的3D模型转化为solidworks结构模型。 修复模型:修复已转化模型中转化错误的部分、修复已转化模型中非实体部分、修复已转化模型中重叠实体部分 化简模型:去除过于...

健忘16的博客 7020

【Scala】基于akka的多线程应用程序日志收集服务

Akka is a toolkit and runtime for building highly concurrent,distributed, and resilient m...

Big data enthusiast 345

hi3519dv500 os04a10输入调试

因该sensor接在soc端的iic6,在驱动中(Hi3519DV500_SDK_V2.0.1.1\smp\a55_linux\source\mpp\cbb\isp\user\sensor\hi3519dv500\omnivision_os04a10\os04a10_sensor_ctl.c)注意总线的选择。mem_process_isolation=1 改为 mem_process_isolation=0。2、OT_MIPI_SET_HS_MODE配置为LANE_DIVIDE_MODE_1。

linus 3170

Akka2.5.x升级到2.6.x

Akka2.5.x升级到2.6.x 背景 系统集群化后,需要使用2.6.7+版本的脑裂功能模块。 注意:Akka2.6已经不支持scala2.11了。 build.sbt配置 val AkkaVersion = "2.6.14" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-cluster" % AkkaVersion, "com.typesafe.akka" %% "akka-discovery" % AkkaVersion,

空中的鱼 1052

十一、机器学习进阶知识:径向基神经网络(RBFNN)的实现(Python,附源码及数据集)

本文对径向基神经网络(RBFNN)的理论基础及建模步骤进行介绍,之后使用Python实现基于RBFNN的数据预测,通俗易懂,适合新手学习,附源码及实验数据集。

weixin_42051846的博客 1万+

RK3588开发板量产前必做:24小时DDR压力测试到底在测什么?(附ArmSoM-W3测试脚本解析)

本文深入解析RK3588开发板量产前的24小时DDR压力测试,揭示其核心价值与技术原理。通过memtester、stressapptest和变频测试的组合使用,全面验证DDR内存稳定性。特别介绍ArmSoM-W3测试脚本的创新设计,包括并行测试架构和异常熔断机制,为开发者提供可靠的量产测试方案。

weixin_30325487的博客 454

akka介绍

akka简介    一开始想接触到akka,是在看一些并发相关资料的时候,查了下akka的官方介绍,介绍如下:Akka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用,使构建高并发的分布式应用更加容易。 听到高并发和分布式这两个关键字就已经足够让人想去探索究竟是什么样的框架,当深入查看各种资料后,发现当前大数据领域火热的spark、flink底层的分布式计...

码农的世界你不懂 5万+

华为OD机试2025C卷 - 精准核酸检测 (C++ & Python & JAVA & JS & GO)

华为OD机试2025C卷 精准核酸检测,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1709

Akka使用入门

一Akka简单介绍 二Akka简单使用 从创建一个scala项目说起 第一个Akka应用 a 定义一个Actor b 客户端调用向actor发送消息 c Actor的生命周期 dActor编程模型的层次结构 akka的容错机制 akka的远程调用 客户端应用入口 服务端入口 pojo类 客户端配置文件 服务端配置文件 三Spark20为什么放弃Akka 四Akka适用场景 一、Akka简单介绍

dinghuiit的博客 2493

uboot引导vxworks--t2080调试记录

开发环境: t2080rdb, uboot2015, vxworks7.01. 《VxWorks_7_fsl_t2t4_BSP_Supplement_Guide__SR0620.pdf》描述: 实际上默认创建的vip,profile选项为none时,vip内核配置中是包含了INCLUDE_END选项的。所以在创建vip的时候最好就添加上PROFILE_DEVELOPMENT。 2. 内核参数bootargs是一些网络参数设置=> pri bootargs bootargs=memac(1,0)b109304

珂珂可爱多 2645

R语言中5种正态性检验的方法

统计学中的t检验和方差分析等方法的应用条件是样本都来自正态总体或近似正态总体,只有符合这个条件,才能用这些方法来检验各样本所属的总体参数的差异显著性。文本向大家介绍在R语言中检验正态性的几种方法: 1、Kolmogorov-Smirnov检验 K-S检验检验单一样本是否来自某一特定分布。比如检验一组数据是否为正态分布。它的检验方法是以样本数据的累积频数分布与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。K-S检验的原假设和备择假设为: H0:样本所来自的总体分布服从

Mrrunsen的博客 2万+

Akka Management 项目教程

Akka Management 项目教程 1. 项目目录结构及介绍 Akka Management 项目的目录结构如下: akka-management/ ├── build.sbt ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── RELEASING.md ├── docs/ ├── integration-test/ ├── lease-kub...

gitblog_00487的博客 869

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1632

akka介绍之-akka-remote介绍

akka-remote介绍   既然akka是构建分布式高并发的计算和运行框架,当然要离不开远程通信,akka的remote模块就是专门支持分布式的远程调用。 说到分布式应用,大家肯定想到以下几个耳熟能详的技术实现 RPC(Remote Procedure Call Protocol) Web Service RMI (Remote Method Invocation) JMS(Ja...

码农的世界你不懂 4316

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Akka简介

一、Akka简介   Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive)应用程序的平台。    Actor模型:   在计算机科学领域,Actor模型是一个并行计算(Concurrent Computation)模型,它把actor作为并行计算的基本元素来对待:为响应一个接收到的消息,一个actor能...

迷茫君的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SBT构建Akka项目

学习Akka项目断断续续弄了好久,今天刚好把SBT装好,顺便也将之前遗留的Akka Demo的问题解决掉了,跟大家分享一下~ 1.准备工作 (1)安装Akka,到Akka官网下载一个安装包就可以了,地址: http://akka.io/downloads/?_ga=1.235296577.1332829892.1429753844 (2)安装STB,地址:http://www.scala-s

igoqhb的专栏 2332

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Akka入门(一)Akka简介与为什么使用Akka

AKKA是一套开源库,用于设计跨处理器和跨网络的可扩展弹性系统。Akka允许开发者专注于满足业务需求,而不是编写低级代码以提供可靠的行为,容错和高性能。

康雨城 5390

akka实例

一、akka简介 akka是用scala编写的actor模型框架。它在使用中不需要锁和多线程,每个actor在独立空间中进行数据操作, 各个actor间完全依赖消息进行信息交互,操作都是异步进行的。 它可以用于高并发、分布式场景,需要注意的是,akka消息的传递不保证绝对可靠投递,当然这带来了好处是 整个实现简单。 二、akka关键点 1、角色系统建立 在akka中,所有角色都需在角

panda-star的博客 5370

Akka入门

Akka是一个异步非阻塞高并发处理框架,它是一系列框架,包括akka-actor, akka-remote, akka-cluster, akka-stream等,分别具有高并发处理模型——actor模型,远程通信,集群管理,流处理等功能。

bao2901203013的专栏 2088

Akka-路由策略

热爱湘鄂的妹子,喜欢江浙的妹子

文天大人 1428

akka for java

akka for java 入门第一步,通过 akka 模拟 flink 的心跳检测

小王是个弟弟 1551
上一篇: Spark-SQL-core
下一篇: scala
blesslyy
博客等级 码龄14年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值