当前位置: 首页 > 知识库问答 >
问题:

在akka演员中使用继承

符棋
2023-03-14

我正在使用Scala/Akka编写一个TCP客户端服务器程序。服务器端的一些参与者需要处理来自客户端的TCP消息。我使用了(复制)代码,基本上解析接收到的TCP消息,在接收到分隔符时,消息被发送给其他人。

由于不止一个actor使用此逻辑,所以我在baseTCP actor中对其进行了抽象,并从该actor继承了其他actor。我想在这个基本actor中添加一些常见的代码,比如处理bound/connected/commandfailed等。这样的处理方式在Akka可以吗?还是望而却步?向你致意,维沙尔

共有1个答案

尚阳炎
2023-03-14

是的,这是可能的,一个坚持您所描述的例子是PersistentActor。http://doc.akka.io/api/akka/2.3.4/#akka.persistence.persistentactor是actor的一个子类型。

在我过去的公司中,我们通过扩展HashMap作为状态和一些定义的生命周期状态(如open、close、waitingForAck、termination)来抽象更多的PersistentActor。

 类似资料:
  • 我很想知道调整大小,或者在本例中增加单个节点系统上的actor池中actor的数量是否真的会影响性能。 我有一个带超线程的四核系统。在任何给定的点上,系统可以运行8个线程。假设执行元执行的大多数操作都是CPU绑定的,那么将池中的执行元数量从20个增加到40个会有什么收获呢?

  • 在Play 2.2中,我创建了GlobalActor制作类 我想将游戏框架升级到 2.5。Play.current在play 2.5中被弃用,所以我使用注入器修改了这个类,但注入器始终为Null。我需要如何使这门课在 Play 2.5 中工作?

  • null 函数getAndProcessData包含并行执行3个Future.Sequence。 现在,随着我对Akka的阅读越来越多,我发现使用ask会创建另一个actor Listener。问题是: 正如我们广泛使用的ask,它是否会导致系统中使用多个线程,有时可能会导致线程饥饿? 使用future.map也往往意味着不同的线程。我读到过一个线程演员的幻觉,它可以很容易地通过混合未来打破。 此

  • 让我们假设一个使用Akka Typed实现的应用程序有一个持久执行元。这个持久执行元作为其操作的一部分创建了瞬态(或非持久)子执行元,每个子执行元都有一个唯一的ID,这些ID是持久状态的一部分。持久执行元还需要一些与其子级通信的方式,但我们不希望持久化子级的,因为它们实际上不是状态的一部分。在恢复时,持久参与者应该基于恢复的状态重新创建它的子级。这听起来并不像是一个很不寻常的用例,我正在试图弄清楚

  • 我经常发现自己使用一个“主”角色,为子任务创建许多子角色。当子任务完成时,主角也应该停止自己。所以当时,我观察子角色并停止主角色context.children.is。 我经常使用这种模式,但因为我从未读过这方面的文章。我不确定,这是一个好主意还是失败的演员有问题。。。? 我已经读过Akka 2中的关机模式,但是这种方法在Java中似乎比我的解决方案更复杂? 以下是我针对具有两个子任务的主要参与者

  • 我正在用Akka打字,但我无法查看官方文件(https://doc.akka.io/docs/akka/current/typed/actors.html#actors),我发现它非常简短,即如何在Actor类型中配置调度程序。 下面是我的代码示例 当我创建ActorSystem时,如何为我的A配置调度程序ctor.immutable?