开发者学堂课程【Scala 核心编程 - 进阶:AKKA 的基本介绍】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9112
AKKA 的基本介绍
内容介绍:
一、Akka 介绍
二、AKKA 的 Actor 模型
一、Akka 介绍
Akka 是一种并发的编程模型,为后续提供了 scala 和 JAVA 的连接。
(1)Akka 是 JAVA 虚拟机 jvm 平台上构建高并发、分布式、和容错应用的工具包和运行时。
简单理解为Akka是编写并发程序的框架
(2)Akka 用 scala 语音写成,同时提供了 scala 和 JAVA 的开发接口。
(3)AKKA 主要解决的问题是:
可以轻松的写出搞笑稳定,并发程序,程序员不再过多的考虑线程、锁和资源竞争等细节。
往往作为沉浸式的服务器结构,是撑不住实际的需求
传统的服务器结构:多个客户端连接至一个服务器,服务器支撑不住
多数情况下,提供一个负载均衡,有软件或者硬件的类别
而后台存在都各服务器,负载均衡可以将任务分散至多个服务器进行,缓解压力,一个负载均衡下可再配置下属负载均衡
操作模式如下图:
如果使用 Akka 则可以针对上述问题进行简化操作,包括网络通讯等。
二、AKKA 的 Actor 模型
Actor 模型可以作为 AKKA 的核心程序
(1)处理并发问题关键是要保证共享数据的一致性和正确性,因为程序是多线程的,多个线程对同一数据进行修改,若不加同步条件,势必会造成数据污染。
但是当我们对关键代码加入同步条件 sync hronized 后,实际上大并发就会堵塞在这段代码,对程序效率有很大影响。
通过 JAVA 代码演示和测试,通过票的模拟情况进行演示
新建章节
Public class test{
Calss Ticket{
Public void saletick et(){
//代码
//卖票this
(互斥)不能同时多个线程在线,所以存在互斥问题
//代码
此时存在多线程在线换言之对数据效率有很大影响,Actor 模型的出现解决了这个问题,此时 AKKA 可以简化并发编程
(2)若用单线程处理,不会有数据一致性问题,但系统性能有不能保证
(3)Actor 模型的出现解决了这个问题,简化并发编程,提升程序性能。
可以这样理解:actor 模型是一种处理并发问题的解决方案。