Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Is e aon de na prìomh dhuilgheadasan ann an leasachadh agus obrachadh microservices às deidh sin rèiteachadh comasach agus ceart nan suidheachaidhean aca. Nam bheachd-sa, faodaidh frèam ùr cuideachadh le seo microconfig.io. Leigidh e leat cuid de ghnìomhan rèiteachaidh tagraidh àbhaisteach fhuasgladh gu grinn.

Ma tha mòran microservices agad, agus gu bheil gach fear dhiubh a 'tighinn leis an fhaidhle rèiteachaidh / faidhlichean aige fhèin, tha coltas ann gun dèan thu mearachd ann am fear dhiubh, rud a dh' fhaodadh a bhith gu math doirbh a ghlacadh gun sgil cheart agus siostam logaidh. Is e am prìomh obair a tha am frèam a’ suidheachadh dha fhèin a bhith a’ lughdachadh paramadairean rèiteachaidh eisimpleir dùblaichte, agus mar sin a’ lughdachadh an coltas gun tèid mearachd a chuir ris.

Bheir sinn sùil air eisimpleir. Canaidh sinn gu bheil tagradh sìmplidh againn le faidhle rèiteachaidh iaml. Faodaidh seo a bhith mar mhicro-sheirbheis sam bith ann an cànan sam bith. Chì sinn mar a ghabhas am frèam a chuir an sàs san t-seirbheis seo.

Ach an toiseach, airson barrachd goireasachd, cruthaichidh sinn pròiseact falamh ann an Idea IDE, às deidh dhuinn am plugan microconfig.io a chuir a-steach ann:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Stèidhich sinn an rèiteachadh cur air bhog plugan, faodaidh tu an rèiteachadh bunaiteach a chleachdadh, mar a chithear san dealbh gu h-àrd.

Canar òrdugh ris an t-seirbheis againn, an uairsin ann am pròiseact ùr cruthaichidh sinn structar coltach ris:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Cuir am faidhle rèiteachaidh sa phasgan leis an ainm seirbheis - tagradh.yaml. Tha a h-uile microservices air a chuir air bhog ann an àrainneachd air choreigin, agus mar sin, a bharrachd air a bhith a’ cruthachadh config airson na seirbheis fhèin, feumar cunntas a thoirt air an àrainneachd fhèin: airson seo cruthaichidh sinn pasgan envs agus cuir faidhle ris le ainm na h-àrainneachd obrach againn. Mar sin, cruthaichidh am frèam faidhlichean rèiteachaidh airson seirbheisean san àrainneachd dev, leis gu bheil am paramadair seo suidhichte ann an roghainnean nam plugan.

Structar faidhle dev.yaml bidh e gu math sìmplidh:

mainorder:
    components:
         - order

Bidh am frèam ag obair le rèiteachaidhean a tha air an cruinneachadh còmhla. Airson ar seirbheis, tagh ainm airson na buidhne prìomh-ord. Bidh am frèam a’ lorg gach buidheann de thagraidhean mar sin ann am faidhle na h-àrainneachd agus a’ cruthachadh rèiteachaidhean airson a h-uile gin dhiubh, a lorgas e anns na pasganan co-fhreagarrach.

Anns an fhaidhle roghainnean seirbheis fhèin Òrdugh Nach sònraich sinn ach aon paramadair airson a-nis:

spring.application.name: order

A-nis ruithidh sinn am plugan, agus cruthaichidh e an rèiteachadh riatanach airson ar seirbheis a rèir an t-slighe a tha air a shònrachadh anns na togalaichean:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

urrainn faighinn seachad agus gun a bhith a 'stàladh plugan, dìreach luchdaich sìos an cuairteachadh frèam agus ga ruith bhon loidhne-àithne.
Tha am fuasgladh seo freagarrach airson a chleachdadh air frithealaiche togail.

'S fhiach toirt fa-near gu bheil am frèam a' tuigsinn gu foirfe seilbh co-chòrdadh, is e sin, faidhlichean seilbh àbhaisteach a ghabhas cleachdadh còmhla ann an iaml rèiteachaidhean.

Nach cuir sinn seirbheis eile ris pàigheadh agus a’ dèanamh iom-fhillte air an fhear a th’ ann.
В Òrdugh:

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

В pàigheadh:

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

Is e am prìomh dhuilgheadas leis na rèiteachaidhean sin gu bheil tòrr leth-bhreac ann an roghainnean na seirbheis. Feuch gum faic sinn mar a chuidicheas am frèam gus faighinn cuidhteas e. Feuch an tòisich sinn leis an fheadhainn as follaisiche - làthaireachd rèiteachaidh eureka anns an tuairisgeul air gach microservice. Cruthaichidh sinn eòlaire ùr leis an fhaidhle roghainnean agus cuiridh sinn rèiteachadh ùr ris:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Agus a-nis leig dhuinn an loidhne a chuir ri gach pròiseact againn #Eureka a-steach.

Lorgaidh am frèam gu fèin-ghluasadach an rèiteachadh eureka agus dèan lethbhreac dheth gu faidhlichean rèiteachaidh na seirbheis, fhad ‘s nach tèid rèiteachadh eureka air leth a chruthachadh, leis nach sònraich sinn e ann am faidhle na h-àrainneachd dev.yaml. Seirbheis Òrdugh:

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

Faodaidh sinn cuideachd roghainnean an stòr-dàta a ghluasad gu rèiteachadh air leth le bhith ag atharrachadh an loidhne in-mhalairt gu # cuir a-steach eureka, oracle.

Is fhiach a bhith mothachail gu bheil am frèam a ’cumail sùil air gach atharrachadh nuair a bhios tu ag ath-nuadhachadh faidhlichean rèiteachaidh agus ga chuir ann am faidhle sònraichte ri taobh a’ phrìomh fhaidhle rèiteachaidh. Tha an inntrig san loga aige a’ coimhead mar seo: “Tha seilbh air a stòradh 1 ag atharrachadh gu òrdugh/diff-application.yaml" Leigidh seo leat atharrachaidhean air faidhlichean rèiteachaidh mòra a lorg gu sgiobalta.

Le bhith a’ toirt air falbh pàirtean cumanta den rèiteachadh leigidh sin leat tòrr lethbhreac-pasgan neo-riatanach a thoirt air falbh, ach chan eil sin a’ leigeil leat rèiteachadh sùbailte a chruthachadh airson diofar àrainneachdan - tha puingean crìochnachaidh ar seirbheisean gun samhail agus le còd cruaidh, tha seo dona. Feuchaidh sinn ri seo a thoirt air falbh.

Bhiodh e na fhuasgladh math a h-uile puing crìochnachaidh a chumail ann an aon rèiteachadh air am faod cuid eile iomradh. Airson an adhbhair seo, tha taic do luchd-àite air a thoirt a-steach don fhrèam. Seo mar a dh'atharraicheas am faidhle rèiteachaidh eureka:

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

A-nis chì sinn mar a tha an neach-àite seo ag obair. Lorgaidh an siostam co-phàirt ainmichte puingean crìochnachaidh agus a’ coimhead airson brìgh ann eurkaip, agus an uairsin ga chuir a-steach don rèiteachadh againn. Ach dè mu dheidhinn diofar àrainneachdan? Gus seo a dhèanamh, cruthaich faidhle roghainnean a-steach puingean crìochnachaidh an seòrsa a leanas iarrtas.dev.yaml. Bidh am frèam gu neo-eisimeileach, stèidhichte air leudachadh an fhaidhle, a’ co-dhùnadh dè an àrainneachd a bhuineas don rèiteachadh seo agus ga luchdachadh:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Susbaint an fhaidhle dev:

eurekaip: 192.89.89.111
dbip: 192.168.0.100

Is urrainn dhuinn an aon rèiteachadh a chruthachadh airson puirt ar seirbheisean:

server.port: ${ports@order}.

Tha a h-uile suidheachadh cudromach ann an aon àite, agus mar sin a’ lughdachadh an coltas gum bi mearachdan ann mar thoradh air crìochan sgapte ann am faidhlichean rèiteachaidh.

Tha am frèam a 'toirt seachad mòran luchd-àite deiseil, mar eisimpleir, gheibh thu ainm an eòlaire anns a bheil am faidhle rèiteachaidh suidhichte agus a shònrachadh:

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

Taing dha seo, chan eil feum air ainm an tagraidh a shònrachadh anns an rèiteachadh agus faodar a chuir ann am modal cumanta, mar eisimpleir, anns an aon eureka:

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

Am faidhle rèiteachaidh Òrdugh thèid a lùghdachadh gu aon loidhne:

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

Mura h-eil feum againn air suidheachadh sam bith bhon rèiteachadh phàrant, is urrainn dhuinn a shònrachadh nar rèiteachadh agus thèid a chuir an sàs rè ginealach. Is e sin, ma tha feum againn airson adhbhar air choireigin air ainm sònraichte airson an t-seirbheis òrduigh, fàgaidh sinn am paramadair earrach.application.name.

Canaidh sinn gum feum thu roghainnean logaidh àbhaisteach a chuir ris an t-seirbheis, a tha air an stòradh ann am faidhle air leth, mar eisimpleir, logadh air ais.xml. Cruthaichidh sinn buidheann de shuidheachaidhean air leth air a shon:

Stiùirich rèiteachadh microservice gu furasta le microconfig.io

Anns an rèiteachadh bunaiteach, innsidh sinn don fhrèam far an cuir sinn am faidhle roghainnean logaidh a dh ’fheumas sinn a’ cleachdadh neach-àite @ConfigDir:

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

Ann am faidhle logadh air ais.xml bidh sinn a’ rèiteachadh eàrr-ràdhan àbhaisteach, a dh’ fhaodadh luchd-àite a bhith ann cuideachd a dh’ atharraicheas am frèam ri linn gineadh nan configs, mar eisimpleir:

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

Le bhith a’ cur in-mhalairt ri rèiteachadh seirbheis logadh air ais, bidh sinn gu fèin-obrachail a’ faighinn logadh rèiteachaidh airson gach seirbheis:

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

Tha an t-àm ann eòlas nas mionaidiche fhaighinn air a h-uile neach-àite a tha ri fhaighinn air an fhrèam:

${this@env} - a 'tilleadh ainm na h-àrainneachd làithreach.
${…@name} - a 'tilleadh ainm a' cho-phàirt.
${…@configDir} - a 'tilleadh an t-slighe slàn gu eòlaire config na co-phàirt.
${…@resultDir} - a ’tilleadh an t-slighe slàn gu eòlaire ceann-uidhe a’ cho-phàirt (thèid na faidhlichean a thig às a chuir san eòlaire seo).
${this@configRoot} - a’ tilleadh an t-slighe slàn gu eòlaire freumh a’ bhùth rèiteachaidh.

Leigidh an siostam leat caochladairean àrainneachd fhaighinn cuideachd, mar eisimpleir an t-slighe gu java:
${env@JAVA_HOME}
An dàrna cuid, leis gu bheil am frèam sgrìobhte a-steach JAVA, gheibh sinn caochladairean siostam coltach ris a 'ghairm Siostam::getProperty cleachdadh structar mar seo:
${[post-d fo dhìon]}
Is fhiach iomradh a thoirt air taic don chànan leudachaidh Earrach EL. Tha na h-abairtean a leanas iomchaidh anns an rèiteachadh:

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

agus faodaidh tu caochladairean ionadail a chleachdadh ann am faidhlichean rèiteachaidh a’ cleachdadh an abairt #var:

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

Mar sin, tha am frèam na inneal gu math cumhachdach airson mion-dhealbhadh agus rèiteachadh sùbailte de mhicro-sheirbheisean. Bidh am frèam gu foirfe a’ coileanadh a phrìomh obair - cuir às do leth-bhreac ann an suidheachaidhean, a’ daingneachadh shuidheachaidhean agus, mar thoradh air an sin, a’ lughdachadh mhearachdan a dh’ fhaodadh a bhith ann, agus aig an aon àm a ’toirt cothrom dhut rèiteachaidhean a chur còmhla agus an atharrachadh airson diofar àrainneachdan.

Ma tha ùidh agad san fhrèam seo, tha mi a’ moladh tadhal air an duilleag oifigeil aige agus eòlas fhaighinn air an làn sgrìobhainnean, no cladhach a-steach do na stòran an seo.

Source: www.habr.com

Cuir beachd ann