Rumah  >  Artikel  >  Java  >  Pemutus litar perkhidmatan dan turun taraf di bawah seni bina perkhidmatan mikro Spring Cloud

Pemutus litar perkhidmatan dan turun taraf di bawah seni bina perkhidmatan mikro Spring Cloud

WBOY
WBOYasal
2023-06-22 08:18:091666semak imbas

Dengan perkembangan pesat Internet, semakin banyak perniagaan perlu menyokong konkurensi tinggi, ketersediaan tinggi dan prestasi tinggi, yang menimbulkan cabaran baharu kepada seni bina monolitik tradisional dan kaedah penyimpanan pangkalan data. Seni bina perkhidmatan mikro menyelesaikan banyak masalah yang dihadapi oleh seni bina monolitik tradisional dalam persekitaran teragih dengan membahagikan sistem kepada berbilang perkhidmatan kecil bebas.

Dalam seni bina perkhidmatan mikro, setiap unit berfungsi ialah perkhidmatan bebas dan perkhidmatan memanggil satu sama lain dalam pelbagai cara. Tidak dapat dielakkan untuk menghadapi masalah seperti pengecualian dan kegagalan antara perkhidmatan. Sebagai tindak balas kepada situasi ini, kami perlu memperkenalkan beberapa mekanisme untuk memastikan ketersediaan dan kestabilan sistem, termasuk gangguan perkhidmatan dan kemerosotan.

Pemutus litar servis

Pemutus litar servis ialah mekanisme toleransi kesalahan biasa Apabila kadar ralat perkhidmatan melebihi ambang tertentu, pemutus litar akan terbuka, memutuskan sambungan panggilan antara perkhidmatan. dan kembalikan respons lalai yang telah ditetapkan.

Litar boleh mengendalikan situasi abnormal dengan berkesan dalam tempoh masa yang singkat, menghalang tindak balas yang salah daripada dihantar ke sistem huluan, mengelakkan sistem huluan dan hiliran daripada mengheret satu sama lain ke bawah, dan meningkatkan ketersediaan keseluruhan sistem. Secara amnya, pemutus litar perkhidmatan boleh dicapai melalui Hystrix yang disertakan dengan Spring Cloud.

Langkah untuk menggunakan Hystrix:

1 Perkenalkan kebergantungan Hystrix

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

2. Tambahkan anotasi @EnableCircuitBreaker pada kelas utama

rreee

3 @ HystrixCommand anotasi mengendalikan kemerosotan perkhidmatan dan pemutus litar

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

Kemerosotan perkhidmatan

Memandangkan tindak balas lalai pemutus litar perkhidmatan mungkin tidak sepadan dengan senario perniagaan sebenar, kami juga perlu memperkenalkan mekanisme kemerosotan perkhidmatan apabila perkhidmatan itu tidak normal atau pemutus litar Daripada membuang pengecualian atau mengembalikan hasil ralat, kembalikan respons lalai yang telah ditetapkan.

Apabila perkhidmatan diturunkan, strategi pemprosesan yang sepadan perlu dirangka berdasarkan keperluan perniagaan sebenar. Contohnya, data cache, nilai lalai, gesaan pengecualian, dsb. boleh dikembalikan apabila perkhidmatan diturunkan untuk meminimumkan kesan kepada pengguna.

Langkah untuk melaksanakan degradasi perkhidmatan menggunakan Spring Cloud adalah serupa dengan pemutus litar perkhidmatan. Anda perlu menggunakan anotasi @HystrixCommand dalam kelas sumber dan nyatakan kaedah yang sepadan dengan atribut fallbackMethod untuk melaksanakan degradasi perkhidmatan.

@HystrixCommand(fallbackMethod = "defaultProcess")
public String process(String data) {
    // 服务调用
}

public String defaultProcess(String data) {
    // 熔断和降级处理
}

Ringkasnya, dalam seni bina perkhidmatan mikro, pemutus litar dan mekanisme penurunan taraf adalah mekanisme toleransi kerosakan yang sangat penting yang menyediakan Hystrix untuk menyokong mekanisme ini. Apabila berhadapan dengan kegagalan perkhidmatan atau keabnormalan, kita harus melakukan pemprosesan pemutus litar dan penurunan taraf tepat pada masanya untuk mengelakkan kerosakan yang merebak, dengan itu memastikan ketersediaan dan keteguhan sistem.

Atas ialah kandungan terperinci Pemutus litar perkhidmatan dan turun taraf di bawah 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