2013-06-27 25 views
5

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"); 
    } 
+0

Vấn đề là bạn phải đặt "chuyên gia Akka" vào CV của mình. –

+0

@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. –

Trả lời

8

Microkernel có thể thuận tiện như cơ chế đóng gói khi sử dụng sbt, nhưng đối với người dùng Maven, tôi đồng ý không thêm bất kỳ giá trị nào. Tôi nghĩ bạn nên sử dụng một lớp học chính và đóng gói ứng dụng của bạn theo cách quạ.

+0

Làm cho tinh thần, cảm ơn bạn. –

0

Ít nhất nhân vi hạt nhân đã lưu cho bạn định nghĩa của móc tắt (xử lý CTRL-C). Trong phương pháp chính đơn giản, đây là mối quan tâm của bạn. Tất nhiên không có gì đặc biệt hay lạ mắt ở đây.

Các vấn đề liên quan