Palvelujen etsintä ja rekisteröinti
Toteuttakaa palvelujen rekisteröinti ja etsintä Eurekan tai Consulin avulla, jotta palvelut voidaan paikantaa dynaamisesti.
Palvelujen etsintä ja rekisteröinti on ilmainen Spring Boot 4:n kattava opas-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Spring Boot 4:n kattava opas-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.
Mitä palveluiden etsintä on?
Mikropalveluissa sovellukset jaetaan moniksi pieniksi, itsenäisiksi palveluiksi. Miten nämä palvelut löytävät toisensa viestintää varten? Tässä palveluiden etsintä astuu kuvaan.
Se on keskeinen malli, joka auttaa palveluita löytämään toisensa automaattisesti. Ilman sitä palveluiden osoitteiden hallinta manuaalisesti olisi painajaismaista!
Miksi manuaaliset osoitteet eivät toimi
Kuvitelkaa, että käytössänne ovat Product Service- ja Order Service -palvelut. Jos Order Service tarvitsee kutsua Product Service -palvelua, se tarvitsee tämän verkkosijainnin eli IP-osoitteen ja portin.
- Manuaalinen määritys: Osoitteiden kovakoodaaminen edellyttää jatkuvia päivityksiä, jos palvelu siirtyy tai sitä skaalataan.
- Skaalausongelmat: Kun lisäätte palvelusta uusia instansseja, miten muut palvelut saavat niistä tiedon?
- Vikasietoisuus: Entä jos palveluinstanssi vikaantuu? Muiden palveluiden on saatava siitä tieto, jotta ne eivät käytä sitä.
Palveluiden etsintä ratkaisee nämä ongelmat dynaamisesti.
Palvelurekisteri astuu kuvaan
Palvelurekisteri on kuin puhelinluettelo mikropalveluille. Se on keskitetty tietokanta, joka sisältää kaikkien käynnissä olevien palveluinstanssien verkkosijainnit.
Kun palvelu käynnistyy, se rekisteröi itsensä palvelurekisteriin. Kun toinen palvelu tarvitsee viestiyhteyden, se kysyy palvelurekisteriltä käytettävissä olevan instanssin.
Suosittuja palvelurekistereitä ovat Netflix Eureka, Consul ja Apache ZooKeeper.
Miten palveluiden rekisteröinti toimii
Palvelut voivat rekisteröityä kahdella pääasiallisella tavalla:
- Asiakaspuolen rekisteröinti: Palvelu rekisteröi itsensä palvelurekisteriin ja poistaa rekisteröintinsä itse. Tämä on yleistä Eurekan yhteydessä.
- Palvelinpuolen rekisteröinti: Kolmannen osapuolen komponentti (kuten kuormantasaaja tai konttien orkestroija) rekisteröi palvelut niiden puolesta.
Rekisteröitymisen jälkeen palvelut lähettävät palvelurekisteriin myös säännöllisiä heartbeat-viestejä vahvistaakseen olevansa edelleen käynnissä ja toimintakykyisiä.
Tutustuminen Netflix Eurekaan
Netflix Eureka on Netflixin kehittämä suosittu palvelurekisteri. Se on yksinkertainen, vankka ja erittäin käytettävissä oleva mikropalveluiden rekisteri.
Eureka koostuu kahdesta pääosasta:
- Eureka Server: Keskitetty palvelurekisteri, johon palvelut rekisteröityvät.
- Eureka Client: Mikropalveluihin upotettu kirjasto, jonka avulla palvelut ovat yhteydessä palvelimeen (rekisteröityvät ja etsivät palveluita).
Se on suunniteltu vikasietoiseksi, ja siinä suositaan käytettävyyttä yhdenmukaisuuden sijaan (CAP-lauseen AP).
Eureka Serverin rakentaminen
Luodaan yksinkertainen Eureka Server. Lisätkää ensin spring-cloud-starter-netflix-eureka-server-riippuvuus. Käyttäkää sen jälkeen @EnableEurekaServer-merkintää pääsovellusluokassa.
package com.coddykit.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}Eureka Serverin määrittäminen
Jotta Eureka-palvelimemme toimii oikein, sen portti on määritettävä ja sille on kerrottava, ettei se rekisteröi itseään (koska se on palvelin). Lisätkää seuraavat rivit tiedostoon application.properties:
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=falseserver.port=8761 on Eurekan oletusportti. Kaksi muuta ominaisuutta estävät palvelinta yrittämästä rekisteröityä itseensä, mikä ei ole tarpeen.
Palvelun tekeminen löydettäväksi
Tehdään nyt mikropalvelusta palvelu, joka rekisteröi itsensä Eureka Serveriin. Tästä palvelusta tulee Eureka Client.
Lisätkää ensin spring-cloud-starter-netflix-eureka-client-riippuvuus palvelunne projektiin. Lisätkää sen jälkeen pääsovellusluokkaan @EnableEurekaClient-merkintä.
Tämä käskee Spring Bootia ottamaan tämän sovelluksen Eureka-asiakasominaisuudet käyttöön.
Eureka Clientin määrittäminen
Tältä yksinkertainen mikropalvelu näyttää, kun Eureka Client on otettu käyttöön. Huomioikaa @EnableEurekaClient. Sen application.properties-tiedostossa määritettäisiin sen nimi ja Eureka-palvelimen URL-osoite:
spring.application.name=product-service
eureka.client.service-url.defaultZone=http://localhost:8761/eurekapackage com.coddykit.productservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ProductServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ProductServiceApplication.class, args);
}
@GetMapping("/products")
public String getProducts() {
return "List of products from Product Service";
}
}Palveluiden etsiminen Eurekan avulla
Kun palvelut on rekisteröity, muut asiakkaat voivat etsiä niitä. Spring Cloud tarjoaa tähän DiscoveryClient- ja RestTemplate-luokat (@LoadBalanced-merkinnällä) tai WebClient-luokan.
Asiakkaan ei tarvitse tietää tarkkaa IP-osoitetta tai porttia. Se pyytää Eurekalta palvelua sen rekisteröidyn nimen perusteella (esimerkiksi "product-service"). Eureka palauttaa käytettävissä olevat instanssit, ja asiakaspuolen kuormantasaaja valitsee niistä yhden.
Testaa ymmärryksesi
Olette oppineet määrittämään Eureka Serverin ja rekisteröimään asiakkaan. Mikä merkintä on välttämätön, jotta Spring Boot -sovelluksesta tulee Eurekan client?
Kertaus: palveluiden etsintä
Tutustuimme palveluiden etsintään, joka on mikropalveluiden tärkeä toimintamalli. Opimme:
- miksi keskitettyä palvelurekisteriä tarvitaan kovakoodattujen osoitteiden välttämiseksi
- miten Netflix Eureka toimii rekisterinä Server- ja Client-komponentteineen
- miten Eureka Server määritetään
@EnableEurekaServer-merkinnän avulla - miten mikropalvelu rekisteröidään Eureka Clientiksi
@EnableEurekaClient-merkinnän avulla ja miten se määritetään
Seuraavaksi opitte API-yhdyskäytävistä, jotka käyttävät usein palveluiden etsintää pyyntöjen reitittämiseen.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 21
- Oppitunnit
- 84
Usein kysytyt kysymykset
Onko oppitunti ”Palvelujen etsintä ja rekisteröinti” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Boot 4:n kattava opas-oppimispolun 3 oppituntia, myös oppitunnin “Palvelujen etsintä ja rekisteröinti”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Palvelujen etsintä ja rekisteröinti”?
Toteuttakaa palvelujen rekisteröinti ja etsintä Eurekan tai Consulin avulla, jotta palvelut voidaan paikantaa dynaamisesti. Harjoittelet Spring Boot 4:n kattava opas-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Spring Boot 4:n kattava opas-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4:n kattava opas-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Palvelujen etsintä ja rekisteröinti”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4:n kattava opas-oppitunnilla?
Kyllä. Jokainen Spring Boot 4:n kattava opas-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Mikropalvelujen periaatteet ja suunnittelu
- Palvelujen etsintä ja rekisteröinti
- API-yhdyskäytävä Spring Cloud Gatewaylla
- Keskitetty konfigurointi Spring Cloud Configilla