Rumah  >  Artikel  >  Java  >  Cara menggunakan Java untuk membangunkan aplikasi yang diedarkan berdasarkan Kluster Akka

Cara menggunakan Java untuk membangunkan aplikasi yang diedarkan berdasarkan Kluster Akka

王林
王林asal
2023-09-22 09:54:25846semak imbas

如何使用Java开发一个基于Akka Cluster的分布式应用

Cara menggunakan Java untuk membangunkan aplikasi teragih berdasarkan Kluster Akka

Pengenalan:
Dengan pembangunan pengkomputeran awan data besar Dengan pembangunan aplikasi yang diedarkan, permintaan untuk aplikasi yang diedarkan menjadi semakin penting. Kluster Akka ialah penyelesaian pengkomputeran teragih berdasarkan rangka kerja Akka, yang menyediakan cara mudah untuk membangun dan menggunakan aplikasi teragih. Artikel ini akan memperkenalkan cara menggunakan Java untuk membangunkan aplikasi yang diedarkan berdasarkan Kluster Akka dan memberikan contoh kod khusus.

1. Prasyarat:
Sebelum anda bermula, anda perlu melakukan beberapa persediaan:

  1. Pasang Java Development Kit (JDK)#🎜# 🎜
  2. Pasang rangka kerja Akka
  3. Pastikan anda sudah biasa dengan bahasa pengaturcaraan Java dan konsep pengaturcaraan serentak asas.
2. Buat projek asas:

Sebelum memulakan pembangunan sebenar, kita perlu mencipta projek asas, termasuk fail dan folder berikut:
#🎜 🎜 #

Fail pom.xml projek Maven, digunakan untuk mengurus kebergantungan projek.
  1. Folder src/main/java, digunakan untuk menyimpan kod sumber Java.
  2. Folder src/utama/sumber yang digunakan untuk menyimpan fail konfigurasi.
  3. Pertama, tambahkan kebergantungan berikut dalam pom ;/dependency>
  4. b4b38e33757a6497aa8690936b905cc1
    <groupId>com.typesafe.akka</groupId>
    <artifactId>akka-actor_2.12</artifactId>
    <version>2.5.25</version>
  5. 09a0e22e5aaafd848ae04665be625b91#🎜;#dependency>#🎜; 🎜🎜#
Kemudian, dalam src/main/ Cipta fail kod sumber Java berikut dalam folder java:


import akka.actor.AbstractActor;

import akka.actor. ActorRef;

import akka.actor.ActorSelection;#🎜 🎜#import akka.actor.ActorSystem;
import akka.actor.Props;

import akka.cluster.Cluster;#🎜 import akka.cluster.ClusterEvent;

import akka.cluster .ClusterEvent.MemberJoined;
import akka.cluster.ClusterEvent.MemberUp;

import akka.cluster.ClusterEvent;🎜 import akka.cluster.ClusterEvent.MemberEvent;

import akka .japi.pf.ReceiveBuilder;

kelas awam Utama {
public static void main(String[] args) {# 🎜🎜#

<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster_2.12</artifactId>
<version>2.5.25</version>

}
}# 🎜🎜#kelas awam MasterActor meluaskan AbstractActor {
kluster kluster persendirian = Cluster.get(getContext().getSystem());#🎜## 🎜🎜#public MasterActor() {
ActorSystem system = ActorSystem.create("cluster-system");
ActorRef master = system.actorOf(Props.create(MasterActor.class), "master");
ActorRef worker1 = system.actorOf(Props.create(WorkerActor.class), "worker1");
ActorRef worker2 = system.actorOf(Props.create(WorkerActor.class), "worker2");
#🎜 🎜#}

public static Props props() {
cluster.subscribe(getSelf(), ClusterEvent.MemberEvent.class);
#🎜🎜🎜🎜#🎜🎜} #@Override
awam Terima createReceive() {#🎜 🎜#
return Props.create(MasterActor.class);

}
}

public class WorkerActor extends AbstractActor Receive {#🎜🎜🎜🎜# @Override public createReceive() {

return ReceiveBuilder.create()
    .match(MemberUp.class, mUp -> {
      System.out.println("Member is Up: " + mUp.member());
    })
    .match(MemberJoined.class, mJoined -> {
      System.out.println("Member joined: " + mJoined.member());
    })
    .match(MemberRemoved.class, mRemoved -> {
      System.out.println("Member is Removed: " + mRemoved.member());
    })
    .match(MemberEvent.class, message -> {
      // handle other member events
    })
    .build();

}# 🎜🎜#}

3 Jalankan aplikasi yang diedarkan:
Sekarang, kami telah mencipta projek asas Kluster Akka , kita perlu menjalankan aplikasi untuk menguji Fungsi pengedarannya. Pertama, kita perlu memulakan tiga proses Java bebas untuk mensimulasikan nod Master dan Worker dalam kelompok.

Dalam konsol, jalankan arahan berikut masing-masing:

java -jar 417eea7e877cad4bcd3784e57ac3af71/target/your_project_name.jar -Dakka.remote.netty.tcp.port= 2551

java -jar 417eea7e877cad4bcd3784e57ac3af71/target/your_project_name.jar -Dakka.remote.netty.tcp.port=2552

java -jar 417eea7e877cad4bcd3784e57ac3af71/target_project_folder> remote .netty.tcp.port=2553

Di mana, folder_projek anda ialah laluan folder projek anda, nama_projek anda ialah nama projek anda.

Apabila tiga proses Java dimulakan, anda akan melihat beberapa maklumat output, termasuk penciptaan Master Actor dan Worker Actor, maklumat nod ditambahkan pada kluster, dsb.

4. Kesimpulan:
Artikel ini memperkenalkan cara menggunakan Java untuk membangunkan aplikasi teragih berdasarkan Kluster Akka, dan menyediakan contoh kod sebenar. Kluster Akka boleh digunakan untuk membangunkan dan menggunakan aplikasi teragih dengan mudah Ia menyediakan kebolehskalaan dan toleransi kesalahan, dan boleh mengendalikan tugas serentak dan teragih berskala besar. Saya harap artikel ini memberi anda pemahaman asas tentang Kluster Akka dan membantu anda mula membina aplikasi yang diedarkan anda sendiri.

Atas ialah kandungan terperinci Cara menggunakan Java untuk membangunkan aplikasi yang diedarkan berdasarkan Kluster Akka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn