Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

Ko tetahi o nga raru nui i roto i te whanaketanga me te mahi a muri ake o nga ratonga miihini ko te whirihoranga mohio me te tika o o raatau waa. Ki taku whakaaro, ka taea e tetahi anga hou te awhina i tenei microconfig.io. Ka taea e koe te whakaoti i etahi mahi whirihoranga tono tikanga tino huatau.

Mena he maha o ratonga moroiti, a ka tae mai ia o raatau me tana ake konae / konae whirihoranga, katahi ka nui pea te hapa o tetahi o aua mea, he tino uaua ki te hopu me te kore he pukenga tika me te punaha takiuru. Ko te mahi matua ka whakatakotoria e te anga maana ake ko te whakaiti i nga tawhā whirihoranga tauira taarua, na reira ka whakaiti i te tupono ki te taapiri hapa.

Ka titiro tatou ki tetahi tauira. Me kii he tono ngawari me te konae whirihoranga yaml. Ka taea te mahi moroiti ahakoa te reo. Kia kite tatou me pehea te tono anga ki tenei ratonga.

Engari ko te tuatahi, mo te pai ake, me hanga he kaupapa kore i te Idea IDE, i muri i te whakauru i te mono microconfig.io ki roto:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

I whakaturia e matou te whirihoranga whakarewatanga mono; ka taea e koe te whakamahi i te whirihoranga taunoa, pera i te whakaahua o runga.

Ko ta maatau ratonga e kiia ana ko te raupapa, katahi ka hangaia he kaupapa hou i roto i tetahi kaupapa:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

Whakanohoia te konae whirihoranga ki te kōpaki me te ingoa ratonga - tono.yaml. Ka whakarewahia nga ratonga miihini katoa ki etahi momo taiao, na, hei taapiri mo te hanga whirihora mo te ratonga ake, he mea tika ki te whakaahua i te taiao ake: mo tenei ka hanga e matou he kōpaki envs me te taapiri i tetahi konae me te ingoa o to maatau taiao mahi. Na, ka hangaia e te anga nga konae whirihoranga mo nga ratonga i roto i te taiao dev, no te mea kua whakaritea tenei tawhā ki nga tautuhinga mono.

Hanganga kōnae dev.yaml ka tino ngawari:

mainorder:
    components:
         - order

Ka mahi te anga me nga whirihoranga kua whakarōpūhia. Mo ta maatau ratonga, tohua he ingoa mo te roopu tikanga matua. Ka kitea e te anga ia roopu tono i roto i te konae taiao me te hanga whirihoranga mo ratou katoa, ka kitea i roto i nga kōpaki e rite ana.

I roto i te kōnae tautuhinga ratonga ake raupapa Kia kotahi noa te tawhā mo tenei wa:

spring.application.name: order

Inaianei me whakahaere te mono, ka puta te whirihoranga e hiahiatia ana mo ta maatau ratonga i runga i te huarahi kua tohua i roto i nga taonga:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

taea haere mai me te kore e whakauru i te mono, me tango noa te tohatoha anga me te whakahaere mai i te raina whakahau.
He pai tenei otinga mo te whakamahi i runga i te tūmau hanga.

He mea tika kia mohio kei te tino marama te anga taonga syntax, ara, nga konae taonga noa ka taea te whakamahi tahi i roto yaml whirihoranga.

Me tapiri atu tetahi atu ratonga utu me te whakararu i te mea o mua.
В raupapa:

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

В utu:

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

Ko te raruraru nui ki enei whirihoranga ko te nui o te kape-whakapiri i roto i nga tautuhinga ratonga. Kia kite tatou me pehea e awhina ai te anga ki te whakakore. Me timata ma te tino kitea - te aroaro o te whirihoranga Eureka i roto i te whakaahuatanga o ia ratonga moroiti. Hangaia he whaiaronga hou me te konae tautuhinga me te taapiri i tetahi whirihoranga hou ki reira:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

Na inaianei me taapiri te raina ki ia kaupapa #whakauruhia te eureka.

Ka kitea aunoa e te anga te whirihoranga eureka me te kape ki nga konae whirihoranga ratonga, karekau e hanga he whirihoranga eureka motuhake, na te mea kaore matou e tohu ki te konae taiao dev.yaml. Ratonga raupapa:

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

Ka taea hoki e tatou te nuku i nga tautuhinga raraunga ki tetahi whirihoranga motuhake ma te huri i te raina kawemai ki #include eureka, oracle.

Me mahara ko te anga ka whai i ia huringa i te wa e whakahou ana i nga konae whirihoranga ka tuu ki tetahi konae motuhake i te taha o te konae whirihoranga matua. He penei te ahua o te urunga ki roto i tana raarangi: “Ka huri te taonga 1 kua penapena ki tono/diff-application.yaml" Ma tenei ka taea e koe te kite tere i nga huringa ki nga konae whirihoranga nui.

Ko te tango i nga waahanga noa o te whirihoranga ka taea e koe te whakakore i te maha o nga kape-whakapiri kaore e tika ana, engari kaore e taea e koe te hangawari i tetahi whirihoranga mo nga taiao rereke - ko nga waahi mutunga o a maatau ratonga he kotahi me te pakeke-waehere, he kino tenei. Me ngana ki te tango i tenei.

Ko te otinga pai ko te pupuri i nga pito mutunga katoa ki te whirihoranga ka taea e etahi atu te tohutoro. Mo tenei kaupapa, kua whakauruhia te tautoko mo nga kaipupuri waahi ki roto i te anga. Ma tenei ka huri te konae whirihoranga Eureka:

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

Inaianei kia kite tatou me pehea te mahi a tenei kaipupuri waahi. Ka kitea e te punaha tetahi waahanga kua whakaingoatia Tuhinga me te rapu tikanga i roto eurekaip, ka whakakapi ki roto i ta maatau whirihoranga. Engari me pehea nga taiao rereke? Ki te mahi i tenei, hanga he konae tautuhinga ki roto Tuhinga te momo e whai ake nei application.dev.yaml. Ko te angamahi motuhake, i runga i te toronga konae, ka whakatau ko wai te taiao no tenei whirihoranga ka utaina:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

Nga ihirangi kōnae Dev:

eurekaip: 192.89.89.111
dbip: 192.168.0.100

Ka taea e matou te hanga i taua whirihoranga mo nga tauranga o a maatau ratonga:

server.port: ${ports@order}.

Ko nga tautuhinga nui katoa kei te waahi kotahi, na reira ka whakaitihia te tupono o nga hapa na te marara o nga tawhā i roto i nga konae whirihoranga.

Ka whakaratohia e te anga he maha nga kaipupuri waahi kua rite, hei tauira, ka taea e koe te tiki i te ingoa o te whaiaronga kei reira te konae whirihoranga ka tohua:

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

He mihi ki tenei, kaore he take ki te taapiri i te ingoa tono i roto i te whirihoranga ka taea hoki te whakanoho ki tetahi waahanga noa, hei tauira, i roto i te eureka ano:

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

Ko te kōnae whirihoranga raupapa ka whakahekehia ki te rarangi kotahi:

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

Mena kaore e hiahiatia he tautuhinga mai i te whirihoranga matua, ka taea e taatau te tautuhi i roto i ta maatau whirihoranga ka whakamahia i roto i te whakatipuranga. Arā, mena ka hiahia matou ki tetahi ingoa ahurei mo te ratonga ota, ka waiho noa te tawhā puna.application.name.

Me kii me taapiri koe i nga tautuhinga takiuru ritenga ki te ratonga, ka penapena ki tetahi konae motuhake, hei tauira, logback.xml. Me hanga he roopu motuhake mo taua mea:

Te whakahaere ngawari i nga whirihoranga microservice me microconfig.io

I roto i te whirihoranga taketake, ka korerohia e matou te angamahi ki te tuu i te konae tautuhinga takiuru e hiahia ana matou ki te whakamahi i tetahi waahi @ConfigDir:

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

I roto i te kōnae logback.xml Ka whirihorahia e matou nga taapiri paerewa, ka taea hoki te whakauru i nga waahi ka huri te anga i roto i te whakatipuranga o nga whirihora, hei tauira:

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

Ma te taapiri i te kawemai ki nga whirihoranga ratonga takiuru, ka whirihora aunoa matou mo ia ratonga:

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

Kua tae ki te wa ki te mohio ake ki nga waahi katoa e waatea ana mo te angamahi:

${tenei@env} - ka whakahoki i te ingoa o te taiao o naianei.
${…@ingoa} — whakahoki te ingoa o te wae.
${...@configDir} — whakahoki te ara katoa ki te whaiaronga whirihora o te wae.
${…@resultDir} — ka whakahoki i te huarahi katoa ki te raarangi whainga o te waahanga (ka tukuna nga konae ka puta ki tenei raarangi).
${this@configRoot} — whakahoki i te ara katoa ki te whaiaronga pakiaka o te toa whirihoranga.

Ka taea hoki e te punaha te tiki i nga taurangi taiao, hei tauira te ara ki java:
${env@JAVA_HOME}
Ranei, i te mea kua tuhia te angamahi ki roto JAVA, ka taea e tatou te tiki taurangi punaha rite ki te piiraa Pūnaha:: getProperty te whakamahi i te hanganga penei:
${[email tiakina]}
He pai te whakahua i te tautoko mo te reo toronga Puna EL. Ko nga korero e whai ake nei e pa ana ki te whirihoranga:

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

a ka taea e koe te whakamahi i nga taurangi rohe i roto i nga konae whirihoranga ma te whakamahi i te korero #var:

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

No reira, he taputapu tino kaha te anga mo te whakatikatika me te whirihoranga ngawari o nga ratonga miihini. Ka tino whakatutukihia e te angamahi tana mahi matua - te whakakore i te kape-whakapiri i roto i nga tautuhinga, te whakakotahi i nga tautuhinga me te mutunga, te whakaiti i nga hapa ka taea, i te wa e taea ai e koe te whakakotahi i nga whirihoranga me te whakarereke mo nga taiao rereke.

Mena kei te pirangi koe ki tenei anga, ka tūtohu ahau ki te toro atu ki tana whaarangi whaimana me te mohio ki te katoa tuhinga, keri ranei ki nga puna konei.

Source: will.com

Tāpiri i te kōrero