Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Heus Habr!

Monemus te sequenti libro de " Kafka aeque interesting opus de bibliotheca edidimus Kafka rivi API.

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Nunc, communitas iusta limites huius potentis instrumenti discendi est. Ita articulus nuper editus est, cuius translationem te ad nos inducere volumus. Ex propria experientia, auctor narrat Kafka rivi in ​​tabularia distributa vertere. Fruere legendo!

Apache bibliotheca Kafka rivi usus terrarum in conatibus ad dispensandum flumen distribuendum super Apache Kafka. Una ex inexplicabilibus aspectibus huius compagis est quod sinit te condere statum localem productum sub filo processus.

In hoc articulo narrabo tibi quomodo societas nostra utiliter hac occasione utatur, cum incrementum securitatis ad nubes applicationis explicandum est. Fluviis Kafka utentes, microservices communes statuimus creavimus, quarum singulae vitio toleranti et prompto fonte certae informationis de statu rerum in systematis inserviunt. Pro nobis hoc est gradum procedere tam ad constantiam quam ad facilitatem subsidii.

Si interest alterius accessionis, quod te permittit uti uno datorum centrali ad sustinendum statum formalem objectorum tuorum, lege illud, interesting... erit.

Quare tempus putavimus mutare modum quo laboramus communi statu

Non opus est ad conservandam rempublicam variarum rerum, quae ex relationibus agentis (exempli gratia: erat locus in oppugnatione)? Antequam ad Kafka rivi migrarent, saepe in una datorum centralium (+ servitii API) administratione civitatis nitebantur. Accessus ad sua vitia habet; date intensive condicionibus tuendae constantiae et synchronisationum provocatio realis fit. The database may become a bottleneck or end up in genus conditio unpredictability patiuntur.

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figura I: A typicam split-statu sem ante transitus ad
Kafka et Kafka rivi: agentes suas sententias communicant per API, status updated per database computatur

Occursum Kafka rivi, facile efficiens microservices communes status creare

Ante annum circiter decrevimus ut missiones communi statui nostro inspiceremus ut has quaestiones electronicas daremus. Statim placuit experiri Kafka rivi - scimus quam scalabilis, valde prompta et culpa tolerabilis sit, quam dives effusivus functionis quam habet (transformationes, inter res publicas). Id quod nobis opus est, ne dicam quam matura et certa ratio nuntii in Kafka facta est.

Unaquaeque ex stativis microservices quae nos creavimus supra instantia Kafka rivi cum topologia satis simplici aedificata est. Constabat 1) fons 2) processus cum clavibus pervicax valoris 3) concisus;

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figure 2: De defectu topologiae instantiarum effusae nostrae pro microservices statutis. Nota quod etiam repositio hic est quod metadata consilio continet.

In hoc novo adventu, agentes nuntios componunt qui in thema fonte pascuntur, et perussi, inquam, per mail notificationem muneris, computatum statum communem per labellum accipiunt (output topic).

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figura 3: Novum exemplum negotium fluit pro missione cum microservices communibus: 1) agens generat nuntium qui advenit ad fontem topicum Kafka; 2) microservice cum communi statu (utente Kafka Streams) processit et statum calculi ad thema finale Kafka scribit; Post quem III) consumers accipere novum statum

Heus, haec constructa-in clavibus valoris valde utilis est!

Ut supra dictum est, topologia communis status nostri clavem pretii horreorum continet. Plures optiones eo utendo invenimus, quarum duae infra descriptae sunt.

Optio # I: uti a key-valorem copia pro calculations

Prima nostra copia praecipuorum valoris notitias auxiliares quae ad calculos opus erant continebant. Verbi gratia, in quibusdam casibus communis status a principio "maioris suffragiorum" est determinatus. Repositorium potest tenere omnes relationes novissimarum agentis in statu alicuius rei. Deinde, cum ab uno vel alio agente novam relationem recepimus, eam salvare potuimus, relationes ab omnibus aliis agentibus de statu eiusdem obiecti reponendi, et calculum repetere.
Figura 4 infra ostendit quomodo clavem/pretii copiam ad methodum processus processus processi deteximus, ut novus nuntius tunc discurrere posset.

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Illustratio 4: Ad clavem valoris copiam aperimus ad methodum processus processus (post hoc, quodlibet scriptum, quod cum statu communi operatur, methodum efficere debet. doProcess)

Optio # II: Creando CRUD API super Kafka rivi

Constituto nostro fundamentali munere profluvio, conari coepimus scribere pro nostro communi statu microservorum communium. Volumus posse statum aliquorum vel omnium objectorum recuperare, tum statum objecti statui vel removere (utilis ad subsidii backend).

Ad omnia subsidia Civitatis APIs Get, quoties opus est ut rem publicam in processu calculare debeamus, eam in constructo-in thesauro clavicularii diu reposuimus. Hoc in casu, satis simplex fit ad efficiendum talem API utentem in uno instantia Kafka rivi, ut in enumeratione infra ostendetur.

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figure V: Per constructum- in key-valorem copia ad obtinendam precomputed statum rei

Status obiecti per API adaequationis facilis est etiam ad efficiendum. Basically, omnes facere debes Kafka producentem creare et eo uti ad testimonium quod novum statum continet. Hoc efficit, ut omnes nuntii per API generati eodem modo procedentur ac ab aliis effectoribus (exempli gratia agentis).

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figure VI: De statu obiecti usura Kafka producentis potes

Parva DIFFICULTAS: Kafka multas partitiones habet

Deinceps voluimus onus processus distribuere et disponibilitate meliorem facere, providendo botrum micro-statum communium per missionem. Setup erat aura: semel omnes instantiae figuravimus ut sub eadem applicatione ID (et eisdem servientibus bootstrap concurrerent), omnia fere sponte facta sunt. Dedimus etiam unumquemque argumentum ex pluribus partitionibus constare, ut singulae instantiae subsessor talium partitionum assignari possit.

Memorabo etiam illud commune esse exemplum reipublicae copia tergum facere ut, exempli gratia, in casu recuperationis post defectum, hoc exemplum in aliam instanciam transferam. Pro unaquaque reposita copia in Kafka rivi, locus replicatus creatur cum mutatione stipes (quae pervestigat locales updates). Ita Kafka continuo retrahit rempublicam. Ideo in casu defectu unius vel alterius exempli Kafka rivi, copia status cito restitui potest in alia instantia, ubi partitiones debitae ibimus. Nostrae probationes ostendimus hoc fieri in re secunda, etiamsi decies centena milia monumentorum in copia sint.

Movens ex uno microservio cum communi statu ad botrum microserviorum, minus levius fit rem publicam API efficere. In novo situ, copia rerum publicarum uniuscuiusque microservorum, partem tantum continet picturae altioris (quae sunt claves ad certam partitionem deformatae). Debuimus determinare in quo instantia continebat statum rei necessariae, et hoc ex filo metadatae, ut infra ostendetur;

Non solum processus: Quomodo database ex Kafka rivi distributum fecerimus, et quid factum sit?

Figura 7: Metadata amnis utens, definimus ex quo instantia ad investigandum statum desiderati obiecti; Simili ratione usus est cum omnia API

key Inventiones

Thesauri rei publicae in Kafka rivi possunt pro facto datorum distribui;

  • constanter replicatur in Kafka
  • Crudus API super tali ratione aedificari facile potest
  • Plures partitiones tractans paulo magis complicata est
  • Potest etiam unum vel plures thesauros civitatis topologiae profusas addere notitias auxiliares condere. Haec optio adhiberi potest:
  • Long-terminus repono de notitia opus ad calculos per amnis processus
  • Diuturnum tempus reposita notitiarum quae usui erunt proximo tempore profuso instantia providetur
  • quanto magis...

Haec et alia commoda Kafka rivi faciunt aptissima ad statum globalem conservandum in systemate distributo sicut in nostro. Kafka rivi certissimum esse probavit in productione (nullum fere nuntium habuimus detrimentum quod explicamus), et confidimus suas facultates illic non subsistere!

Source: www.habr.com

Add a comment