Pengantar Eureka
Eureka menyediakan layanan berbasis istirahat, yang terutama digunakan dalam manajemen layanan di cluster. Eureka menyediakan komponen klien berdasarkan bahasa Java, yang mengimplementasikan fungsi penyeimbangan beban, menciptakan kondisi untuk penyebaran kluster komponen bisnis. Dengan menggunakan kerangka kerja ini, komponen bisnis dapat didaftarkan dalam wadah Eureka, yang dapat digunakan dalam kelompok, dan Eureka terutama memelihara daftar layanan ini dan secara otomatis memeriksa status mereka.
Struktur program
Buat server eureka
Ketergantungan Maven
<DependencyManagement> <dependencies> <dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-dependencies </arttifactid> <version> Dalston.sr1 </Versi> <type> POM </type> <cope> Impor </scopeT> </Version> <peed> </type </scope> <cope> impor </scope> </Version> <tipe> </type <groupid> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-eureka-server </artifactid> </gandendency> </dependensi>
Ubah port startup Spring Boot di application.yml
Server: Port: 8761
Aktifkan Anotasi Layanan Eureka @EnableeureKaserver
@EnableeureKaserver@springbootApplicationPublic kelas EkserverApplication {public static void main (string [] args) {New SpringApplicationBuilder (EKServerApplication.class) .run (args); }}Mulai Springboot
[Thread-11] Oscneserver.EureKaserverBootStrap: Inisialisasi Konteks Server [Utama] SbcettomcatembeddedServletContainer: Tomcat dimulai di port: 8761 (http) [Main] .scnesekaUtServicerGistration: Memperbarui portir ke 8761 [Main] [eKerSerkservicerGistration: Memperbarui portir ke 8761 [MAINDERSEKSIKSIKSIKSIONSICK. EkserverApplication dalam 8,594 detik (JVM berjalan untuk 9.523)
Pengecualian yang tidak dapat dihubungkan ke server akan muncul selama startup. Ini karena Eureka memperlakukan dirinya sebagai klien untuk mengambil informasi pendaftaran saat memulai.
Salinan kode adalah sebagai berikut:
com.netflix.discovery.shared.transport.transportException: tidak dapat menjalankan permintaan di server yang diketahui mana pun
Tambahkan konfigurasi berikut dan tidak akan muncul lagi saat memulai
Eureka: Klien: Registerwitheureka: False Fetchregistry: False
Registerwitheureka menyatakan apakah akan mendaftarkan informasinya sendiri ke server Eureka, nilai standarnya benar.
Fetchregistry menyatakan apakah akan merangkak informasi pendaftaran ke dalam server Eureka, nilai defaultnya benar.
Kunjungi http: // localhost: 8761 di browser Anda untuk melihat deskripsi gambar input konsol eureka
Buat penyedia layanan
mengandalkan
<dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-config </artifactid> </gandendency> <dependency> <sroupDid> org.springframework.cloud </groupid> <ArtiFacTID> SPRING-CLOUD-STARTER> </ARTIFID </ARTIFACTID> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <t ArtifactId> <artifactid> <t ArtifactId> <t Artifactid> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-ribbon </t Artifactid> </dependency>
Konfigurasikan port, nama instance eureka, dan alamat layanan eureka di application.yml
Server: Port: 8080spring: Aplikasi: Nama: EK-Providereureka: Instance: HostName: LocalHost Klien: ServiceUrl: Defaultzone: http: // localhost: 8761/eureka/
Buat Layanan Istirahat
@RestControllerPublic Class HelloController {@RequestMapping ("/hello") Public String Hello (permintaan httpservletRequest) {return "hello:" + request.getRequesturl (); }}Aktifkan anotasi klien eureka @EnableeureKaserver
@EnableeureKaclient@springbootApplicationPublic kelas EkProviderApplication {public static void main (string [] args) {new springapplicationBuilder (eKProviderApplication.class) .run (args); }}Setelah startup, Anda dapat melihat di konsol Eureka bahwa penyedia layanan telah terdaftar di Eureka
Buat Penelepon Layanan
mengandalkan
<dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-config </artifactid> </gandendency> <dependency> <sroupDid> org.springframework.cloud </groupid> <ArtiFacTID> SPRING-CLOUD-STARTER> </ARTIFID </ARTIFACTID> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <t ArtifactId> <artifactid> <t ArtifactId> <t Artifactid> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-ribbon </t Artifactid> </dependency>
Konfigurasikan port, nama instance eureka, dan alamat layanan eureka di application.yml
Server: Port: 9000Spring: Aplikasi: Nama: EK-InvokeEureka: Instance: HostName: LocalHost Klien: ServiceUrl: Defaultzone: http: // localhost: 8761/eureka/
Tulis layanan istirahat untuk menghubungi penyedia layanan "/halo"
@Restcontroller @configurationpublic class InvokeController {@bean @LoadBalanced Public RestTemplate getRestTemplate () {return baru restTemplate (); } @RequestMapping ("/Invoke") Public String Invoke () {resttemplate restTemplate = getRestTemplate (); return resttemplate.getForObject ("http: // eK-provider/hello", string.class); }}Dalam mode tradisional, kami biasanya menggunakan httpClient di Apache untuk menghubungi layanan REST. Di sini kami menggunakan Spring untuk menyediakan komponen RestTemplate yang memanggil layanan REST. RestTemplate sendiri tidak memiliki kemampuan untuk memanggil layanan terdistribusi, tetapi setelah resttemplate bean dimodifikasi oleh anotasi @Loadalanced, instance RestTemplate ini memiliki kemampuan untuk mengakses layanan terdistribusi, berkat berbagai pencegat yang disediakan oleh Spring.
Aktifkan anotasi klien eureka @EnableeureKaserver
@EnableeureKaClient@springbootApplicationPublic kelas EkinvokeAppLication {public static void main (string [] args) {new springapplicationBuilder (eKinvokeApplication.class) .run (args); }}Setelah startup, Anda dapat melihat di konsol Eureka bahwa penelepon layanan telah terdaftar di Eureka
Kemudian akses antarmuka "Invoke" dari penelepon layanan di browser. Kembali sebagai berikut
Meringkaskan
Server Eureka mempertahankan informasi pendaftaran terbaru melalui tautan detak jantung, yang disimpan dalam memori.
Penyedia layanan Eureka terutama melakukan:
Penelepon layanan Eureka terutama melakukan:
Alamat Kode Sumber: https://github.com/xc564864894/springcloud/tree/master/eureka(%e4%b8%80)
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.