Rumah  >  Artikel  >  Java  >  Penemuan perkhidmatan seni bina perkhidmatan mikro dan pendaftaran rangka kerja Java

Penemuan perkhidmatan seni bina perkhidmatan mikro dan pendaftaran rangka kerja Java

WBOY
WBOYasal
2024-06-04 20:39:59494semak imbas

Dalam seni bina perkhidmatan mikro Java, penemuan perkhidmatan dan pendaftaran adalah penting. Eureka dan Konsul ialah dua rangka kerja popular yang menyediakan ciri berikut: Pendaftaran Perkhidmatan: Membenarkan perkhidmatan didaftarkan dalam pendaftaran untuk menjadikannya boleh ditemui oleh perkhidmatan lain. Penemuan perkhidmatan: Membenarkan pelanggan menemui perkhidmatan berdaftar dengan menanyakan pendaftaran. Pemeriksaan kesihatan: Pastikan perkhidmatan tersedia melalui pemeriksaan berkala dan secara automatik menandakan perkhidmatan yang gagal sebagai tidak tersedia. Pengimbangan beban: Pilih contoh perkhidmatan yang paling sesuai untuk pelanggan berdasarkan berat atau algoritma lain. Pengurusan Konfigurasi: Membenarkan penyimpanan dan pengurusan maklumat konfigurasi, seperti rentetan sambungan pangkalan data atau kunci API.

Penemuan perkhidmatan seni bina perkhidmatan mikro dan pendaftaran rangka kerja Java

Penemuan perkhidmatan seni bina perkhidmatan mikro dan pendaftaran rangka kerja Java

Dalam seni bina perkhidmatan mikro, penemuan perkhidmatan dan pendaftaran adalah penting, yang membolehkan perkhidmatan mengenal pasti dan berkomunikasi antara satu sama lain. Terdapat banyak rangka kerja di Jawa yang memudahkan proses ini, dan artikel ini akan memperkenalkan dua rangka kerja yang popular: Eureka dan Konsul.

Eureka

Eureka ialah rangka kerja penemuan perkhidmatan sumber terbuka yang dibangunkan oleh Netflix. Ia adalah sistem pelanggan dan pelayan berasaskan JVM yang menyediakan ciri-ciri berikut:

  • Pendaftaran Perkhidmatan: Perkhidmatan boleh didaftarkan ke pelayan Eureka melalui REST API atau klien Java.
  • Penemuan Perkhidmatan: Pelanggan boleh bertanya kepada pelayan Eureka untuk menemui perkhidmatan berdaftar dan mendapatkan butiran mereka.
  • Pengimbangan Beban: Eureka menyokong pengimbangan beban berasaskan berat, membolehkan pelanggan memilih contoh yang paling sesuai daripada berbilang kejadian perkhidmatan.
  • Perlindungan diri: Eureka menggunakan mekanisme degupan jantung untuk memastikan operasi normal perkhidmatan, dan secara automatik akan mengalih keluar perkhidmatan yang gagal daripada pendaftaran.
// 注册服务
@EurekaClient
@RestController
public class MyController {

  @RequestMapping("/register")
  public String register() {
    EurekaClient client = EurekaClient.getInstance();
    client.registerWithEureka("my-service", "localhost", 8080);
    return "Registered";
  }
}

// 发现服务
@RestController
public class ClientController {

  @RequestMapping("/discover")
  public String discover() {
    EurekaClient client = EurekaClient.getInstance();
    List<InstanceInfo> instances = client.getApplications().getRegisteredApplications("my-service").getInstances();
    return instances.toString();
  }
}

Consul

Consul ialah alat pengurusan konfigurasi dan penemuan perkhidmatan sumber terbuka yang dibangunkan oleh HashiCorp. Ia menyediakan ciri-ciri berikut:

  • Pendaftaran Perkhidmatan: Konsul mendaftar perkhidmatan melalui REST API atau CLI.
  • Penemuan Perkhidmatan: Konsul menggunakan DNS atau API HTTP untuk penemuan perkhidmatan.
  • Pemeriksaan Kesihatan: Konsul memastikan perkhidmatan tersedia melalui pemeriksaan kesihatan berkala dan secara automatik akan menandakan perkhidmatan yang gagal sebagai tidak tersedia.
  • Pengurusan Konfigurasi: Konsul boleh menyimpan dan mengurus maklumat konfigurasi, seperti rentetan sambungan pangkalan data atau kunci API.
// 注册服务
@Service
public class MyService {

  @PostConstruct
  public void register() {
    ConsulClient client = ConsulClientFactory.getConsulClient();
    client.agentServiceRegister("my-service", 8080);
  }
}

// 发现服务
@RestController
public class ClientController {

  @RequestMapping("/discover")
  public String discover() {
    ConsulClient client = ConsulClientFactory.getConsulClient();
    List<Service> services = client.agentServices().blockingList();
    return services.toString();
  }
}

Atas ialah kandungan terperinci Penemuan perkhidmatan seni bina perkhidmatan mikro dan pendaftaran rangka kerja Java. 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