强制在本地JVM上的Akka中创建本地参与者
如何在Akka的本地JVM(而不是远程JVM)上强制创建参与者?这是一个可以传递给create函数的参数,还是需要设置的配置?使用下面的props方法创建一个Actor强制在本地JVM上的Akka中创建本地参与者,akka,Akka,如何在Akka的本地JVM(而不是远程JVM)上强制创建参与者?这是一个可以传递给create函数的参数,还是需要设置的配置?使用下面的props方法创建一个Actor public class MyActor extends AbstractActor { @Override public Receive createReceive() { return ReceiveBuilder.create() .match(Order.
public class MyActor extends AbstractActor {
@Override
public Receive createReceive() {
return ReceiveBuilder.create()
.match(Order.class, this::handleMessage)
.build();
}
static Props props() {
return Props.create(MyActor.class);
}
private void handleMessage(String e)
{
//do something with the string
}
}
然后可以使用创建子ActorRef
ActorRef childRef=actorSystem.actorOf(MyActor.props(),“MyActor”)代码>
并向它发送消息,如下所示
childRef.tell(myMessage,self());
通过AKKA
design,您的担忧不会发生
默认情况下,actorOf
只会在本地节点的actorsystem
上设置actor,即使您处于集群或远程模式,它也不会尝试在远程节点上设置actor
如果要在远程系统上设置actor,则必须明确执行以下操作:
application.conf
akka {
actor {
deployment {
/sampleActor {
remote = "akka.tcp://sampleActorSystem@10.192.225.100:2553"
}
}
}
}
test.scala
val actor = system.actorOf(Props[SampleActor], "sampleActor")
只有在上述配置下,actorsystem
才会在远程系统上设置新的actor
无论如何,如果您不在application.conf
中进行特殊配置,您的担心就不存在了,您可以参考详细信息您能详细说明您正在尝试做什么吗?默认情况下,参与者是在本地创建的。我想在本地JVM上本地创建一个参与者,我不想在远程JVM上创建,因为我在集群Akka模式中,即使在远程碎片上创建参与者,这难道不是创建参与者的标准方法吗?如果要在远程计算机上创建代码,该代码将如何更改?