Pangertosan makelar pesen. Sinau mekanika olahpesen karo ActiveMQ lan Kafka. Bab 1

ВсСм ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

Aku miwiti nerjemahake buku cilik:
Β«Understanding Pesen Brokers",
penulis: Jakub Korab, penerbit: O'Reilly Media, Inc., tanggal diterbitake: Juni 2017, ISBN: 9781492049296.

Saka introduksi kanggo buku:
"... Buku iki bakal mulang sampeyan carane mikir babagan sistem olahpesen broker, mbandhingake lan mbedakake rong teknologi broker populer: Apache ActiveMQ lan Apache Kafka. Bakal njelasake kasus panggunaan lan insentif pangembangan sing nyebabake pangembang njupuk pendekatan sing beda banget ing wilayah sing padha - olahpesen antarane sistem karo broker penengah. Kita bakal ndeleng teknologi kasebut saka wiwitan lan nyorot pengaruh saka macem-macem pilihan desain ing sadawane dalan. Sampeyan bakal entuk pangerten sing jero babagan loro produk kasebut, pangerten babagan carane kudu lan ora kudu digunakake, lan pangerten babagan apa sing kudu digoleki nalika nimbang teknologi olahpesen liyane ing mangsa ngarep. … ”

Bagean sing diterjemahake nganti saiki:
Bab 1. Pambuka
Bab 3. Kafka

Aku bakal ngirim bab rampung nalika lagi diterjemahake.

BAB 1

Pambuka

Olahpesen sistem-ke-sistem minangka salah sawijining area IT sing paling ora dingerteni. Minangka pangembang utawa arsitek, sampeyan bisa uga akrab banget karo macem-macem kerangka lan basis data. Nanging, kemungkinan sampeyan mung ngerti babagan cara kerja teknologi olahpesen adhedhasar broker. Yen sampeyan ngrasa kaya ngono, aja kuwatir, sampeyan ana ing perusahaan sing apik.

Wong biasane duwe kontak sing winates banget karo infrastruktur olahpesen. Dheweke asring nyambung menyang sistem sing digawe suwene kepungkur, utawa ngundhuh distribusi saka Internet, nginstal ing PROM lan miwiti nulis kode kasebut. Sawise mbukak infrastruktur ing PROM, asil bisa dicampur: pesen ilang amarga gagal, ngirim ora bisa kaya sing dikarepake, utawa makelar "nyumerepi" produser sampeyan utawa ora ngirim pesen menyang konsumen sampeyan.

Muni akrab?

Skenario umum yaiku kode olahpesen sampeyan bisa digunakake kanthi apik, kanggo saiki. Nganti mandheg nyambut gawe. Periode iki nyebabake rasa aman sing salah, nyebabake kode luwih adhedhasar kapercayan palsu babagan prilaku dhasar teknologi kasebut. Nalika prekara wiwit salah, sampeyan bakal ngadhepi bebener sing ora trep: sampeyan durung ngerti babagan prilaku dhasar produk utawa ijol-ijolan sing dipilih dening penulis, kayata kinerja versus linuwih, utawa transactionality versus skalabilitas horisontal. .

Tanpa pangerten sing jero babagan cara kerja makelar, wong nggawe pratelan sing cukup wajar babagan sistem olahpesen, kayata:

  • Sistem ora bakal ilang pesen
  • Pesen bakal diproses kanthi urutan
  • Nambahake konsumen bakal nggawe sistem luwih cepet
  • Pesen mung bakal dikirim sapisan

Sayange, sawetara pernyataan kasebut adhedhasar asumsi sing mung ditrapake ing kahanan tartamtu, dene liyane mung ora bener.

Buku iki bakal mulang sampeyan carane mikir babagan sistem olahpesen basis broker, mbandhingake lan mbedakake rong teknologi broker populer: Apache ActiveMQ lan Apache Kafka. Bakal njlentrehake kasus panggunaan lan insentif pangembangan sing nyebabake pangembang njupuk pendekatan sing beda banget ing wilayah sing padha - olahpesen ing antarane sistem karo broker penengah. Kita bakal ndeleng teknologi kasebut saka wiwitan lan nyorot pengaruh saka macem-macem pilihan desain ing sadawane dalan. Sampeyan bakal entuk pangerten sing jero babagan loro produk kasebut, pangerten babagan cara sing kudu lan ora kudu digunakake, lan pangerten babagan apa sing kudu digoleki nalika nimbang teknologi olahpesen liyane ing mangsa ngarep.

Sadurunge kita miwiti, ayo pindhah menyang dhasar.

Apa Sistem Pesen lan kenapa dibutuhake?

Supaya loro aplikasi bisa komunikasi karo saben liyane, padha kudu nemtokake antarmuka. Nemtokake antarmuka iki kalebu milih transportasi utawa protokol, kayata HTTP, MQTT, utawa SMTP, lan negosiasi format pesen sing bakal diijolke ing antarane sistem kasebut. Iki bisa uga minangka proses sing ketat, kayata nemtokake skema XML kanthi syarat biaya muatan pesen, utawa bisa uga ora resmi, kayata persetujuan antarane rong pangembang yen sawetara bagean saka panyuwunan HTTP bakal ngemot pengenal klien .

Anggere format pesen lan urutan sing dikirim iku konsisten antarane sistem, padha bisa komunikasi karo saben liyane tanpa kuwatir bab implementasine saka sistem liyane. Internal sistem kasebut, kayata basa pamrograman utawa kerangka kerja sing digunakake, bisa uga owah saka wektu. Anggere kontrak dhewe maintained, interaksi bisa terus tanpa owah-owahan saka sisih liyane. Loro sistem kasebut kanthi efektif dipisahake (dipisahake) dening antarmuka iki.

Sistem olahpesen biasane kalebu perantara antarane rong sistem sing sesambungan kanggo luwih decouple (misah) pangirim saka panampa utawa panampa. Ing kasus iki, sistem olahpesen ngidini pangirim ngirim pesen tanpa ngerti ngendi panampa, apa dheweke aktif, utawa pira kedadean.

Ayo goleki sawetara analogi kanggo macem-macem masalah sing bisa diatasi sistem olahpesen lan ngenalake sawetara istilah dhasar.

Titik-kanggo-Titik

Alexandra menyang kantor pos kanggo ngirim paket menyang Adam. Dheweke menyang jendhela lan menehi karyawan paket kasebut. Pegawe njupuk paket lan menehi kuitansi Alexandra. Adam ora perlu ana ing omah nalika paket dikirim. Alexandra yakin manawa paket kasebut bakal dikirim menyang Adam ing sawetara titik ing mangsa ngarep lan bisa nerusake bisnise. Mengko ing sawetara titik Adam nampa paket.

Iki minangka conto model olahpesen titik-kanggo-titik. Kantor pos kene tumindak minangka mekanisme distribusi parsel, mesthekake yen saben bingkisan dikirim sapisan. Nggunakake kantor pos misahake tumindak ngirim paket saka pangiriman paket.
Ing sistem olahpesen klasik, model titik-kanggo-titik dileksanakake liwat antrian. Antrian kasebut minangka buffer FIFO (first in, first out) sing bisa dilanggan dening siji utawa luwih konsumen. Saben pesen dikirim mung menyang salah sawijining konsumen langganan. Antrian biasane nyoba nyebarake pesen kanthi adil ing antarane konsumen. Mung siji konsumen bakal nampa pesen iki.

Istilah "awet" ditrapake kanggo antrian. Linuwih minangka properti layanan sing njamin yen sistem olahpesen bakal tetep pesen yen ora ana pelanggan aktif nganti konsumen langganan antrian kanggo pangiriman pesen.

Reliabilitas asring bingung karo ketekunan lan sanajan rong istilah kasebut digunakake kanthi ganti, nanging nduweni fungsi sing beda. Ketekunan nemtokake manawa sistem olahpesen nulis pesen menyang sawetara jinis panyimpenan antarane nampa lan ngirim menyang konsumen. Pesen sing dikirim menyang antrian bisa uga ora terus-terusan.
Olahpesen titik-kanggo-titik digunakake nalika kasus panggunaan mbutuhake tumindak siji-wektu ing pesen kasebut. Conto kalebu nyetor dana menyang akun utawa ngrampungake pesenan pangiriman. Kita bakal ngrembug mengko kenapa sistem olahpesen dhewe ora bisa menehi kiriman siji-sijine lan ngapa antrian bisa menehi jaminan pangiriman paling sapisan.

Penerbit-Langganan

Габриэлла Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. Пока ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΎΠ½Π° ΡΠ»Ρ‹ΡˆΠΈΡ‚ всС, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ спикСр, вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ участниками Π²Ρ‹Π·ΠΎΠ²Π°. Когда ΠΎΠ½Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΎΠ½Π° пропускаСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сказано. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ говорят.

Iki minangka conto model olahpesen nerbitake-langganan. Panggilan konferensi tumindak minangka mekanisme siaran. Wong sing ngomong ora preduli pira wong sing lagi nelpon - sistem kasebut mesthekake yen sapa wae sing nyambung bakal krungu apa sing diomongake.
Ing sistem olahpesen klasik, model olahpesen nerbitake-langganan dileksanakake liwat pucuk. Topik nyedhiyakake cara siaran sing padha karo mekanisme konferensi. Nalika pesen dikirim menyang topik, iku disebarake kanggo kabeh pangguna langganan.

Topik biasane ora bisa dipercaya (ora bisa dipercaya). Kaya pamireng sing ora bisa ngrungokake apa sing diomongake ing telpon konferensi nalika pamireng pedhot, pelanggan topik ora kejawab pesen sing dikirim nalika offline. Kanthi alasan iki, kita bisa ujar manawa topik menehi jaminan pangiriman ora luwih saka sepisan kanggo saben konsumen.

Olahpesen nerbitake-langganan biasane digunakake nalika pesen kasebut sifate informasi lan kelangan siji pesen ora pati penting. Contone, topik bisa ngirim maca suhu saka klompok sensor sapisan saben detik. Sistem sing kasengsem ing suhu saiki lan langganan topik ora bakal kuwatir yen ora kejawab pesen - liyane bakal teka ing mangsa ngarep.

model hibrida

Situs web toko nyimpen pesen pesen ing "antrian pesen." Konsumen utama pesen kasebut yaiku sistem eksekutif. Kajaba iku, sistem audit kudu duwe salinan pesen pesenan kasebut kanggo pelacakan sabanjure. Loro-lorone sistem ora bisa ngidini pesen liwat, sanajan sistem dhewe ora kasedhiya kanggo sawetara wektu. Situs web ngirim ora ngerti sistem liyane.

Kasus panggunaan asring mbutuhake kombinasi model olahpesen nerbitake-langganan lan titik-kanggo-titik, kayata nalika sawetara sistem mbutuhake salinan pesen lan linuwih lan ketekunan dibutuhake kanggo nyegah mundhut pesen.

Kasus kasebut mbutuhake tujuan (istilah umum kanggo antrian lan topik) sing nyebarake pesen minangka topik, supaya saben pesen dikirim menyang sistem sing kapisah sing kasengsem ing pesen kasebut, nanging uga saben sistem bisa nemtokake sawetara konsumen sing nampa pesen sing mlebu. pesen, kang luwih kaya antrian. Jinis maca ing kasus iki yaiku sapisan kanggo saben stakeholder. Tujuan hibrida iki asring mbutuhake daya tahan supaya yen konsumen dadi offline, pesen sing dikirim ing wektu kasebut ditampa sawise konsumen nyambung maneh.

Model hibrida ora anyar lan bisa digunakake ing akeh sistem olahpesen, kalebu ActiveMQ (liwat tujuan virtual utawa gabungan sing nggabungake topik lan antrian) lan Kafka (secara implisit, minangka properti dhasar saka desain tujuane).

Saiki kita duwe sawetara terminologi dhasar lan pangerten babagan apa sing bisa digunakake kanggo sistem olahpesen, ayo goleki rincian.

Terjemahan rampung: tele.gg/jawa tengah

Bagean sing diterjemahake ing ngisor iki: Bab 3. Kafka

Terus ...

Source: www.habr.com

Add a comment