/integration-test/kubernetes-api-java/src/main/java/akka/cluster/bootstrap/demo/DemoApp.java

https://github.com/akka/akka-management · Java · 51 lines · 31 code · 13 blank · 7 comment · 0 complexity · 0644cc91f612eeb70c5e2972a498f7bf MD5 · raw file

  1. /*
  2. * Copyright (C) 2017-2020 Lightbend Inc. <https://www.lightbend.com>
  3. */
  4. package akka.cluster.bootstrap.demo;
  5. import akka.actor.ActorSystem;
  6. import akka.actor.Props;
  7. import akka.cluster.Cluster;
  8. import akka.cluster.ClusterEvent;
  9. import akka.http.javadsl.ConnectHttp;
  10. import akka.http.javadsl.Http;
  11. import akka.http.javadsl.server.AllDirectives;
  12. //#start-akka-management
  13. import akka.management.javadsl.AkkaManagement;
  14. //#start-akka-management
  15. import akka.management.cluster.bootstrap.ClusterBootstrap;
  16. import akka.stream.ActorMaterializer;
  17. import akka.stream.Materializer;
  18. public class DemoApp extends AllDirectives {
  19. DemoApp() {
  20. ActorSystem system = ActorSystem.create("Appka");
  21. Materializer mat = ActorMaterializer.create(system);
  22. Cluster cluster = Cluster.get(system);
  23. system.log().info("Started [" + system + "], cluster.selfAddress = " + cluster.selfAddress() + ")");
  24. //#start-akka-management
  25. AkkaManagement.get(system).start();
  26. //#start-akka-management
  27. ClusterBootstrap.get(system).start();
  28. cluster
  29. .subscribe(system.actorOf(Props.create(ClusterWatcher.class)), ClusterEvent.initialStateAsEvents(), ClusterEvent.ClusterDomainEvent.class);
  30. Http.get(system).bindAndHandle(complete("Hello world").flow(system, mat), ConnectHttp.toHost("0.0.0.0", 8080), mat);
  31. cluster.registerOnMemberUp(() -> {
  32. system.log().info("Cluster member is up!");
  33. });
  34. }
  35. public static void main(String[] args) {
  36. new DemoApp();
  37. }
  38. }