Gunakan Eureka untuk mencapai tata kelola layanan
FUNGSI: REALUS Tata Kelola Layanan (Pendaftaran dan Penemuan Layanan)
Pendahuluan: Spring Cloud Eureka adalah modul tata kelola layanan di bawah proyek Spring Cloud Netflix. Proyek Spring Cloud Netflix adalah salah satu subproyject dari Spring Cloud. Konten utamanya adalah mengemas serangkaian produk open source dari Netflix. Ini menyediakan integrasi Netflix OSS yang dikonfigurasi sendiri untuk aplikasi boot pegas. Dengan beberapa anotasi sederhana, pengembang dapat dengan cepat mengonfigurasi modul yang umum digunakan dalam aplikasi mereka dan membangun sistem terdistribusi besar. Modul utamanya meliputi: penemuan layanan (eureka), pemutus sirkuit (hystrix), routing cerdas (zuul), penyeimbang beban klien (pita), dll.
Praktik Praktis Proyek:
Pusat Pendaftaran Layanan: Eureka-Server
Fungsi: Pusat Pendaftaran Layanan menyediakan fungsi pendaftaran layanan
Penyedia Layanan: Eureka-Client
Fungsi: Daftarkan Layanan ke Pusat Pendaftaran Layanan
Pusat Pendaftaran Layanan: Eureka-Server
Buat Proyek Springboot Baru: Eureka-Server, dan konfigurasi pom.xml-nya adalah sebagai berikut:
<Properties> <Project.Build.Sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputencoding> <Java.version> 1.8 </java.version> </versies> <Java.versies> 1.8 </java.version> </versies> <groupid> org.springframework.cloud </groupid> <Artifactid> Spring-cloud-starter-eureka-server </t Artifactid> </dependency> </dependency> <dependencyManagement> <Arpendencies> <pendgrouct> <Eprupid> org.springframework <version> dalston.sr1 </version> <ype> pom </ype> <scope> impor </opope> </dependency> </dependencies> </dependencyManagement>
Sangat mudah untuk mengimplementasikan fungsi pusat pendaftaran layanan. Anda hanya perlu menggunakan anotasi @EnableEureKaserver pada kelas startup proyek eurekaserverApplication.
@EnableEureKaserver @springbootApplication kelas publik eurekaserverApplication {public static void main (string [] args) {new springApplicationBuilder (eureKaserverApplication.class) .web (true) .run (args); }}Secara default, pusat pendaftaran layanan juga akan mencoba mendaftarkan dirinya sebagai klien, jadi kami perlu menonaktifkan perilaku pendaftaran kliennya dan cukup menambahkan informasi berikut ke file konfigurasi application.properties:
spring.application.name = eureka-serverserver.port = 1001eureka.instance.hostname = localhosteureka.client.register-with-eureka = falseeureka.client.fetch-registry = false
Mulai EurekaserverApplication, kunjungi http: // localhost: 9001/untuk melihat halaman Eureka. Dari lokasi kotak merah, Anda dapat melihat bahwa tidak ada contoh layanan tugas yang terdaftar di Pusat Registrasi Layanan saat ini.
Penyedia Layanan: Eureka-Client
Setelah setiap contoh terdaftar, detak jantung diperlukan untuk mengirim detak jantung ke pusat pendaftaran. Ketika klien mendaftar dengan server, itu akan menyediakan beberapa metadata, seperti host dan port, URL, halaman beranda, dll. Server Eureka menerima pesan detak jantung dari setiap instance klien. Jika detak jantung kali keluar, instance biasanya dihapus dari server yang terdaftar.
Buat Proyek Springboot Baru: Eureka-Client, dan konfigurasi pom.xml-nya adalah sebagai berikut:
<Properties> <Project.Build.Sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputEncoding> UTF-8 </project.report.outputencoding> <Java.version> 1.8 </java.version> </versies> <Java.versies> 1.8 </java.version> </versies> <GroupId> org.springframework.cloud </groupid> <ArtifactId> Spring-cloud-starter-eureka </arttifactid> </dependency> <sependency> <groupid> org.springframework.boot </groupid> <Artifactid> Spring-starter-STARTER-WEB </Artidency </groupid> <Artifactid> <DependencyManagement> <dependency> <dependency> <GroupId> org.springframework.cloud </groupid> <ArtifactId> Spring-cloud-Dependencies </arttifactid> <version> dalston.sr1 </Versi> <peed> POM </type> <cope> Impor </scope> </Version> <peed> POM </typeer> <cope> Impor </scope> </Versi
Ini juga sangat mudah untuk menerapkan penyedia layanan. Cukup gunakan anotasi @EnableEureKaclient pada kelas startup proyek eureKaClientApplication.
@EnableeureKaclient @springbootApplication kelas publik eureKaclientApplication {public static void main (string [] args) {new springapplicationBuilder (eureKaclientApplication.class) .web (true) .run (args); }}Konfigurasikan yang berikut di application.properties
spring.application.name = eureka-clientserver.port = 9002eureka.client.serviceurl.defaultzone = http: // localhost: 9001/eureka/
Melalui Properti Spring.Application.Name, kami dapat menentukan nama Microservice saat menyebutnya, sehingga layanan dapat diakses.
Properti Eureka.Client.ServiceURL.DefaultZone sesuai dengan konten konfigurasi Pusat Registrasi Layanan dan menentukan lokasi Pusat Registrasi Layanan.
Gunakan properti server.port untuk mengatur port yang berbeda.
Mulai kelas EureKaclientApplication
Refresh http: // localhost: 9001/, dan Anda dapat melihat bahwa penyedia layanan kami telah terdaftar di Pusat Pendaftaran Layanan
Buat DiscoveryController baru
Gunakan DiscoveryClient.GetServices () untuk mendapatkan nama layanan yang terdaftar, dan menggunakan @Value untuk menetapkan informasi dalam file konfigurasi ke IP
@RestControllerPublic kelas DiscoveryController {@Autowired Private DiscoveryClient DiscoveryClient; @Value ("$ {server.port}") Private String IP; @GetMapping ("/client") public string client () {string services = "services:"+DiscoveryClient.GetServices ()+"ip:"+ip; System.out.println (Layanan); layanan pengembalian; }}Kunjungi: http: // localhost: 9002/klien
Akhirnya, izinkan saya menjelaskan dua anotasi @EnableeureKaclient dan @enableDiscoveryclient
Pertama -tama, kedua anotasi dapat mewujudkan fungsi penemuan layanan. Ada banyak implementasi layanan penemuan di Spring Cloud (Eureka, Consul, Zookeeperer, dll.)
@EnableeureKaclient didasarkan pada spring-cloud-netflix. Layanan ini menggunakan Eureka sebagai pusat pendaftaran, dan skenario penggunaan relatif lajang.
@EnableDiscoveryClient didasarkan pada Spring-Cloud-Commons. Layanan ini mengadopsi pusat pendaftaran lainnya.
Github: https://github.com/mingyuhub/springcloud
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.