Hej! Som dodávateľom jari pre uzávierku a dnes sa chcem chatovať o tom, ako spravovať komunikáciu mikroservisov na jar pre naše výrobky z uzávierky. Je to trochu technická téma, ale urobím maximum, aby som ju rozobral spôsobom, ktorý je ľahko pochopiteľný.


Po prvé, povedzme si o tom, prečo je mikroservisná komunikácia taká dôležitá pre našu jar pre obchod s uzávierkami. Vo svete výroby uzávierok máme veľa rôznych komponentov a procesov. Napríklad mámeRám na bočné valček 90 °,Koruna prenosu valčekovaKľukové koleso. Každá z týchto častí môže byť spravovaná inou mikroservisom v našom systéme založenom na jar.
Keď tieto mikroservisy nemôžu dobre komunikovať, je to ako mať veľa ľudí v továrni, ktorá sa navzájom nehovorí. Skončíte s oneskoreniami, chybami a množstvom bolesti hlavy. Preto sa musíme uistiť, že tieto mikroservis môžu zdieľať informácie hladko.
Jedným z kľúčových spôsobov, ako spravovať komunikáciu mikroservisov na jar, je RESTful API. REST (reprezentatívny štátny prenos) je skutočne populárny spôsob budovania webových služieb. Na našej jari pre systém uzávierky môžeme pre každú mikroslužbu vytvoriť pokojné koncové body. Napríklad, ak máme mikroservis, ktorá spravuje inventár [bočné rámové rámce svitového uzávierky 90 °], môže odhaliť API REST, ktoré môžu iné mikroslužby použiť na kontrolu úrovní zásob.
Tu je jednoduchý príklad toho, ako môžeme na jar vytvoriť RESTful API. Použijeme Spring Boot, čo je skvelý rámec pre rýchle budovanie jarných aplikácií.
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springBootapplication; import org.springframework.web.bind.annotation.getMapping; import org.springframework.web.bind.annotation.restController; @SpringBootapplication @RestController Public Class ShutterinventoryService {public static void main (String [] args) {jarpplication.run (shutterinventoryService.class, args); } | }}
V tomto kóde sme vytvorili jednoduché API RESTful API, ktoré vracia počet inventára [bočný rámec svitového uzávierky 90 °]. Ostatné mikroservisy potom môžu zavolať toto API pomocou HTTP Get Advits, aby ste získali potrebné informácie.
Ďalším dôležitým aspektom komunikácie mikroservinárov je komunikácia založená na správach. Spring poskytuje veľkú podporu pre systémy založené na správach prostredníctvom technológií, ako je Spring Cloud Stream. Vďaka komunikácii založenou na správach môžu mikroservisy odosielať a prijímať správy asynchrónne.
Povedzme, že máme mikroservis, ktorá spracováva objednávky pre kľukové koleso [kolieskové uzávery]. Ak je objednávka zadaná, táto mikroservis môže poslať správu sprostredkovateľovi správ (napríklad Kafka alebo RabbitMQ). Ostatné mikroservisy, ako napríklad Microservice na správu zásob, potom môžu tieto správy počúvať a podľa toho aktualizovať inventár.
Tu je príklad toho, ako môžeme použiť Spring Cloud Stream na odosielanie a prijímanie správ:
import org.springframework.cloud.stream.annotation.enableBinding; import org.springframework.cloud.stream.annotation.input; import org.springframework.cloud.stream.annotation.output; import org.springframework.cloud.stream.annotation.streamListener; import org.springframework.message.messageChannel; import org.springframework.messaging.support.messageBuilder; import org.springframework.stereotype.service; import java.util.logging.logger; rozhranie ShutterorderChannels {String Input = "Shutter - Order - Input"; String output = "Shutter - Order - výstup"; @Input (input) org.springframework.messaging.subscribLeBannel Input (); @Output (výstup) MessageChannel output (); } @EnabinBinding (ShutterorderChannels.Class) @Service Public Class ShutterorderService {Private Static Final Logger logger = logger.getLogger (Shutterorderservice.class.getName ()); Súkromné konečné kanály ShutterorderCannels; public ShutterorderService (kanály ShutterorderCannels) {this.Channels = kanály; } public void SendOrderMessage (reťazec objednávka) {channels.output (). } @StreamListener (ShutterorderChannels.input) public void HandleOrderMessage (reťazec poradie) {logger.info ("Prijaté poradie:" + Order); // Tu môžeme urobiť niečo s objednávkou, napríklad inventár aktualizácie}}
V tomto kóde sme vytvorili službu, ktorá môže odosielať a prijímať správy týkajúce sa objednávok uzávierky. Týmto spôsobom môžu rôzne mikroservisy komunikovať medzi sebou asynchrónnym a oddeleným spôsobom.
Pokiaľ ide o riadenie komunikácie mikroservisov v skutočnom svete, musíme tiež premýšľať o objavovaní služieb. Na veľkej pružine pre systém uzávierky by mohli byť desiatky alebo dokonca stovky mikroservisov. Nie je praktické, aby každá mikroservis poznala presnú polohu (adresu IP a port) všetkých ostatných mikroservisov, s ktorými potrebuje komunikovať.
Spring Cloud Netflix Eureka je skvelým nástrojom na objavovanie služieb. Microservices sa môžu zaregistrovať na serveri Eureka a ďalšie mikroservisy potom môžu vyhľadať umiestnenie služieb, ktoré potrebujú, prostredníctvom servera Eureka.
Tu je návod, ako môžeme nastaviť server Eureka v Spring Boot:
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springBootapplication; import org.springframework.cloud.netflix.eureka.server.enableuereekaserver; @SpringBootapplication @enableEureKaserver verejná trieda Shuttereureekaserver {public static void main (String [] args) {jarpplication.run (shuttereureekaserver.class, args); }}
A tak je to, ako sa mikroservis môže zaregistrovať na serveri Eureka:
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springBootapplication; import org.springframework.cloud.netflix.eureka.enableuurekaclient; @SpringBootapplication @enableurekaclient verejná trieda Shuttermicroservice {public static void main (String [] args) {jarpplication.run (shuttermicroservice.class, args); }}
Použitím Eureka môžu naše mikroservisy ľahko nájsť a komunikovať medzi sebou bez toho, aby museli tvrdo - kódovať polohy služieb.
Záverom je, že riadenie komunikácie mikroservisov na jar pre naše výrobky z uzávierky je rozhodujúce pre plynulú prevádzku nášho podnikania. Či už je to prostredníctvom RESTful API, komunikácie založenej na správach alebo objavovaní služieb, máme k dispozícii veľa nástrojov.
Ak ste na trhu s vysokou kvalitou jari pre výrobky z uzávierky a máte záujem o to, ako spravujeme naše mikroservisy, aby sme zaistili špičkovú kvalitu a efektívnosť, rád by som sa s vami porozprával. Môžeme diskutovať o vašich konkrétnych potrebách a o tom, ako sa naše výrobky zmestia do vášho podnikania. Neváhajte a oslovte diskusiu o obstarávaní.
Odkazy
- Dokumentácia o jarnej zavádzaní
- Dokumentácia o jarnej cloude
- RESTUL API Dizajn osvedčené postupy
- Správa - založená komunikácia v distribuovaných systémoch




