多平台统一管理软件接口,如何实现多平台统一管理软件接口
416
2022-11-15
如何开发一个简单的Akka Java应用
Akka是一个免费的开源工具包和运行时,用于在JVM上构建高度并发,分布式和弹性消息驱动的应用程序。除Akka之外,您还具有Akka-streams模块,该模块使流的提取和处理变得容易,Alpakka是基于Reactive Streams和Akka的java和Scala的Reactive Enterprise Integration库。这里重点介绍如何使用Java创建Akka项目并将其打包。
您已经知道Akka是基于Scala构建的,因此为什么要使用Java而不是Scala?选择Java有多种原因。
Akka是在JVM上运行的工具包,因此您无需精通Scala即可使用它。
您可能已经有一个精通Java的团队,但没有Scala的团队。
如果您已经具有基于Java的代码库和各种构建工具(Maven等),则进行评估要容易得多。
这里采用简单的方法,并从lightbend quickstart下载应用程序。
经过一些调整后,maven文件将如下所示,请注意,我们将使用lombok。
现在有一个Actor负责管理您的其他Actor。这是称为“守卫Acotr”的顶级Actor。它与ActorSystem一起创建,并且当它停止时,ActorSystem也将停止。
为了创建一个actor,您定义该actor将会收到的消息,并指定它会对这些消息响应什么。
package com.gkatzioura;
import akka.actor.typed.Behavior;
import akka.actor.typed.javadsl.AbstractBehavior;
import akka.actor.typed.javadsl.ActorContext;
import akka.actor.typed.javadsl.Behaviors;
import akka.actor.typed.javadsl.Receive;
import lombok.AllArgsConstructor;
import lombok.Getter;
public class AppGuardian extends AbstractBehavior
public interface GuardianMessage {}
static Behavior
return Behaviors.setup(AppGuardian::new);
}
@Getter
@AllArgsConstructor
public static class MessageToGuardian implements GuardianMessage {
private String message;
}
private AppGuardian(ActorContext
super(context);
}
@Override
public Receive
return newReceiveBuilder().onMessage(MessageToGuardian.class, this::receiveMessage).build();
}
private Behavior
getContext().getLog().info("Message received: {}",messageToGuardian.getMessage());
return this;
}
}
Akka是消息驱动的,因此这个“守卫Acotr”接受到发送给它的消息。这样,那些实现GuardianMessage接口的消息将在这里receiveMessage()方法中处理。
当这个actor被创建时,createReceive方法用于指示如何处理接到的消息,这里是委托给receiveMessage()方法。
请注意,在进行日志记录时,不要在类中使用记录器,而应使用getContext().getLog()
在幕后,日志消息将自动添加actor的路径作为akkaSource映射诊断上下文(MDC)值。
最后一步是添加Main类。
package com.gkatzioura;
import java.io.IOException;
import akka.actor.typed.ActorSystem;
import lombok.extern.slf4j.Slf4j;
@Slf4jhttp://
public class Application {
public static final String APP_NAME = "akka-java-app";
public static void main(String[] args) {
final ActorSystem
appGuardian.tell(new AppGuardian.MessagedFbMThCgEToGuardian("First Akka Java App"));
try {
System.out.println(">>> Press ENTER to exit <<<");
System.in.read();
}
catch (IOException ignored) {
}
finally {
appGuardian.terminate();
}
}
}
这里希望实现的效果是:让我们的“守卫Acotr”打印提交的消息。按下Enter键,Akka应用程序将通过监护人终止。与往常一样,您可以在github上找到源代码。
以上就是如何开发一个简单的Akka Java应用 的详细内容,更多关于Akka Java应用 的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~