Tôi đã phát triển một máy chủ dựa trên Akka và thích ý tưởng Microkernel. Tuy nhiên, khi tôi xem xét implementation details using Java and Maven Tôi đang giao dịch trong một lớp khởi động chính Java đơn giản cho một giải pháp cụ thể về khung công tác hứa hẹn tôi không cần viết kịch bản khởi động và cuối cùng tôi thấy cần:Điểm của Hạt nhân Akka sử dụng Java và Maven là gì?
- Akka được cài đặt (Tôi có thể làm việc mà không cần cài đặt Akka chỉ bằng cách sử dụng thư viện)
- Tôi cần thêm hai thay đổi liên quan đến Maven và một phần lắp ráp bổ sung
- Tôi cũng cần tập lệnh "bắt đầu".
Có thể tôi đang thiếu thứ gì đó? nhưng tôi không thấy bất kỳ thiết lập hoặc lợi thế đơn giản nào so với giải pháp chính Java cũ đơn giản.
CẬP NHẬT: suy nghĩ thêm một chút sau khi nhận được câu trả lời. Có thể vẫn còn một trường hợp tốt để viết lớp chính của bạn về Microkernel để nó có thể được bắt đầu thông qua bảng điều khiển Akka trong tương lai, ví dụ:
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");
}
Vấn đề là bạn phải đặt "chuyên gia Akka" vào CV của mình. –
@TomAnderson Tôi đã suy nghĩ cùng một điều lol. Vấn đề là bạn có thể phát triển một "hạt nhân Akka" wow !!! điều đó có nghĩa là lol. –