Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Ny iray amin'ireo olana lehibe amin'ny fampandrosoana sy ny fampandehanana ny microservices manaraka dia ny fandrindrana mahay sy marina amin'ny tranga misy azy ireo. Raha ny hevitro dia misy rafitra vaovao afaka manampy amin'izany microconfig.io. Izy io dia ahafahanao mamaha ny asa fanamboarana fampiharana mahazatra amin'ny fomba kanto.

Raha manana microservices maro ianao, ary ny tsirairay amin'izy ireo dia tonga miaraka amin'ny fisie / rakitra manokana, dia misy ny mety hisian'ny fahadisoana amin'ny iray amin'izy ireo, izay mety ho sarotra be ny hisambotra raha tsy misy ny fahaiza-manaony sy ny rafitra fanoratana. Ny tena asa apetraky ny framework ho azy dia ny manamaivana ny masontsivana fandrindrana ohatra dika mitovy, ka mampihena ny mety hampidirana lesoka.

Andeha isika hijery ohatra iray. Andeha hatao hoe manana fampiharana tsotra miaraka amin'ny fichier configuration isika yaml. Ity dia mety ho microservice amin'ny fiteny rehetra. Andeha hojerentsika ny fomba azo ampiharina amin'ity serivisy ity.

Fa aloha, mba hahamora kokoa, andao hamorona tetikasa tsy misy na inona na inona ao amin'ny Idea IDE, rehefa avy nametraka ny microconfig.io plugin ao anatiny:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Nametraka ny fanamafisana ny fandefasana plugin izahay, azonao atao ny mampiasa ny fanamafisana default, toy ny amin'ny pikantsary etsy ambony.

Ny serivisy ataontsika dia antsoina hoe baiko, avy eo amin'ny tetikasa vaovao dia hamorona rafitra mitovy isika:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Apetraho ao anaty lahatahiry misy ny anaran'ny serivisy - application.yaml. Ny microservices rehetra dia atomboka amin'ny karazana tontolo iainana, noho izany, ankoatra ny famoronana config ho an'ny serivisy, dia ilaina ny mamaritra ny tontolo iainana: noho izany dia hamorona lahatahiry izahay. envs ary asio rakitra miaraka amin'ny anaran'ny tontolo iasantsika. Noho izany, ny rafitra dia hamorona rakitra fanamafisana ho an'ny serivisy amin'ny tontolo iainana serasera, satria napetraka ao amin'ny firafitry ny plugin io paramètre io.

Rafitra fichier dev.yaml dia ho tsotra be izany:

mainorder:
    components:
         - order

Ny framework dia miasa miaraka amin'ny configurations izay mitambatra. Ho an'ny serivisy ataontsika dia mifidiana anarana ho an'ny vondrona mainorder. Ny rafitra dia mahita vondrona fampiharana toy izany ao amin'ny fisie tontolo iainana ary mamorona fanamafisam-peo ho azy rehetra, izay hitany ao amin'ny lahatahiry mifanaraka amin'izany.

Ao amin'ny fisie serivisy serivisy mihitsy mba Andeha hofaritana paramètre iray ihany izao:

spring.application.name: order

Andeha hojerentsika izao ny plugin, ary hamokatra ny fanovana ilaina ho an'ny serivisintsika araka ny lalana voatondro ao amin'ny fananana:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

afaka mifanaraka ary tsy misy fametrahana plugin, alao fotsiny ny fizarana framework ary mandehana amin'ny baiko.
Ity vahaolana ity dia mety amin'ny fampiasana amin'ny server build.

Tsara ny manamarika fa ny rafitra dia mahatakatra tsara fananana syntax, izany hoe, rakitra fananana mahazatra izay azo ampiasaina miaraka amin'ny yaml configurations.

Andeha isika hanampy serivisy hafa fandoavam-bola ary manasarotra ny efa misy.
Π’ mba:

eureka:
 instance.preferIpAddress: true
 client:
   serviceUrl:
     defaultZone: http://192.89.89.111:6782/eureka/
server.port: 9999
spring.application.name: order
db.url: 192.168.0.100

Π’ fandoavam-bola:

eureka:
 instance.preferIpAddress: true
 client:
   serviceUrl:
     defaultZone: http://192.89.89.111:6782/eureka/
server.port: 9998
spring.application.name: payments
db.url: 192.168.0.100

Ny olana lehibe amin'ireo fanamafisana ireo dia ny fisian'ny kopia-mametaka be dia be ao amin'ny sehatry ny serivisy. Andeha hojerentsika ny fomba hanampian'ny rafitra hanala azy io. Andeha isika hanomboka amin`ny mazava indrindra - ny fisian`ny configuration Eureka ao amin'ny famaritana ny microservice tsirairay. Andao hamorona lahatahiry vaovao miaraka amin'ny fichier fikandrana ary ampio fika vaovao amin'izany:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Ary ankehitriny ndao ampidirintsika ny tsipika isaky ny tetikasantsika #ampidiro ny eureka.

Hahita ho azy ny rafitra eureka ary handika izany amin'ny fisie fanamafisana serivisy, raha toa ka tsy hatsangana ny fanamafisana eureka misaraka, satria tsy holazainay ao amin'ny rakitra tontolo iainana izany. dev.yaml. fanompoana mba:

#include eureka
server.port: 9999
spring.application.name: order
db.url: 192.168.0.100

Azontsika atao ihany koa ny mamindra ny firafitry ny angon-drakitra ho amin'ny fikirakirana misaraka amin'ny fanovana ny tsipika fanafarana ho #Ampidiro ny eureka, oracle.

Tsara ny manamarika fa ny rafitra dia manara-maso ny fiovana tsirairay rehefa mamerina mamerina ny rakitra fanamafisana ary mametraka izany ao anaty rakitra manokana eo akaikin'ny rakitra fanamafisana lehibe. Toy izao ny fidirana ao amin'ny diariny: β€œMiova ny fananana 1 voatahiry order/diff-application.yaml" Izany dia mamela anao hamantatra haingana ny fiovana amin'ny rakitra fanamafisana lehibe.

Ny fanesorana ny ampahany mahazatra amin'ny fanamafisam-peo dia ahafahanao manaisotra kopia tsy ilaina be dia be, fa tsy mamela anao hamorona rindrankajy ho an'ny tontolo samihafa - ny teboka farany amin'ny serivisy dia tsy manam-paharoa sy sarotra, ratsy izany. Andeha isika hanaisotra izany.

Ny vahaolana tsara dia ny fitazonana ireo teboka farany amin'ny tefy iray izay azon'ny hafa resahina. Ho an'ity tanjona ity, dia nampidirina ao anatin'ny rafitra ny fanohanana ireo mpihazona toerana. Toy izao no hiovan'ny fichier configuration Eureka:

 client:
   serviceUrl:
     defaultZone: http://${endpoints@eurekaip}:6782/eureka/

Andeha hojerentsika ny fomba fiasan'ity placeholder ity. Ny rafitra dia mahita singa iray antsoina hoe teboka farany ary mitady dikany ao eurekaip, ary avy eo dia manolo izany amin'ny firafitsika. Ahoana anefa ny amin'ny tontolo samihafa? Mba hanaovana izany, mamorona fichier fichier in teboka farany ity karazana manaraka ity application.dev.yaml. Ny rafitra tsy miankina, mifototra amin'ny fanitarana ny rakitra, dia manapa-kevitra hoe inona ny tontolo misy an'io fikandrana io ary mitondra azy:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Ny votoatin'ny rakitra dev:

eurekaip: 192.89.89.111
dbip: 192.168.0.100

Afaka mamorona tefy mitovy amin'izany izahay ho an'ny seranan-tsambon'ny serivisy:

server.port: ${ports@order}.

Eo amin'ny toerana iray avokoa ny toe-javatra manan-danja rehetra, ka mampihena ny mety hisian'ny lesoka noho ny mari-pamantarana miparitaka amin'ny rakitra fikirakirana.

Ny rafitra dia manome toerana maro efa vita, ohatra, azonao atao ny maka ny anaran'ny lahatahiry misy ny rakitra fanamafisana ary manendry azy:

#include eureka, oracle
server.port: ${ports@order}
spring.application.name: ${this@name}

Noho izany dia tsy ilaina ny mamaritra fanampiny ny anaran'ny fampiharana ao amin'ny konfigurasi ary azo apetraka amin'ny module mahazatra, ohatra, amin'ny eureka mitovy:

client:
   serviceUrl:
     defaultZone: http://${endpoints@eurekaip}:6782/eureka/
 spring.application.name: ${this@name}

Ny fichier configuration mba hahena ho andalana iray:

#include eureka, oracle
server.port: ${ports@order}

Raha tsy mila fika avy amin'ny rindrankajy ray aman-dreny isika, dia azontsika atao ny mamaritra izany ao amin'ny fandrindrantsika ary hampiharina mandritra ny taranaka. Izany hoe, raha mila anarana tsy manam-paharoa ho an'ny serivisy fibaikoana isika noho ny antony iray, dia avelantsika fotsiny ny parameter spring.application.name.

Andeha atao hoe mila ampiana firafitry ny fanoratana manokana amin'ny serivisy ianao, izay voatahiry ao anaty rakitra misaraka, ohatra, logback.xml. Andeha isika hamorona vondrona manokana momba izany:

Tantano mora ny fandrindrana microservice amin'ny microconfig.io

Ao amin'ny fanamafisana fototra, dia holazainay ny rafitra izay hametrahana ny fichier filaharan'ny log izay ilaintsika amin'ny fampiasana placeholder @ConfigDir:

microconfig.template.logback.fromFile: ${logback@configDir}/logback.xml

Ao anaty rakitra logback.xml Ampifandraiso ireo appenders mahazatra, izay mety ahitana toeran-toerana ihany koa izay hiova ny rafitra mandritra ny famoronana config, ohatra:

<file>logs/${this@name}.log</file>

Amin'ny alΓ lan'ny fampidirana fanafarana amin'ny tefin'ny serivisy logback, dia mahazo logging voarindra ho azy izahay ho an'ny serivisy tsirairay:

#include eureka, oracle, logback
server.port: ${ports@order}

Fotoana izao hifankazarana amin'ny antsipiriany amin'ireo mpihazona toerana rehetra misy ny framework:

${ity@env} - mamerina ny anaran'ny tontolo iainana ankehitriny.
${…@name} - mamerina ny anaran'ny singa.
${…@configDir} β€” mamerina ny lalana feno mankany amin'ny lahatahiry config an'ilay singa.
${…@resultDir} β€” mamerina ny lalana feno mankany amin'ny lahatahiry alehan'ilay singa (apetraka ao anatin'ity lahatahiry ity ny rakitra vokarina).
${this@configRoot} - mamerina ny lalana feno mankany amin'ny lahatahiry fototry ny tranombarotra fanamafisana.

Ny rafitra ihany koa dia ahafahanao mahazo fari-piainana manodidina, ohatra ny lalana mankany java:
${env@JAVA_HOME}
Na izany na tsy izany, satria voasoratra ao ny framework Java, dia afaka mahazo ny rafitra miovaova mitovy amin'ny antso System:: getProperty mampiasa rafitra toy izao:
${[email voaaro]}
Tsara ny manonona fanohanana ny fiteny fanitarana Lohataona EL. Ireto teny manaraka ireto dia azo ampiharina amin'ny config:

connection.timeoutInMs: #{5 * 60 * 1000}
datasource.maximum-pool-size: #{${[email protected]} + 10} 

ary azonao atao ny mampiasa variables eo an-toerana amin'ny rakitra fanamafisana amin'ny fampiasana ny fitenenana #var:

#var feedRoot: ${[email protected]}/feed
folder:
 root: ${this@feedRoot}
 success: ${this@feedRoot}/archive
 error: ${this@feedRoot}/error

Noho izany, ny rafitra dia fitaovana mahery vaika ho an'ny fanitsiana tsara sy mora azo amin'ny microservices. Ny rafitra dia manatanteraka tsara ny asany fototra - manafoana ny kopia-mametaka ao amin'ny fikandrana, manamafy orina ary, vokatr'izany, manamaivana ny mety ho lesoka, ary mamela anao hanambatra mora foana ny fanamafisana sy hanova azy ireo amin'ny tontolo samihafa.

Raha liana amin'ity rafitra ity ianao dia manoro hevitra aho hitsidika ny pejy ofisialy ary hifankazatra amin'ny feno tahirin-kevitra, na diniho ny loharano eto.

Source: www.habr.com

Add a comment