Laola litlhophiso tsa microservice habonolo ka microconfig.io

E 'ngoe ea mathata a mantlha ho nts'etsopele le ts'ebetso e latelang ea li-microservices ke tlhophiso e nepahetseng le e nepahetseng ea maemo a bona. Ka maikutlo a ka, moralo o mocha o ka thusa ka sena microconfig.io. E u lumella ho rarolla mesebetsi e meng ea tlhophiso ea ts'ebeliso ka bokhabane.

Haeba u na le li-microservices tse ngata, 'me e' ngoe le e 'ngoe ea tsona e tla le faele ea eona ea tlhophiso / lifaele, joale ho na le monyetla o moholo oa ho etsa phoso ho e' ngoe ea tsona, e ka ba thata haholo ho e tšoara ntle le tsebo e nepahetseng le mokhoa oa ho rema lifate. Mosebetsi o ka sehloohong oo moralo o ipehelang oona ke ho fokotsa liparamente tsa tlhophiso ea mohlala, ka hona ho fokotsa monyetla oa ho eketsa phoso.

A re hlahlobeng mohlala. Ha re re re na le sesebelisoa se bonolo se nang le faele ea tlhophiso yaml. Sena e ka ba leha e le efe microservice ka puo efe kapa efe. A re boneng hore na moralo o ka sebelisoa joang tšebeletsong ena.

Empa pele, molemong o moholo, ha re theheng morero o se nang letho ho Idea IDE, kamora ho kenya plugin ea microconfig.io ho eona:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

Re theha tlhophiso ea ho qala plugin, o ka sebelisa tlhophiso ea kamehla, joalo ka skrineng e kaholimo.

Tšebeletso ea rona e bitsoa taelo, joale morerong o mocha re tla theha sebopeho se tšoanang:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

Beha faele ea tlhophiso foldareng e nang le lebitso la ts'ebeletso - kopo.yaml. Li-microservices tsohle li qalisoa tikolohong ea mofuta o itseng, ka hona, ntle le ho theha tlhophiso bakeng sa ts'ebeletso ka boeona, hoa hlokahala ho hlalosa tikoloho ka boeona: bakeng sa sena re tla theha foldara. envs 'me u kenye faele ho eona e nang le lebitso la sebaka sa rona sa mosebetsi. Kahoo, moralo o tla theha lifaele tsa tlhophiso bakeng sa lits'ebeletso tikolohong senatla, kaha parameter ena e behiloe litlhophisong tsa plugin.

Sebopeho sa faele dev.yaml e tla ba bonolo haholo:

mainorder:
    components:
         - order

Moralo o sebetsa le litlhophiso tse kopantsoeng hammoho. Bakeng sa tšebeletso ea rona, khetha lebitso la sehlopha mainorder. Moralo o fumana sehlopha se seng le se seng sa lits'ebetso faeleng ea tikoloho mme o theha litlhophiso bakeng sa tsona kaofela, tseo e li fumanang lifoldareng tse tsamaellanang.

Ho faele ea li-setting tsa tšebeletso ka boeona taelo Ha re hlalose parameter e le 'ngoe feela hajoale:

spring.application.name: order

Joale ha re tsamaise plugin, 'me e tla hlahisa tlhophiso e hlokahalang bakeng sa ts'ebeletso ea rona ho latela tsela e boletsoeng meahong:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

ka feta mme ntle le ho kenya plugin, ho jarolla feela kabo ea moralo le ho e tsamaisa ho tsoa moleng oa taelo.
Tharollo ena e loketse ho sebelisoa ho seva sa mohaho.

Ke habohlokoa ho hlokomela hore moralo o utloisisa hantle thepa syntax, ke hore, lifaele tse tloaelehileng tsa thepa tse ka sebelisoang hammoho ho yaml tlhophiso.

Ha re eketse tshebeletso e nngwe tefo le ho thatafatsa e teng.
В taelo:

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

В tefo:

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

Bothata bo boholo ka litlhophiso tsena ke ho ba teng ha palo e kholo ea kopi-peista lits'ebetsong tsa lits'ebeletso. A re boneng hore na moralo o tla thusa joang ho e tlosa. A re qaleng ka ho hlakileng ka ho fetisisa - ho ba teng ha tlhophiso Eureka tlhalosong ea microservice ka 'ngoe. Ha re theheng bukana e ncha ka faele ea litlhophiso mme re kenye tlhophiso e ncha ho eona:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

Mme jwale ha re kenyeng mola ho e nngwe le e nngwe ya diporojeke tsa rona #kenyelletsa eureka.

Moralo ona o tla fumana tlhophiso ea eureka ka bo eona ebe o e kopitsa lifaeleng tsa tlhophiso ea lits'ebeletso, ha tlhophiso e fapaneng ea eureka e ke ke ea etsoa, ​​​​hobane re ke ke ra e hlakisa faeleng ea tikoloho. dev.yaml. Tshebeletso taelo:

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

Re ka boela ra tsamaisa litlhophiso tsa database hore e be tlhophiso e fapaneng ka ho fetola mohala oa ho kenya hore o # kenyeletsa eureka, oracle.

Ke habohlokoa ho hlokomela hore moralo o latela phetoho e 'ngoe le e' ngoe ha o tsosolosa lifaele tsa tlhophiso ebe o li beha ka faele e khethehileng haufi le faele e kholo ea tlhophiso. Kenyelletso ho log ea eona e shebahala tjena: "Ho bolokoa thepa e 1 e fetoha ho order/diff-application.yaml" Sena se o nolofalletsa ho lemoha kapele liphetoho ho lifaele tse kholo tsa tlhophiso.

Ho tlosa likarolo tse tloaelehileng tsa tlhophiso ho u fa monyetla oa ho tlosa likopi tse ngata tse sa hlokahaleng, empa ha ho u lumelle hore u thehe sebopeho sa maemo a fapaneng - liphetho tsa lits'ebeletso tsa rona li ikhethile ebile li ngotsoe ka thata, sena se mpe. Ha re leke ho tlosa sena.

Tharollo e ntle e ka ba ho boloka li-endpoints tsohle ka tlhophiso e le 'ngoe eo ba bang ba ka e buang. Bakeng sa morero ona, tšehetso bakeng sa litšoantšiso e kentsoe ka har'a moralo. Ena ke tsela eo faele ea tlhophiso e tla fetoha Eureka:

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

Joale ha re boneng hore na setšoantšisi sena se sebetsa joang. Sistimi e fumana karolo e bitsoang bofelo mme o batla moelelo ho yona eurekaip, ebe o e kenya sebakeng sa tlhophiso ea rona. Empa ho thoe’ng ka libaka tse fapaneng? Ho etsa sena, theha faele ea li-setting bofelo mofuta o latelang kopo.dev.yaml. Moralo ka boikemelo, o ipapisitse le katoloso ea faele, o etsa qeto ea hore na tlhophiso ena ke ea sebaka sefe mme oa e jarisa:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

Lifaele tsa Dev:

eurekaip: 192.89.89.111
dbip: 192.168.0.100

Re ka etsa tlhophiso e tšoanang bakeng sa likou tsa lits'ebeletso tsa rona:

server.port: ${ports@order}.

Litlhophiso tsohle tsa bohlokoa li sebakeng se le seng, ka hona li fokotsa menyetla ea liphoso ka lebaka la li-parameter tse hasaneng lifaeleng tsa tlhophiso.

Moralo o fana ka litšoantšiso tse ngata tse lokiselitsoeng, mohlala, o ka fumana lebitso la buka eo faele ea tlhophiso e leng ho eona ebe oa e abela:

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

Ka lebaka la sena, ha ho na tlhoko ea ho hlakisa lebitso la kopo ho tlhophiso hape e ka beoa mojuleng o tloaelehileng, mohlala, ho eureka e tšoanang:

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

Faele ea tlhophiso taelo e tla fokotsoa ho ba mola o le mong:

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

Haeba re sa hloke tlhophiso efe kapa efe ho tsoa ho tlhophiso ea motsoali, re ka e hlakisa ho tlhophiso ea rona mme e tla sebelisoa nakong ea tlhahiso. Ke hore, haeba ka lebaka le itseng re hloka lebitso le ikhethang bakeng sa tšebeletso ea taelo, re tla tlohela parameter feela selemo.kopo.lebitso.

Ha re re u hloka ho eketsa litlhophiso tsa ho rema lifate tšebeletsong, tse bolokiloeng faeleng e fapaneng, mohlala, kgutlela.xml. Ha re e theheleng sehlopha se arohaneng sa litlhophiso:

Laola litlhophiso tsa microservice habonolo ka microconfig.io

Ka tlhophiso ea mantlha, re tla bolella moralo moo re ka behang faele ea litlhophiso tsa ho rema lifate tseo re li hlokang re sebelisa sets'oants'o. @ConfigDir:

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

Ka faele kgutlela.xml re lokisa li-appnders tse tloaelehileng, tseo hape li ka bang le litšoantšiso tseo moralo o tla li fetola nakong ea ho hlahisa li-configs, mohlala:

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

Ka ho kenya thepa ho litlhophiso tsa litšebeletso logback, re fumana mokhoa oa ho rema lifate bakeng sa tšebeletso ka 'ngoe:

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

Ke nako ea ho tloaelana ka botlalo le litšoantšiso tsohle tse teng tsa moralo:

${this@env} - e khutlisetsa lebitso la tikoloho ea hajoale.
${…@name} — e khutlisa lebitso la karolo.
${…@configDir} - e khutlisetsa tsela e felletseng bukeng ea config ea karolo.
${…@resultDir} - e khutlisetsa tsela e felletseng bukeng ea sebaka sa karolo (lifaele tse hlahisoang li tla beoa bukeng ena).
${this@configRoot} - e khutlisetsa tsela e felletseng bukeng ea motso ea lebenkele la tlhophiso.

Sistimi e boetse e u lumella ho fumana mefuta e fapaneng ea tikoloho, mohlala, tsela ea java:
${env@JAVA_HOME}
Ebang, kaha moralo o ngotsoe ka JAVA, re ka fumana mefuta e fapaneng ea sistimi e ts'oanang le mohala Sistimi ::getProperty sebelisa sebopeho se kang sena:
${[imeile e sirelelitsoe]}
Ke habohlokoa ho bolela tšehetso bakeng sa puo e atolositsoeng Selemo EL. Lipolelo tse latelang li sebetsa ho tlhophiso:

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

'me u ka sebelisa mefuta e fapaneng ea lehae lifaeleng tsa tlhophiso u sebelisa polelo #var:

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

Kahoo, moralo ke sesebelisoa se matla haholo bakeng sa ho hlophisa hantle le ho feto-fetoha ha maemo a li-microservices. Moralo o phethahatsa ka botlalo mosebetsi oa ona o ka sehloohong - ho tlosa kopi-peista maemong, ho kopanya litlhophiso mme, ka lebaka leo, ho fokotsa liphoso tse ka bang teng, ha o ntse o u lumella ho kopanya litlhophiso le ho li fetola bakeng sa maemo a fapaneng.

Haeba u thahasella moralo ona, ke khothaletsa ho etela leqephe la eona la semmuso le ho tloaelana le botlalo litokomane, kapa ho cheka mehloling mona.

Source: www.habr.com

Eketsa ka tlhaloso