Saya telah terpapar pada layanan mikro baru -baru ini dan memiliki beberapa pemahaman tentang aspek ini. Saya akan membaginya dengan Anda.
Spring Cloud adalah satu set kerangka kerja lengkap untuk mengimplementasikan layanan microser berdasarkan boot musim semi. Dapat dikatakan bahwa Spring Boot sebagai kerangka kerja dan cloud pegas sebagai layanan mikro bersama -sama membentuk sistem kerangka kerja baru yang tidak dapat diabaikan. Ini menyediakan komponen yang diperlukan untuk pengembangan layanan mikro seperti manajemen konfigurasi, penemuan layanan, pemutus sirkuit, perutean cerdas, agen mikro, bus kontrol, kunci global, kampanye pengambilan keputusan, sesi terdistribusi dan manajemen negara klaster, yang nyaman dan mudah digunakan. Spring Cloud mencakup banyak subframe, di antaranya Spring Cloud Netflix adalah salah satu kerangka kerja, yang terutama menyediakan modul: penemuan layanan, pemutus sirkuit dan pemantauan, perutean cerdas, penyeimbangan beban klien, dll.
ciri
(1) Eureka, pendaftaran dan penemuan layanan, menyediakan pusat pendaftaran layanan, klien penemuan layanan, dan antarmuka yang nyaman untuk melihat semua layanan terdaftar. Semua layanan menggunakan klien penemuan layanan Eureka untuk mendaftarkan diri ke server Eureka.
(2) Zuul, Gateway, semua klien meminta untuk mengakses layanan backend melalui gateway ini. Ini dapat menggunakan konfigurasi perutean tertentu untuk menentukan layanan mana yang menangani URL tertentu. Dan dapatkan layanan terdaftar dari Eureka untuk meneruskan permintaan.
(3) Pita, yaitu penyeimbangan beban. Ketika Zuul Gateway mengirimkan permintaan ke aplikasi layanan tertentu, jika layanan memulai beberapa contoh, itu akan mengirimkannya ke instance layanan tertentu melalui pita melalui kebijakan penyeimbangan beban tertentu.
(4) Rangka, klien layanan, jika layanan perlu mengakses satu sama lain, Anda dapat menggunakan RestTemplate atau Petchign Client untuk mengakses. Menggunakan pita secara default untuk mencapai penyeimbangan beban.
(5) Hystrix, pemantauan dan pemutus sirkuit. Kami hanya perlu menambahkan tag Hystrix ke antarmuka layanan untuk mewujudkan fungsi pemantauan dan pemutus sirkuit dari antarmuka ini.
(6) Dasbor Hystrix, Panel Pemantauan, menyediakan antarmuka yang dapat memantau waktu yang dikonsumsi oleh panggilan layanan pada setiap layanan.
(7) Turbin, agregasi pemantauan, menggunakan pemantauan Hystrix, kita perlu membuka informasi pemantauan dari setiap instance layanan untuk dilihat. Turbin dapat membantu kami mengumpulkan informasi pemantauan dari semua instance layanan ke satu tempat untuk dilihat terpadu.
Anda dapat merujuk ke dokumen di dalamnya: https://springcloud.cc/spring-cloud-netflix.html
(1) Pusat Pendaftaran dan Pemantauan Layanan:
@SpringbootApplication@enableeureKaserver@enableHyStrixDashboardPublic kelas aplikasi registrasi {public static void main (string [] args) {new springApplicationBuilder (application.class) .web (true) .run (args); }}Di sini, @springbootApplication menggunakan tag boot pegas menunjukkan bahwa aplikasi saat ini adalah aplikasi boot pegas. Dengan cara ini, saya dapat secara langsung menggunakan fungsi utama untuk memulai aplikasi di IDE, atau saya dapat memulainya dengan baris perintah setelah pengemasan. Tentu saja, Anda juga dapat memulai paket perang yang dikemas dengan server seperti Tomcat. Gunakan tag @EnableEureKaserver untuk memulai komponen Registry Layanan Eureka selama startup. Ini akan mendengarkan port, yaitu 8761 secara default, untuk menerima pendaftaran layanan. Dan menyediakan halaman web. Setelah membukanya, Anda dapat melihat layanan terdaftar. Menambahkan @EnableHystrixDashboard akan menyediakan halaman pemantauan. Kami dapat memasukkan alamat layanan yang akan dipantau di atasnya untuk melihat status panggilan antarmuka dengan pemantauan Hystrix diaktifkan. Tentu saja, untuk menggunakan komponen di atas, kita perlu menambahkan ketergantungan yang sesuai dalam file Maven Pom, seperti menggunakan orang-orang tua boot-starter, mengandalkan papan-cloud-starter-eureka-server dan spring-cloud-starter-histrix-dashboard.
(2) Panggilan antar-layanan:
Ada dua cara untuk melakukan panggilan layanan, resttemplate dan kepemilikan. Tidak peduli apa metodenya, ia menyebut antarmuka HTTP layanan melalui antarmuka REST, dan parameter dan hasilnya diserialisasi dan deserialisasi secara default melalui Jackson. Karena antarmuka yang ditentukan oleh RestController Spring MVC, data yang dikembalikan diserialisasi ke dalam data JSON melalui Jackson.
Tipe pertama: RestTemplate, Anda hanya perlu mendefinisikan kacang resttemplate dan mengaturnya menjadi load seimbang:
@ConfigurationPublic kelas SomeCloudConfiguration {@LoadBalAding @Bean restTemplate restTemplate () {return new resttemplate (); }}Dengan cara ini, kita dapat menyuntikkan kacang ini di mana kita membutuhkannya:
kelas publik SomeserviceClass {@Autowired Private RestTemplate RestTemplate; string publik getUserbyId (long userId) {userDTO result = restTemplate.getForObject ("http: // user/getUserDetail/" + userid, userdto.class); hasil pengembalian; }}Di mana, pengguna adalah ID layanan, Ribbon akan mendapatkan contoh layanan ini dari daftar instance layanan, mengirim permintaan, dan mendapatkan hasilnya. Object UserDTO memerlukan nomor seri, dan nomor anti-serialnya akan selesai secara otomatis.
Tipe kedua: Fignclient
@FeignClient (value = "Users", path = "/Users") Antarmuka Public UserCompoSiSeService {@RequestMapping (value = "/getUserDetail/{id}", Method = requestMethod.get, menghasilkan = mediatype.application_json_value) usdto getusbyid (@pathyvarieee -long;Kami hanya perlu mendefinisikan alasan menggunakan @FeignClient. Spring Cloud Ries akan membantu kami menghasilkan implementasi dan mendapatkan data dari layanan pengguna yang sesuai. Di antara mereka, nilai di @FeignClient (value = "users", path = "/user/getUserdetail") adalah ID layanan, dan jalur adalah awalan jalur dari grup antarmuka ini. Dalam definisi metode berikut, sama seperti menyiapkan antarmuka Spring MVC, untuk metode ini, URL yang sesuai adalah/pengguna/getUserDetail/{id}. Kemudian, saat menggunakannya, seperti menyuntikkan layanan umum dan kemudian menggunakannya:
kelas publik someotherserviceClass {@Autowired private userCompoSiSterService UserserService; public void dosomething () {// ...... UserDTO result = UserserVice.getUserbyId (userId); // operasi lain ...}}(3) Pemutus Sirkuit:
// Circuit Breaker: Untuk menyelesaikan masalah yang memanggil metode fallback untuk mengganti metode yang gagal ketika panggilan metode gagal, fungsi kesalahan toleransi/pemblokiran kesalahan kaskade telah tercapai. // FallbackMethod menentukan metode fallback @HyStrixCommand (fallbackMethod = "dostudentfallback") @requestmapping (value = "dostudent", metode = requestMethod.get) public string dostudent () {return "nama Anda: rahasia Anda: rahasia!";Di antara mereka, gunakan @EnableCircuTbreaker untuk mengaktifkan dukungan pemutus sirkuit. Spring Cloud menyediakan konsol untuk memantau pengoperasian pemutus sirkuit, yang diaktifkan melalui anotasi @EnableHystrixDashboard.
Di atas adalah pengantar singkat untuk komponen Spring Cloud Netflix. Saya berharap ini akan membantu untuk pembelajaran semua orang, dan saya harap semua orang akan lebih mendukung wulin.com.