gpt4 book ai didi

java - 使用 Java 和 Maven 的 Akka 微内核有什么意义?

转载 作者:搜寻专家 更新时间:2023-10-31 19:39:45 24 4
gpt4 key购买 nike

我开发了一个基于 Akka 的服务器并且喜欢 Microkernel主意。但是,当我查看 implementation details using Java and Maven我正在用一个简单的 Java 主启动类换取一个框架特定的解决方案,该解决方案 promise 我不需要编写启动脚本,最后我发现它需要:

  • 安装了 Akka(否则我可以在没有安装 Akka 的情况下仅使用库进行工作)
  • 我需要两个额外的 Maven 相关更改和一个额外的组装工件
  • 我还需要一个“启动”脚本,那有什么意义呢?

也许我遗漏了什么?但与普通的旧 Java 主要解决方案相比,我看不到任何更简单的设置或优势。

更新:得到答案后再思考一下。在微内核方面编写主类可能仍然是一个很好的案例,以便将来可以通过 Akka 控制台启动它,例如

public class MapReduceServer implements Bootable {
//---------------------------------------------------------------
// public
//---------------------------------------------------------------
/**
* Default constructor simply initializes the system.
*/
public MapReduceServer() {
system = ActorSystem.create("MapReduceApp", ConfigFactory.
load().getConfig("MapReduceApp"));
}

//---------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public void startup() {
// create the list of reduce Actors
ActorRef reduceActor = system.actorOf(Props.create(ReduceActor.class)
.withRouter(new FromConfig()), "reduceActor");

// create the list of map Actors
ActorRef mapActor = system.actorOf(Props.create(MapActor.class, reduceActor).
withRouter(new FromConfig()), "mapActor");

// create the overall Master Actor that acts as the remote actor for clients
@SuppressWarnings("unused")
ActorRef masterActor = system.actorOf(
Props.create(MapReduceMasterActor.class, mapActor), "masterActor");
}

//---------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public void shutdown() {
system.shutdown();
}

//---------------------------------------------------------------
/**
* Main method
*
* @param args
*/
public static void main(String[] args) {
MapReduceServer mapReduceServer = null;

LOGGER.info("starting ...");
mapReduceServer = new MapReduceServer();
mapReduceServer.startup();
LOGGER.info("done");
}

最佳答案

当使用 sbt 时,微内核作为一种打包机制可能很方便,但对于 Maven 用户,我同意它不会增加任何值(value)。我认为您应该使用主类并以 maven 方式打包您的应用程序。

关于java - 使用 Java 和 Maven 的 Akka 微内核有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17343287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com