• Akka 基础概念(一)


    1.什么是Akka

    Akka通常是指一个分布式工具集,用于协调远程计算资源来进行一些工作,是Actor开发模型的一种现代化实现。

    2.Actor 重要概念与消息传递方式

    重要概念

    1.Actor:一个表示工作节点的并发原语,同步处理接收到的消息,Actor可以保存并修改内部状态。

    2.消息: 用于跨进程(多个Actor之间)通信的数据

    3.消息传递:一种软件开发范式,通过传递消息来触发各种行为,而不是直接触发行为。

    4.邮箱地址:消息传递的目标地址,当Actor空闲时会从该地址获取信息进行处理。

    5.邮箱:在Actor处理消息前具体存储消息的地方,可视作消息队列。

    6.Actor系统:多个Actor的集合及这些Actor的邮箱地址、邮箱和配置。

    消息传递方式:邮箱

    Actor与对象的不同之处在于其不能直接读取、修改或调用,Actor只能通过消息传递方式与外界进行通信。消息传递是指一个Actor可以接受消息,本身可以发送消息,也可以对接收到的消息做出回复。消息传递是异步的,Actor处理一个消息是同步的。

    Actor模型的优势:

    1.当各个Actor各司其职时,使用Actor模型分析并发时间非常容易。

    2.消除内存共享状态,避免竞态条件发生。

    3.Actor监督机制

    Actor模型通过监督机制提供容错性。监督机制基本上是指把处理响应 错误的责任交给出错对象之外的实体,这意味着一个Actor可以负责监督它的子Actor,它会监控子Actor的运行错误 ,并根据子Actor生命周期中的运行表现执行相应的操作。当一个正在运行的Actor发生错误时,监督机制提供的默认处理方式是重新启动发生错误Actor(实际上是重新创建),这种重新创建出错Actor的处理方式基于一种假设:意外发生的错误是由错误状态导致的,因此移除并重新创建应用程序中出错的部分可以将其修复,并恢复正常工作。

    Akka对于Actor模型的重要贡献之一就是位置透明性概念:就是说一个Actor邮箱地址实际上是一个远程地址,但是这个地址对开发者来说基本上是透明的。

    注:

    build.sbt
    ###############################################
    name := " xxx"
    version := "xxx"
    scalaVersion := "xxx"
    resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/release/"
    libraryDependencies ++= Seq("com.typesafe.akka" %% "akka-actor" % "2.6.3",
                                "com.typesafe.akka" %% "akka-testkit" % "2.6.3",
                                 "org.scalatest" %% "scalatest" % "3.0.1"
                                )
                                
    //使用Akka Testkit时可以使用sbt测试用例,先clean后test
    
  • 相关阅读:
    线程的补充
    线程
    进程
    操作系统和进程
    socketserver模块实现并发和连接合法性验证
    socketserver实例化过程
    粘包现象和解决方法
    网络通信协议
    初探网络
    Python网络编程
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/12748849.html
Copyright © 2020-2023  润新知