草庐IT

tcp - 如何通过 tcpdump 查看集群中 akka actor 之间交换的消息

我有一个akka集群项目:https://github.com/roclas/akka-distributed-hash它基本上是一个跨集群节点的分布式HashMap。我希望能够读取(使用tcpdump或wireshark或类似的东西)在不同虚拟机中的参与者之间交换的消息。我该怎么做?进行TCP转储时,我只看到“集群消息”,但看不到不同虚拟机中不同参与者交换的消息。如果我在端口2551上启动一个节点:sbt"run2551"(将成为主节点)和端口2552上的另一个节点:sbt"run2552"当我这样做时实际上发生了什么?:curl-XPUThttp://localhost:8551-

scala - 允许与 Akka 流作为 tcp 服务器的单一连接

我正在尝试使用Akka流构建一个简单的tcp服务器。Tcp().bind(props.host,props.port).to(Sink.foreach(_.handleWith(handler))).run().onComplete{caseSuccess(i)=>logger.info(s"Serverisboundat${props.host}:${props.port}")caseFailure(e)=>logger.error("Serverbindingfailure",e)}我想一次允许最多一个连接。为此,我将以下行添加到我的application.conf文件中。akka

Scala - 使用 Akka 的 TCP 数据包框架

在Akka中有什么方法可以像在Erlang中那样使用{packet,4}实现数据包框架?数据包看起来像这样:4byteslengthinbigendian|body...例如:00000005HELLO0005WORLD将是两个数据包“HELLO”和“WORLD”,但它们被作为一个数据包接收。或者00000005HELL现在Akka接收到这8个字节,但还缺少一个字节,它将在下一次调用“接收”时接收问题是我的Actor的接收总是被部分或全部请求调用,但我只想在接收中获得“body”部分,并且只有在它被完全接收时。因此,它所需要的只是首先读取这4个字节,然后等待读取其他N个字节(N=4字节

java - 是否从 akka i/o 中删除了管道?

在学习如何使用akkaI/O时,我正在尝试在akkai/o之上实现一个简单的协议(protocol),并遵循文档here.但是在我的gradle文件中,我使用的是2.3.9版本,如下所示dependencies{compilegroup:'org.slf4j',name:'slf4j-log4j12',version:'1.7.7'compilegroup:'com.typesafe.akka',name:'akka-actor_2.11',version:'2.3.9'compilegroup:'com.typesafe.akka',name:'akka-contrib_2.11',

scala - 使用 Akka 在 Scala 上使用 SSL 的 TCP 套接字

使用Scala2.10和Akka2.3.4,我组装了一个简单的代理服务器,它接受传入的TCP连接,然后将这些消息代理到远程服务器。一切都在使用纯文本,但我坚持使用SSL。简而言之,这就是我为传入连接启动非安全服务器的方式:valserver=system.actorOf(Props(newLegacyTCPServer),name="my-tcp-server")implicitvalbindingTimeout=Timeout(1.second)importsystem.dispatcher//executioncontextforthefuturevalboundFuture=IO

java - 发送 TCP/IP 消息 AKKA actor

是否可以通过TCP/IP向AKKAActor发送消息?例如,写一个客户端:mySocket=newSocket("theactor",75);os=newDataOutputStream(smtpSocket.getOutputStream());os.writeBytes("HELLO");这可以向AKKAActor发送消息吗?谢谢 最佳答案 详细说明Viktor的回应,最小的例子是importakka.actor._importActorDSL._importjava.net.InetSocketAddressobjectSer

scala - 如何使用 Akka Streams 实现一个简单的 TCP 协议(protocol)?

我尝试实现了一个简单的基于TCP的协议(protocol),用于与AkkaStreams交换消息(见下文)。但是,似乎传入消息没有立即处理;也就是说,在客户端接连发送两条消息的场景中,第一条消息仅在从服务器发送某些内容后打印:Att=1,on[client]AisenteredAtt=2,on[client]BisenteredAtt=3,on[server]ZisenteredAtt=4,on[server]AisprintedAtt=5,on[server]YisenteredAtt=6,on[server]Bisprinted我期望/想看到的:Att=1,on[client]Ai

java - 关于 Akka 和类型安全的一般问题

问题1:JVM不知道泛型,因此Scala(和Java)中的类型参数只存在于编译时。它们在运行时不存在。由于Akka是一个Scala(和Java)框架,它也有这个缺点。它尤其受到影响,因为在Akka中,参与者之间的消息(显然)仅在运行时交换,因此这些消息的所有类型参数都丢失了。到目前为止正确吗?问题2:假设我定义了以下采用一个类型参数的案例类:caseclassEvent[T](t:T)现在,我实例化一个Event[Int](42)并将其发送到我的testActor。我的testActor基本上接收到一个Event[Any]并且不知道t是什么类型,这是否正确?问题3:比如,在我的test

java - synchronized(){} 的异步(非阻塞)版本

有没有好的方法来实现synchronized关键字的异步版本?显然synchronized()关键字会频繁阻塞当前线程。例如:publicstaticbooleangetLockSync(Runnabler){if(isLocked){r.run();returntrue;}synchronized(My.lock){//thisisblocking,couldblockformorethan1-2msisLocked=true;r.run();isLocked=false;returnfalse;}}我可以从这个block返回一个boolean值——它是同步的。有没有办法异步执行此操

java - Akka Java FSM 示例

请注意:我是一名Java开发人员,不了解Scala(很遗憾)。我会问答案中提供的任何代码示例都将使用Akka的JavaAPI。我正在尝试使用AkkaFSMAPI对以下super简单状态机进行建模。实际上,我的机器要复杂得多,但这个问题的答案可以让我推断出我的实际FSM。所以我有2个状态:Off和On.你可以去Off->On通过调用SomeObject#powerOn()打开机器电源.你可以从On->Off通过调用SomeObject#powerOff()关闭机器电源.我想知道我需要哪些参与者和支持类来实现这个FSM。我相信代表FSM的Actor必须延长AbstractFSM.但是什么类