Rumah  >  Artikel  >  Java  >  Idea dan amalan seni bina perkhidmatan mikro Spring Cloud

Idea dan amalan seni bina perkhidmatan mikro Spring Cloud

WBOY
WBOYasal
2023-06-22 08:34:361102semak imbas

Dengan kemajuan pesat teknologi Internet, seni bina perkhidmatan mikro, sebagai model seni bina perisian baharu, telah mula menarik perhatian meluas. Spring Cloud ialah salah satu rangka kerja mikroperkhidmatan sumber terbuka yang paling banyak digunakan. Ia menggunakan ciri-ciri cemerlang Spring Boot untuk membantu pembangun dengan cepat membina aplikasi perkhidmatan mikro berskala, berprestasi tinggi, sangat tersedia dan mudah diurus. Artikel ini akan memperkenalkan idea dan amalan seni bina perkhidmatan mikro Spring Cloud.

1. Pengenalan kepada seni bina perkhidmatan mikro

Seni bina perkhidmatan mikro ialah seni bina sistem teragih yang membahagikan aplikasi tunggal yang kompleks kepada berbilang perkhidmatan kecil. Setiap perkhidmatan mikro mewakili unit berfungsi aplikasi, dan setiap perkhidmatan boleh digunakan, dinaik taraf, dikembangkan dan diselenggara secara bebas, dengan itu meningkatkan kebolehskalaan, keanjalan dan toleransi kesalahan sistem. Pada masa yang sama, seni bina perkhidmatan mikro menggunakan mekanisme komunikasi ringan untuk menjadikan komunikasi antara perkhidmatan lebih mudah, lebih pantas dan lebih dipercayai.

2. Idea seni bina perkhidmatan mikro Spring Cloud

Spring Cloud ialah rangka kerja mikro berasaskan Spring Boot Ia menyediakan pelbagai komponen perkhidmatan mikro, seperti pusat pendaftaran perkhidmatan dan pusat konfigurasi. pengimbangan beban, pemutus litar, get laluan API, dsb., boleh membantu pembangun membina aplikasi perkhidmatan mikro dengan cepat.

  1. Pendaftaran dan penemuan perkhidmatan

Spring Cloud menyediakan dua pusat pendaftaran perkhidmatan, Eureka dan Konsul. Pembekal perkhidmatan mendaftarkan maklumat perkhidmatannya ke pusat pendaftaran perkhidmatan apabila ia bermula, dan pengguna perkhidmatan boleh menanyakan contoh perkhidmatan yang tersedia melalui pusat pendaftaran perkhidmatan. Pusat pendaftaran perkhidmatan juga menyediakan mekanisme degupan jantung dan strategi pengimbangan beban.

  1. Pusat Konfigurasi

Spring Cloud Config ialah pusat konfigurasi teragih yang disediakan oleh Spring Cloud, yang boleh merealisasikan pengurusan terpusat dan kemas kini konfigurasi yang dinamik. Pembangun hanya perlu meletakkan fail konfigurasi aplikasi di pusat konfigurasi untuk mencapai konfigurasi dinamik dan kemas kini aplikasi.

  1. Pengimbangan Beban

Spring Cloud menyediakan dua komponen pengimbangan beban: Ribbon dan Feign. Ribbon ialah pengimbang beban sisi klien berdasarkan HTTP dan TCP yang mengurus pengimbangan beban dan failover secara automatik. Feign ialah klien HTTP deklaratif yang menukar permintaan HTTP kepada panggilan kaedah Java, memudahkan proses pengekodan panggilan perkhidmatan.

  1. Pemutus litar

Spring Cloud menyediakan pemutus litar Hystrix, yang boleh merealisasikan kemerosotan perkhidmatan dan pemutus litar. Apabila perkhidmatan gagal, Hystrix boleh bertukar secara automatik kepada perkhidmatan sandaran atau kembali kepada nilai lalai untuk memastikan ketersediaan dan kestabilan sistem.

  1. API Gateway

Spring Cloud menyediakan gerbang API Zuul, yang boleh menyediakan masuk dan keluar bersatu untuk perkhidmatan mikro. Zuul boleh melaksanakan penghalaan, penapisan, pengimbangan beban, pengendalian pengecualian dan fungsi lain, yang boleh meningkatkan keselamatan, kebolehselenggaraan dan kebolehskalaan sistem.

3. Amalan seni bina perkhidmatan mikro Spring Cloud

Berikut mengambil sistem pusat beli-belah dalam talian yang mudah sebagai contoh untuk memperkenalkan cara menggunakan Spring Cloud untuk membina aplikasi perkhidmatan mikro.

  1. Buat pusat pendaftaran perkhidmatan

Gunakan Eureka untuk mencipta pusat pendaftaran perkhidmatan. Tambahkan kebergantungan berikut pada projek:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

Tambahkan anotasi @EnableEurekaServer ke kelas permulaan aplikasi untuk memulakan pusat pendaftaran perkhidmatan Eureka.

  1. Buat perkhidmatan produk

Perkhidmatan produk menyediakan fungsi pertanyaan untuk maklumat produk. Cipta aplikasi web standard menggunakan Spring MVC. Tambahkan kebergantungan berikut dalam fail pom.xml aplikasi:

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

Tambah anotasi @EnableDiscoveryClient dalam kelas permulaan aplikasi untuk mendaftarkan perkhidmatan ke pusat pendaftaran perkhidmatan Eureka.

  1. Buat perkhidmatan pesanan

Perkhidmatan pesanan menyediakan fungsi penciptaan pesanan dan pertanyaan. Cipta aplikasi web standard menggunakan Spring MVC. Tambahkan kebergantungan berikut dalam fail pom.xml aplikasi:

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

Tambah anotasi @EnableDiscoveryClient dalam kelas permulaan aplikasi untuk mendaftarkan perkhidmatan ke pusat pendaftaran perkhidmatan Eureka.

  1. Gunakan Ribbon untuk mencapai pengimbangan beban

Apabila memanggil perkhidmatan produk dalam perkhidmatan pesanan, anda boleh menggunakan Ribbon untuk mencapai pengimbangan beban. Tambahkan kebergantungan berikut dalam fail pom.xml aplikasi:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

Buat kelas konfigurasi Ribbon dan anotasi objek RestTemplate dengan anotasi @LoadBalanced. Apabila memanggil perkhidmatan produk dalam perkhidmatan pesanan, anda hanya perlu menggunakan objek RestTemplate.

  1. Gunakan Hystrix untuk melaksanakan pemutus litar

Apabila memanggil perkhidmatan produk dalam perkhidmatan pesanan, kegagalan mungkin berlaku. Untuk memastikan ketersediaan dan kestabilan perkhidmatan pesanan, Hystrix boleh digunakan untuk melaksanakan pemutus litar. Tambahkan kebergantungan berikut dalam fail pom.xml aplikasi:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

Buat kelas konfigurasi Hystrix dan gunakan anotasi @HystrixCommand untuk menganotasi kaedah perkhidmatan. Apabila kaedah perkhidmatan gagal, Hystrix akan bertukar secara automatik kepada perkhidmatan ganti atau kembali kepada nilai lalai.

  1. Gunakan Zuul untuk melaksanakan get laluan API

Gunakan Zuul untuk melaksanakan get laluan API dalam pesanan perkhidmatan dan perkhidmatan produk. Tambahkan kebergantungan berikut dalam fail pom.xml aplikasi:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

Buat kelas konfigurasi Zuul dan gunakan anotasi @EnableZuulProxy untuk mendayakan proksi Zuul. Konfigurasikan peraturan penghalaan dan penapis dalam fail konfigurasi.

Di atas adalah langkah utama untuk membina aplikasi perkhidmatan mikro menggunakan Spring Cloud.

4

Spring Cloud ialah rangka kerja perkhidmatan mikro berdasarkan Spring Boot Ia menyediakan pelbagai komponen perkhidmatan mikro untuk membantu pembangun dengan cepat membina aplikasi perkhidmatan mikro berskala, berprestasi tinggi, sangat tersedia dan mudah diurus. Artikel ini memperkenalkan idea dan amalan seni bina perkhidmatan mikro Spring Cloud, dengan harapan dapat membantu pembangun. Pada masa yang sama, walaupun seni bina perkhidmatan mikro membawa banyak faedah, ia juga memerlukan pembangun untuk melaksanakan lebih banyak kerja reka bentuk dan pembangunan untuk mencapai kejayaan projek.

Atas ialah kandungan terperinci Idea dan amalan seni bina 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