Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >akka演员能把消息传回客户端吗?

akka演员能把消息传回客户端吗?
EN

Stack Overflow用户
提问于 2014-05-14 06:13:01
回答 1查看 248关注 0票数 0

我有一些伪代码,我希望一些有经验的人能告诉我,akka是否会像这样使用,如果不是,我如何重新设计我的设计,以适应akka的最佳实践。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Article(val words: Word) {

  val tokens: List[Word]

}

class Word(..) {


  def parseWords() {
    val word = .....
    tokenActor ! word    // this is suppose to add the word to the tokens List

  }

}

因此,模式基本上是,我将创建一个Article,它将有一个word对象。然后,word对象将开始进行一些解析,有时需要将数据传回给Article对象,以“通过通信共享内存”,比如Go的协同。

我知道Scala有一个收件箱类型的系统,但是我们应该使用Akka,但是我发现Akka在示例等方面的文档能力很差。

有人能告诉我上面的设计是否可行吗?我能在游戏应用程序里面用这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 08:30:45

给你一份样品。在这里,Tokenizer获取要解析的项的seq,并将它们分发给Parser进行解析。解析器,而不是将结果报告给托卡器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import akka.actor._
import com.typesafe.config.ConfigFactory

case object Go
case object Done
case object GoAway

class Tokenizer(items: Seq[String]) extends Actor {
  val kid = context.actorOf(Props[Parser])
  var tokens: List[String] = List.empty
  override def receive: akka.actor.Actor.Receive = {
    case Go => // start process
      items.foreach(kid ! _)
      kid ! GoAway
    case Done => // report results
      println(tokens.mkString(":"))
      self ! PoisonPill // shut down
    case s: String => // data from kid
      tokens = s :: tokens
  }
}

class Parser extends Actor {
  override def receive: Receive = {
    case GoAway =>
      sender ! Done
      self ! PoisonPill // or context.stop(self)
    case s: String =>
      s.split("\\.").foreach(sender ! _)
  }
}

object G extends App {

  val config = ConfigFactory.parseString("" +
    "akka.loglevel=DEBUG\n" +
    "akka.debug.lifecycle=on\n" +
    "akka.debug.receive=on\n" +
    "akka.debug.event-stream=on\n" +
    "akka.debug.unhandled=on\n" +
    ""
  )

  val system = ActorSystem("mine", config)
  val doer = system.actorOf(Props(new Tokenizer(Seq("191.168.1.1", "192.168.1.2"))))

  doer ! Go

  system.shutdown()
  system.awaitTermination()

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23657181

复制
相关文章
Akka 指南 之「集群客户端」
为了使用集群客户端(Cluster Client),你需要将以下依赖添加到你的项目中:
CG国斌
2019/05/26
1.8K0
消息队列 能做成 websocket 那样推送消息到客户端吗
解答:如果通知非常频繁,或者对实时性要求高,就websocket,不然就ajax轮训得了
全栈程序员站长
2022/07/11
1.8K0
Akka(37): Http:客户端操作模式
该文章是一篇关于技术社区和编辑人员如何参与社区管理、贡献技术文档并解决技术问题的文章。主要介绍了技术社区中编辑人员的工作职责和流程,包括技术社区的建立、文档的编辑和管理、技术问题的解决、社区沟通和贡献度量等方面的内容。文章还探讨了技术社区中的编辑人员如何与其他社区成员、管理团队和利益相关者进行协作和沟通,以确保社区的健康发展和成长。
用户1150956
2018/01/05
1.1K0
Akka-Cluster(3)- ClusterClient, 集群客户端
  上篇我们介绍了distributed pub/sub消息传递机制。这是在同一个集群内的消息共享机制:发布者(publisher)和订阅者(subscriber)都在同一个集群的节点上,所有节点上的DistributedPubSubMediator通过集群内部的沟通机制在底层构建了消息流通渠道。在actor pub/sub层面可以实现对象位置透明化。在现实里很多前端都会作为某个集群的客户端但又与集群分离,又或者两个独立的集群之间可能会发生交互关系,这是也会出现客户端与服务端不在同一集群内的情况,ClusterClient就是为集群外部actor与集群内部actor进行沟通的解决方案。
用户1150956
2018/12/25
1.9K0
SpringBoot下Akka的简单使用
ActorNormal重写createReceive函数,然后使用receiveBuilder构造一个接收器Receive,然后使用Receive的Match函数,对不同类型的请求进行分别处理;在处理内部可以使用 sender().tell发送返回值给请求者。
Kiba518
2023/09/07
8150
Akka 指南 之「消息传递可靠性」
Akka 帮助你构建可靠的应用程序,这些应用程序可以在一台机器中使用多个处理器核心(scaling up,纵向扩展)或分布在计算机网络中(scaling out,横向扩展)。实现这一点的关键抽象是,代码单元 Actor 之间的所有交互都是通过消息传递进行的,这就是为什么 Actor 之间传递消息的精确语义应该有自己的章节。
CG国斌
2019/05/26
1.8K0
Akka(1):Actor - 靠消息驱动的运算器
  Akka是由各种角色和功能的Actor组成的,工作的主要原理是把一项大的计算任务分割成小环节,再按各环节的要求构建相应功能的Actor,然后把各环节的运算托付给相应的Actor去独立完成。Akka
用户1150956
2018/01/05
6480
.NET环境大规模使用OpenTracing
OpenTracing的最大优势之一是围绕它构建的社区,涵盖各种语言和技术。考虑到这一点,我很高兴今天在OpenTracing博客上发表一篇由Aaron Stannard撰写的客座文章。Aaron Stannard是Petabridge的创始人兼首席执行官,Petabridge是一家帮助.NET公司构建大规模分布式系统的创业公司。他也是Akka.NET项目的联合创始人。你可以在Twitter上找到他,网址是https://twitter.com/Aaronontheweb
CNCF
2019/12/05
1.1K0
.NET环境大规模使用OpenTracing
好消息!“祝融号”传回第一张落地火星照片
近日,“天问一号”着陆巡视器成功着陆,在火星上首次留下中国印迹。就在昨日,“祝融号”首次通过环绕器传回遥测数据,国家航天局发布了“天问一号”探测器着陆过程两器分离和着陆后火星车拍摄的影像,图像中,着陆平台和“祝融号”火星车的驶离坡道、太阳翼、天线等机构展开正常到位。
镁客网
2021/06/08
3740
Akka 3 Akka actor 与
经常有人问: Akka的Actor和Scala的Actor有什么不同?这里的回答是,从actor 模型角度讲,没什么不同,它们都实现了actor model.
py3study
2020/01/14
5750
Akka 指南 之「Akka 简介」
欢迎来到 Akka,它是一组用于设计跨越处理器和网络的可扩展、弹性系统的开源库。Akka 允许你专注于满足业务需求,而不是编写初级代码来提供可靠的行为、容错性和高性能。
CG国斌
2019/05/29
6060
Akka(28): Http:About Akka-Http
  众所周知,Akka系统是基于Actor模式的分布式运算系统,非常适合构建大数据平台。所以,无可避免地会出现独立系统之间、与异类系统、与移动系统集成的需求。由于涉及到异类和移动系统,系统对接的方式必
用户1150956
2018/01/05
1.2K0
Akka(15): 持久化模式:AtLeastOnceDelivery-消息保证送达模式
  消息保证送达是指消息发送方保证在任何情况下都会至少一次确定的消息送达。AtleastOnceDelivery是一个独立的trait,主要作用是对不确定已送达的消息进行补发,这是一种自动的操作,无需
用户1150956
2018/01/05
1.5K0
kafka客户端消息发送逻辑
最近遇到了一个和kafka相关的问题,具体是在spark任务在一定并行度的情况下, 偶现个别executor因kafka消息发送超时导致失败的情况。正所谓磨刀不误砍柴工,为了能较好的定位问题,因此先对kafka客户端消息发送相关逻辑的代码进行了走读,本文就是对相关原理的一些总结。
陈猿解码
2023/02/28
8390
kafka客户端消息发送逻辑
webSocket 发送消息给客户端
在配置websocket代理时使用simpleBroker(简单代理),就不需要使用消息服务器,简单向前端发送消息: @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.enableSimpleBroker("/client"); } @SendTo 注解可以将消息发送给所有订阅此地址的客户端;如果不需要将消息发给所有的用户,则可以使用@SendToUser,(如果一个用户在
yawn
2018/03/14
3.8K0
Akka 介绍
欢迎使用 Akka,Akka 是一套被用来在在多处理器核心和网络之间被设计可扩展和具有相关弹性的开源工具集。Akka 允许你更加关注商业需求而不是书写低级别的代码来提供可靠性,容错率和高性能。
HoneyMoose
2019/07/24
4790
异步编程 - 14 异步、分布式、基于消息驱动的框架 Akka
Akka 是一个开源的并发、分布式、基于消息驱动的框架,用于构建高可伸缩性、可靠性和并发性强的应用程序。它是基于 JVM(Java虚拟机)的,主要使用 Scala 编程语言开发,但也提供了 Java API,因此可以在 Java 和 Scala 中使用。
小小工匠
2023/09/17
1.4K0
异步编程 - 14 异步、分布式、基于消息驱动的框架 Akka
聊聊Akka
当前社会,人们越来越享受互联网带来的种种便利,同时也对互联网产品有了更高的要求,比如更快的响应速度和更稳定的服务;另一方面,互联网产品在不断发展的过程中也面临着非常多的技术挑战,比如服务化、分布式、并行计算等,那么,Akka在其中的哪些领域可以一展身手呢?
猿天地
2018/07/25
2.2K0
聊聊Akka
Akka(43): Http:SSE-Server Sent Event - 服务端主推消息
该文介绍了如何使用Akka HTTP和SSE实现服务端推送文件给客户端的功能。首先介绍了SSE的概念和Akka HTTP的SSE库,然后通过一个具体的应用场景和代码示例详细讲解了如何实现该功能。
用户1150956
2018/01/05
1.1K0
Akka 介绍
欢迎使用 Akka,Akka 是一套被用来在在多处理器核心和网络之间被设计可扩展和具有相关弹性的开源工具集。Akka 允许你更加关注商业需求而不是书写低级别的代码来提供可靠性,容错率和高性能。
HoneyMoose
2019/07/23
5160

相似问题

Akka:测试演员收到消息

21

Akka演员获得剩余消息列表

10

如何向演员akka发送消息

12

Akka演员不接收DistributedPubSub消息

12

Akka单身演员没有收到消息

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文