![](https://img-blog.csdnimg.cn/746b71fc39a9451884881b86d150aa9a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Akka
文章平均质量分 94
Akka是Actor并发模型的一种现代化实现。现在的Akka可以认为是从许多其他技术发展演化而来的,它借鉴了Erlang的Actor模型实现,同时又引入了许多新特性,帮助构建能够处理如今大规模问题的应用程序。
长安不及十里
活到老,学到老,作为程序猿的基本修养,哈哈哈哈哈!
展开
-
Akka 进阶(三)Route 路由
消息可以通过多种方式送达目的地,比如tell、ask、forward等,这些方式是最常规也是最简单的,但是对于复杂的消息投递逻辑,比如轮询投递、随机投递、广播组等,就需要开发者自己去做一层封装,好在Akka已经提供了丰富的路由组件,可以很好地满足这类需求。在实际项目中,我们通常会使用路由器来做负载均衡和任务分派。原创 2022-12-27 15:01:58 · 3570 阅读 · 1 评论 -
Akka 进阶(二)Mailbox 邮箱
自定义邮箱消息优先级/*** @description: 自定义优先级/*** 返回值越小,优先级越高if(message . equals("张三")) {return 0;} else if(message . equals("李四")) {return 1;} else if(message . equals("王五")) {return 2;} } });} }./*** @description: 自定义优先级/**原创 2022-12-24 14:36:31 · 4327 阅读 · 0 评论 -
Akka 进阶(一)Dispatcher调度器
当前疫情情况下,快递小哥短缺,由于每个快递小哥都有大量的货要送,所以很可能会造成延迟送货,为了解决这个问题,快递公司可能会从两方面入手。让快递小哥们提高单次送货速度,尽可能多送货。临时增派人手,以便处理更多的送货任务。在Akka中,Actor运行在一个线程池之上,每个线程(快递小哥)会处理多个Actor消息(商品),为了能保证Actor消息处理的及时性和线程的使用效率,我们需要对线程池做一些调配或协调的工作,这就是Dispatcher的意义。原创 2022-12-23 14:17:44 · 3574 阅读 · 0 评论 -
Akka 学习(九)Akka Cluster
CAP理论是由Eric Brewer提出的,指的是一个分布式系统中的一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)之间的一个权衡。在分布式系统中,这三个概念是相互矛盾的,因此,系统必须在这三个概念之间进行权衡,以确定在特定情况下采取哪种策略。例如,在一个分布式系统中,如果要同时保证一致性和可用性,就必须牺牲分区容错性。原创 2022-12-12 14:43:34 · 3788 阅读 · 0 评论 -
Akka 学习(八)路由与Dispatcher
Dispatcher将如何执行任务与何时运行任务两者解耦。一般来说,Dispatcher会包含一些线程,这些线程会负责调度并运行任务,比如处理Actor的消息以及线程中的Future事件。Dispatcher是Akka能够支持响应式编程的关键,是负责完成任务的机制。akka Dispatcher 是用于调度 akka Actor 的线程池。它负责将 akka Actor 任务分配给线程池中的线程执行,并监控执行情况。原创 2022-12-11 18:48:16 · 3796 阅读 · 0 评论 -
Akka 学习(七)Actor的生命周期
*** @description: 生命周期ActorDemo/*** 在构造函数之后调用 ,可以完成一些初始化System . out . println("Life 初始化");} /*** 在重启之前调用System . out . println("Life 即将重启");} /*** 要注意的是preRestart和postRestart只在重启的时候才会被调用。原创 2022-12-10 21:08:25 · 3431 阅读 · 1 评论 -
Akka 学习(六)Actor的监督机制
要注意的是,一般情况下使用默认的行为就可以了:如果Actor在运行中抛出异常,就重启Actor;不过如果Actor在构造函数中抛出异常,那么会导致ActorInitializationException,并最终导致Actor停止运行。在默认监督策略中还定义了另一种情况:ActorKilledException,如果Actor被“杀”(kill)了,那么这个Actor的监督者会接收到一个ActorKilledException,执行stop()会接收到该异常。Actor有默认的监督策略。原创 2022-12-09 21:58:41 · 3477 阅读 · 0 评论 -
Akka 学习(五)消息传递的方式
有4种核心的Actor消息模式:Tell、Ask、Forward和Pipe。原创 2022-12-09 21:04:08 · 3768 阅读 · 0 评论 -
Akka 学习(四)Remote Actor
虽然Akka在单机上可以运行上百万的Actor,但出于容错、负载均衡、灰度发布、提高并行度等等原因,我们仍然需要能在多个不同的服务器上运行Actor。所以Akka提供了akka-remoting的扩展包,屏蔽底层网络传输的细节,让上层以及其简单的方式使用远程的Actor调度。Akka Remoting 是一个以点对点方式连接 actor 系统的通信模块,它是 Akka 集群的基础。远程处理的设计由两个(相关的)设计决策驱动:这些决定的结果是不可能安全地创建具有预定义角色的纯客户端-服务器设置(违反假设 2原创 2022-12-07 13:57:14 · 3400 阅读 · 0 评论 -
Akka 学习(三)Actor的基本使用
需求:我们将在这个例子中构建一个简单的Actor,这个Actor接收一个字符串“Ping”,返回字符串“Pong”作为响应。测试tell():sender()函数会返回一个ActorRef,tell()是最基本的单向消息传输模式,第一个参数是我们想要发送至对方信箱的消息,第二个参数则是希望对方Actor看到的发送者。1.2 Scala版代码我们对比Java 版本来看,他更加简洁明了Actor中有一个隐式的变量self,Actor通过self得到消息发送者的值,因此Actor原创 2022-12-07 13:55:30 · 3795 阅读 · 0 评论 -
Akka 学习(二)第一个入门程序
Akka一词据说来源于瑞典的一座山,我们说到Akka时,通常是指一个分布式工具集,用于协调远程计算资源来进行一些工作。Akka是Actor并发模型的一种现代化实现。现在的Akka可以认为是从许多其他技术发展演化而来的,它借鉴了Erlang的Actor模型实现,同时又引入了许多新特性,帮助构建能够处理如今大规模问题的应用程序。原创 2022-12-06 21:18:20 · 3482 阅读 · 0 评论 -
Akka 学习(一)Actor 初步认识与环境搭建
Akka一词据说来源于瑞典的一座山,我们说到Akka时,通常是指一个分布式工具集,用于协调远程计算资源来进行一些工作。Akka是Actor并发模型的一种现代化实现。现在的Akka可以认为是从许多其他技术发展演化而来的,它借鉴了Erlang的Actor模型实现,同时又引入了许多新特性,帮助构建能够处理如今大规模问题的应用程序。原创 2022-12-06 21:16:02 · 3644 阅读 · 0 评论