Apa itu Spring Cloud Eureka
Spring Cloud Eureka adalah komponen di Spring Cloud. Ini dienkapsulasi sekunder berdasarkan Netflix Eureka, yang terutama bertanggung jawab untuk menyelesaikan fungsi tata kelola layanan dalam kerangka kerja Microservice. Spring Cloud Menambahkan Konfigurasi Otomasi Gaya Boot Pegas ke Eureka. Kami hanya membutuhkan dependensi referensi sederhana dan anotasi untuk memungkinkan Spring Boot untuk dengan mudah mengintegrasikan aplikasi layanan mikro dengan sistem tata kelola layanan Eureka.
Tata Kelola Layanan
Tata kelola layanan adalah modul inti dan dasar paling dalam dalam kerangka kerja Microservice. Ini terutama digunakan untuk mewujudkan pendaftaran otomatis dan penemuan berbagai contoh layanan mikro.
Pada awalnya, tidak ada banyak layanan sistem layanan mikro yang mungkin dibangun, dan kami dapat menyelesaikan panggilan layanan melalui beberapa konfigurasi statis. Misalnya, ada dua layanan A dan B. Ketika layanan A perlu menghubungi Layanan B untuk menyelesaikan operasi bisnis, untuk mencapai ketersediaan layanan B yang tinggi, apakah kami menggunakan keseimbangan yang kompleks di server atau menyeimbangkan beban pada klien, kita perlu memelihara daftar instan B secara manual. Namun, dengan pengembangan bisnis, fungsi sistem menjadi lebih dan lebih kompleks, dan layanan mikro yang sesuai menjadi semakin sulit.
Untuk mengatasi masalah ini, sejumlah besar kerangka kerja tata kelola layanan dan produk telah dihasilkan. Kerangka kerja ini sebenarnya berputar di sekitar pendaftaran layanan dan mekanisme penemuan layanan untuk menyelesaikan manajemen otomatis instance aplikasi layanan mikro.
Pendaftaran Layanan
Dalam kerangka tata kelola layanan, pusat pendaftaran layanan biasanya dibangun. Setiap unit instance layanan mendaftarkan layanannya sendiri dengan pusat pendaftaran, dan memberi tahu pusat pendaftaran serangkaian informasi tambahan seperti lokasi host instance, nomor port, nomor versi, protokol komunikasi, dll., Dan pusat pendaftaran mengatur daftar layanan sesuai dengan nama layanan.
Penemuan layanan
Karena beroperasi di bawah kerangka tata kelola layanan, komunikasi dan panggilan antar layanan tidak lagi diimplementasikan dengan menentukan alamat instance tertentu, tetapi dengan memulai panggilan permintaan ke nama layanan. Oleh karena itu, ketika penelepon layanan memanggil antarmuka penyedia layanan, ia tidak tahu lokasi instance layanan tertentu. Oleh karena itu, perlu pertama -tama memulai permintaan kueri ke registri dan mendapatkan daftar instance untuk mencapai akses ke instance layanan tertentu.
Bangun Layanan Pusat Registrasi Eureka
Bangun Eureka pusat tunggal
Semua perkembangan kami selanjutnya akan didasarkan pada versi di atas. Perlu dicatat bahwa Sring Cloud menggunakan versi snapshot, jadi Anda perlu menentukan alamat repositori dalam file POM.
Pertama, kami membuat proyek boot musim semi baru, menamakannya: Spring-cloud-eureka, dan menambahkan dependensi yang diperlukan ke POM. File POM spesifik adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <groupid> Com.sagesource </groupsource> 4.0.0 <ArTifactId> Spring-cloud-eureka </arttifactid> <version> 0.0.1-Snapshot </version> <packaging> Jar </packaging> <name> spring-cloud-eureka </name> <tartif> <sruptid> org.springframework. <version> 2.0.2.release </version> <relativePath/> <!-pencarian orangtua dari repositori-> </parents> <pro properties> <poject.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.reporting.outputencoding> utf-8 </poPoring.poToring <Java.Version> 1.8 </java.version> <spring-cloud.version> finchley.build-snapshot </spring-cloud.version> </Properties> <dependencies> <ArtiFID> <RUPRIPID> SPRINGING.SPRINTER-BERBAS <groupid> org.springframework.cloud </groupid> <ArtiFacTid> Spring-cloud-starter-netflix-eureka-server </t Artifactid> </dependency> <sependency> <sruptid> org.springframework.boot </groupid> <t Artifactid> <contifactid> <contifact-boots-stortifer. </Dependency> </dependencies> <gandencyManagement> <dependencies> <dependency> <GroupId> org.springframework.cloud </groupid> <ArtifactId> Dependensi-cloud-cloud </artifactId> <version> $ {spring-cloud.version} </Versi </tipe> POM </versi> {spring-cloud.version} </versi </type> pom/spring {spring-cloud.version} </versi </type> pom/spring {spring-cloud.version} </Version> <pom> POM </type> </dependency> </dependencyManagement> <build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <rrepo.spring.io/snapshot </rUrl> <snapshots> <denabled> true </denabled> </snapshots> </repository> <drepository> <dring> ht-milestones </id> <name> tonggak sejarah </name> <dreroC. <snapshots> <denabled> false </enabled> </snapshots> </repository> </repositories> </joy Project>Mulailah registri layanan untuk memberikan percakapan ke aplikasi lain melalui anotasi @EnableeureKaserver. Langkah ini sangat sederhana, cukup tambahkan anotasi ini ke aplikasi boot pegas normal untuk mengaktifkan fungsi ini:
@SpringbootApplication@enableeureKaserverpublic class applicationeureKaserver {public static void main (string [] args) {springApplication.run (applicationeureKaserver.class, args); }}Di bawah konfigurasi default, server pusat pendaftaran juga akan mendaftarkan dirinya sebagai klien. Secara umum, kita perlu menonaktifkan fungsi ini, dan aplikasi yang dimodifikasi.yml adalah sebagai berikut:
# Spring Configspring: Aplikasi: Nama: Spring-Boot-Eureka # Server Configserver: Port: 9871 # Eureka Configureure: Instance: HostName: LocalHost Client: Register-With-Eureka: FALSE # Don't Daftarkan diri Anda dengan Pusat Pendaftaran Fetch-Registry: False # Don't Retrieve Layanan Layanan-Burll: Default: Default: http: // $ {eureka.instance.hostname}: $ {server.port}/eureka/ Karena kita semua berjalan secara lokal, untuk perbedaan layanan berikutnya, kami mengatur port registri layanan melalui server.port untuk menjalankan port sebagai: 9871
Setelah menyelesaikan konfigurasi di atas, mulai aplikasi dan kunjungi http: // localhost: 9871. Anda dapat melihat halaman berikut di mana daftar instance yang saat ini terdaftar dengan Eureka kosong, menunjukkan bahwa tidak ada layanan yang terdaftar ke pusat pendaftaran.
Saya pikir semua orang telah memperhatikan dua baris kata merah yang menarik di atas:
KEADAAN DARURAT! Eureka mungkin salah mengklaim contoh sudah habis ketika tidak. Pembaruan lebih rendah dari ambang batas dan karenanya contoh tidak kedaluwarsa hanya untuk aman.
Penyebab: Mekanisme perlindungan diri. Selama pengoperasian Eureka Server, itu akan menghitung apakah proporsi kegagalan detak jantung kurang dari 85% dalam 15 menit. Jika terjadi (mudah dipenuhi selama debugging yang berdiri sendiri, tetapi pada kenyataannya biasanya disebabkan oleh ketidakstabilan jaringan di lingkungan produksi), Eureka Server akan melindungi informasi pendaftaran instance saat ini dan meminta peringatan ini.
Karena masalah ini rentan terjadi dalam situasi yang berdiri sendiri, setelah mematikan perlindungan diri sesuai dengan konfigurasi online, Eureka masih akan memanggil alarm, mendorong bahwa mode aman dimatikan, dan kebenaran instance tidak dapat dijamin. Oleh karena itu, kami mengabaikan masalah ini untuk saat ini dan dapat diselesaikan ketika penyebaran cluster nanti.
Daftarkan Penyedia Layanan
Setelah menyelesaikan pembentukan Layanan Pusat Pendaftaran, kami dapat mencoba menambahkan aplikasi Spring Boot yang ada ke sistem tata kelola layanan Eureka.
Kami masih menganggap spring-cloud-server sebelumnya sebagai contoh. Kita hanya perlu memodifikasi konfigurasi application.yml berikut:
# Nama Aplikasi Spring: Aplikasi: Nama: Spring-cloud-Server# Eureka Center Lokasi Pusat Eureka: Klien: Layanan-URL: Defaultzone: http: // localhost: 9871/eureka/
Setelah modifikasi selesai, layanan dapat dimulai. Pada saat ini, kami menyegarkan halaman manajemen Eureka dan melihat informasi daftar instance yang saat ini terdaftar dengan Eureka sebagai berikut:
Ini menunjukkan bahwa layanan kami telah berhasil terdaftar di pusat pendaftaran.
Contoh Kode Terkait: https://github.com/sagesource/spring-cloud-set
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.