Rumah  >  Artikel  >  Java  >  Pendaftaran perkhidmatan dan penemuan dalam perkhidmatan mikro Spring Cloud

Pendaftaran perkhidmatan dan penemuan dalam perkhidmatan mikro Spring Cloud

WBOY
WBOYasal
2023-06-23 09:48:06991semak imbas

Dengan pembangunan berterusan perniagaan Internet, aplikasi tunggal tidak lagi dapat memenuhi keperluan keperluan perniagaan yang kompleks, dan seni bina perkhidmatan mikro secara beransur-ansur menjadi model seni bina perniagaan yang popular. Spring Cloud ialah salah satu teknologi sokongan yang penting di bawah sistem seni bina perkhidmatan mikro, dan pelaksanaan fungsi penemuan dan pendaftaran perkhidmatannya adalah sangat penting. Artikel ini akan menerangkan secara terperinci pendaftaran perkhidmatan dan fungsi penemuan dalam Spring Cloud.

  1. Latar Belakang

Dalam seni bina perkhidmatan mikro, setiap modul berfungsi ialah perkhidmatan bebas dan perkhidmatan perlu berkomunikasi antara satu sama lain, jadi mekanisme diperlukan untuk mengurusnya. Komunikasi antara perkhidmatan. Mekanisme pendaftaran dan penemuan perkhidmatan adalah satu mekanisme yang membolehkan perkhidmatan mendaftar secara dinamik dan menemui perkhidmatan lain supaya mereka boleh berkomunikasi dan bekerjasama.

Spring Cloud menyediakan mekanisme untuk pendaftaran dan penemuan perkhidmatan, menyepadukan pusat pendaftaran yang berbeza, seperti Eureka dan konsul. Antaranya, Eureka adalah salah satu pusat pendaftaran paling popular dengan ketersediaan dan prestasi tinggi.

  1. Pendaftaran Perkhidmatan

Tujuan pendaftaran perkhidmatan adalah untuk mendaftarkan perkhidmatan ke pusat pendaftaran supaya perkhidmatan lain boleh menggunakannya. Dalam Spring Cloud, fungsi penemuan perkhidmatan dan pendaftaran didayakan melalui anotasi @EnableDiscoveryClient Pada masa yang sama, maklumat konfigurasi yang berkaitan perlu ditambahkan pada fail application.yml.

server:
  port: 8080
spring:
  application:
    name: service-demo
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/

Dalam konfigurasi di atas, application.name ialah nama perkhidmatan dan eureka.client.service-url.defaultZone ialah alamat pusat pendaftaran.

  1. Penemuan perkhidmatan

Tujuan penemuan perkhidmatan adalah untuk mencari contoh perkhidmatan yang diperlukan daripada pusat pendaftaran dan kemudian memanggil contoh perkhidmatan ini mengikut dasar pengimbangan beban. Spring Cloud menyediakan pelbagai penyelesaian untuk penemuan perkhidmatan dan pengimbangan beban, seperti Ribbon, Feign, dsb.

Apabila menggunakan Ribbon untuk melaksanakan penemuan perkhidmatan dan pengimbangan beban, anda perlu menambah kebergantungan yang berkaitan dalam fail pom.xml. Kod sampel adalah seperti berikut:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  <version>2.2.6.RELEASE</version>
</dependency>

Mula-mula, anda perlu menambah anotasi @EnableDiscoveryClient pada kelas permulaan untuk mendayakan pendaftaran perkhidmatan dan fungsi penemuan. Kemudian, anda boleh menggunakan anotasi @LoadBalanced untuk membuat contoh RestTemplate seimbang beban, dan kemudian gunakan tika ini untuk memanggil perkhidmatan lain Kod sampel adalah seperti berikut:

@RestController
public class ServiceController {
    @Autowired
    private RestTemplate restTemplate;
 
    @RequestMapping("/getProduct")
    public String getProduct() {
        String result = restTemplate.getForObject("http://product-service/product", String.class);
        return "get product from " + result;
    }
 
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceDemoApplication.class, args);
    }
}

Dalam kod di atas, gunakan restTemplate. Kaedah .getForObject() untuk memanggil perkhidmatan lain , anda perlu menggunakan "nama aplikasi" dan bukannya alamat sebenar, seperti "http://product-service/product", di mana product-service ialah nama perkhidmatan.

  1. Ringkasan

Spring Cloud menyediakan pendaftaran perkhidmatan dan fungsi penemuan, yang membolehkan setiap contoh perkhidmatan menemui dan memanggil satu sama lain. Melalui mekanisme ini, setiap komponen dalam seni bina perkhidmatan mikro boleh diurus dan dijadualkan dengan lebih mudah, dan ketersediaan dan kebolehskalaan keseluruhan sistem boleh dipertingkatkan.

Atas ialah kandungan terperinci Pendaftaran perkhidmatan dan penemuan dalam perkhidmatan mikro Spring Cloud. 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