Ka hoʻomaopopo ʻana i nā mea hoʻolaha memo. Ke aʻo ʻana i ka mīkini o ka memo me ActiveMQ a me Kafka. Mokuna 1

Hello a pau!

Ua hoʻomaka wau e unuhi i kahi puke liʻiliʻi:
«Ka hoomaopopo ana i na Message Brokers",
mea kākau: Jakub Korab, mea hoʻopuka: O'Reilly Media, Inc., lā i paʻi ʻia: Iune 2017, ISBN: 9781492049296.

Mai ka hoʻomaka ʻana i ka puke:
"... Na kēia puke e aʻo iā ʻoe pehea e noʻonoʻo ai e pili ana i nā ʻōnaehana leka uila, hoʻohālikelike a hoʻohālikelike i ʻelua ʻenehana broker kaulana: Apache ActiveMQ a me Apache Kafka. E wehewehe ia i nā hihia hoʻohana a me nā mea hoʻoikaika hoʻomohala i alakaʻi i kā lākou mea hoʻomohala e lawe i nā ala ʻokoʻa loa i ka wahi hoʻokahi-ka leka uila ma waena o nā ʻōnaehana me kahi mea kūʻai aku waena. E nānā mākou i kēia mau ʻenehana mai ka honua a hōʻike i ka hopena o nā koho hoʻolālā like ʻole ma ke ala. E loaʻa iā ʻoe ka ʻike hohonu o nā huahana ʻelua, ka hoʻomaopopo ʻana i ke ʻano o ka hoʻohana ʻana a me ka pono ʻole, a me ka hoʻomaopopo ʻana i ka mea e nānā ai i ka wā e noʻonoʻo ai i nā ʻenehana leka uila i ka wā e hiki mai ana. … »

Nā ʻāpana i unuhi ʻia i kēia manawa:
Mokuna 1. Hoolauna
Mokuna 3. Kafka

E kau wau i nā mokuna i hoʻopau ʻia ke unuhi ʻia.

MOKUNA 1

Hōʻike

ʻO ka memo pūnaewele i ka ʻōnaehana kekahi o nā wahi ʻike liʻiliʻi loa o IT. Ma ke ʻano he mea hoʻomohala a mea hoʻolālā paha, ua kamaʻāina paha ʻoe i nā ʻāpana like ʻole a me nā waihona. Eia nō naʻe, ʻike paha ʻoe i ke ʻano o ka hana ʻana o nā ʻenehana leka uila. Inā pēlā kou manaʻo, mai hopohopo, aia ʻoe i kahi hui maikaʻi.

Loaʻa i ka poʻe maʻamau ka launa pū ʻana me ka ʻōnaehana leka uila. Hoʻopili pinepine lākou i kahi ʻōnaehana i hana ʻia i ka wā lōʻihi, a i ʻole e hoʻoiho i kahi māhele mai ka Pūnaewele, e hoʻokomo iā ia ma PROM a hoʻomaka e kākau i ke code no ia. Ma hope o ka holo ʻana i ka ʻōnaehana ma PROM, hiki ke hoʻohui ʻia nā hopena: nalowale nā ​​​​memo ma muli o nā hemahema, ʻaʻole holo ka hoʻouna ʻana e like me kāu i manaʻo ai, a i ʻole nā ​​​​mea kūʻai aku "kau" i kāu mea hana a ʻaʻole hoʻouna i nā leka i kāu mea kūʻai.

Kamaʻāina ke kani?

ʻO kahi hiʻohiʻona maʻamau kahi e hana maikaʻi ai kāu code messaging, no ka manawa. A hiki i ka pau ana o ka hana. Mālama kēia manawa i ke kanaka kiaʻi i loko o kahi manaʻo palekana, e alakaʻi ana i nā code hou aʻe e pili ana i nā manaʻoʻiʻo wahaheʻe e pili ana i ke ʻano kumu o ka ʻenehana. Ke hoʻomaka hewa nā mea, ke alo nei ʻoe i kahi ʻoiaʻiʻo kūpono ʻole: ʻaʻole ʻoe i hoʻomaopopo maoli i ke ʻano kumu o ka huahana a i ʻole nā ​​kālepa i koho ʻia e nā mea kākau, e like me ka hana me ka hilinaʻi, a i ʻole ka transactionality versus horizontal scalability .

Me ka ʻole o ka ʻike hohonu i ka hana ʻana o nā brokers, hana nā kānaka i nā ʻōlelo kūpono e pili ana i kā lākou ʻōnaehana memo, e like me:

  • ʻAʻole e nalowale ka ʻōnaehana i nā memo
  • E hana ʻia nā memo ma ke kaʻina
  • ʻO ka hoʻohui ʻana i nā mea kūʻai aku e wikiwiki ka ʻōnaehana
  • Hoʻokahi wale nō hoʻouna ʻia nā memo

ʻO ka mea pōʻino, ua hoʻokumu ʻia kekahi o kēia mau ʻōlelo i nā manaʻo e pili wale ana ma lalo o kekahi mau kūlana, aʻo nā mea ʻē aʻe he hewa wale nō.

Na kēia puke e aʻo iā ʻoe pehea e noʻonoʻo ai e pili ana i nā ʻōnaehana leka uila ma ka hoʻohālikelike ʻana a me ka hoʻohālikelike ʻana i ʻelua ʻenehana broker kaulana: Apache ActiveMQ a me Apache Kafka. E wehewehe ia i nā hihia hoʻohana a me nā mea hoʻoikaika hoʻomohala i alakaʻi i kā lākou mea hoʻomohala e lawe i nā ala ʻokoʻa loa i ka wahi hoʻokahi-ka leka uila ma waena o nā ʻōnaehana me kahi mea kūʻai aku waena. E nānā mākou i kēia mau ʻenehana mai ka honua a hōʻike i ka hopena o nā koho hoʻolālā like ʻole ma ke ala. E loaʻa iā ʻoe ka ʻike hohonu o nā huahana ʻelua, ka hoʻomaopopo ʻana i ke ʻano o ka hoʻohana ʻana a me ka pono ʻole, a me ka hoʻomaopopo ʻana i ka mea e nānā ai i ka wā e noʻonoʻo ai i nā ʻenehana leka uila i ka wā e hiki mai ana.

Ma mua o ka hoʻomaka ʻana, e hele kākou ma luna o nā kumu.

He aha ka messaging System a no ke aha e pono ai?

I mea e kamaʻilio ai nā noi ʻelua me kekahi, pono lākou e wehewehe mua i kahi interface. ʻO ka wehewehe ʻana i kēia interface e pili ana i ke koho ʻana i kahi halihali a i ʻole protocol, e like me HTTP, MQTT, a i ʻole SMTP, a me ke kūkākūkā ʻana i nā ʻano memo e hoʻololi ʻia ma waena o nā ʻōnaehana. He kaʻina koʻikoʻi paha kēia, e like me ka wehewehe ʻana i kahi schema XML me nā koi uku uku memo, a i ʻole he ʻano liʻiliʻi loa, e like me ka ʻaelike ma waena o nā mea hoʻomohala ʻelua e loaʻa i kekahi hapa o ka noi HTTP ka mea kūʻai aku.

ʻOiai ka lōʻihi o ke ʻano o nā memo a me ke ʻano o ka hoʻouna ʻia ʻana ma waena o nā ʻōnaehana, hiki iā lākou ke kamaʻilio me kekahi me ka hopohopo ʻole i ka hoʻokō ʻana o ka ʻōnaehana ʻē aʻe. Hiki ke hoʻololi ʻia nā mea i loko o kēia mau ʻōnaehana, e like me ka ʻōlelo hoʻonohonoho a i ʻole ka hoʻolālā i hoʻohana ʻia i ka manawa. I ka wā e mālama ʻia ai ka ʻaelike ponoʻī, hiki ke hoʻomau ka pilina me ka ʻole o nā loli mai kēlā ʻaoʻao. Hoʻokaʻawale maikaʻi ʻia nā ʻōnaehana ʻelua (hoʻokaʻawale ʻia) e kēia interface.

Hoʻopili maʻamau nā ʻōnaehana memo i kahi mea waena ma waena o nā ʻōnaehana ʻelua e launa pū ana e hoʻokaʻawale hou aku (hoʻokaʻawale) i ka mea hoʻouna mai ka mea loaʻa a i ʻole nā ​​​​mea loaʻa. I kēia hihia, ʻae ka ʻōnaehana leka i ka mea hoʻouna e hoʻouna i kahi memo me ka ʻole o ka ʻike ʻana i hea ka mea i loaʻa, inā ʻeleʻele ʻo ia, a i ʻole ka nui o nā manawa.

E nānā kākou i kekahi mau mea hoʻohālikelike no nā ʻano pilikia e hoʻoponopono ai kahi ʻōnaehana memo a hoʻolauna i kekahi mau huaʻōlelo kumu.

Kahi-kiko-kiko

Hele ʻo Alexandra i ka hale leka e hoʻouna iā Adamu i kahi pūʻolo. Hele ʻo ia i ka puka makani a hāʻawi i ka limahana i ka pūʻolo. Lawe ka limahana i ka pūʻolo a hāʻawi iā Alexandra i ka loaʻa kālā. ʻAʻole pono ʻo Adamu i ka home ke hoʻouna ʻia ka pūʻolo. Manaʻo ʻo Alexandra e hāʻawi ʻia ka pōʻai iā Adamu i kekahi manawa i ka wā e hiki mai ana a hiki ke hoʻomau i kāna ʻoihana. Ma hope i kekahi manawa, loaʻa iā Adamu kahi pūʻolo.

He laʻana kēia o ka hoʻohālike memo kiko-i-kahi. Ke hana nei ke keʻena leta ma ke ʻano he mīkini hoʻolaha pā, e hōʻoia ana e hāʻawi ʻia kēlā me kēia ʻāpana i hoʻokahi manawa. ʻO ka hoʻohana ʻana i kahi keʻena leka e hoʻokaʻawale i ka hana o ka hoʻouna ʻana i kahi pūʻolo mai ka lawe ʻana i ka pūʻolo.
Ma nā ʻōnaehana memo maʻamau, ua hoʻokō ʻia ke kumu hoʻohālike point-to-point ma quuees. Hana ʻia ka pila ma ke ʻano he FIFO (ma mua, puka mua) i hiki ke kau inoa ʻia e hoʻokahi a ʻoi aku paha nā mea kūʻai. Hāʻawi ʻia kēlā me kēia memo wale nō i kekahi o na mea kuai i kakau inoa. Ho'āʻo maʻamau nā pila e kaʻana like i nā memo ma waena o nā mea kūʻai. Hoʻokahi wale nō mea kūʻai e loaʻa kēia leka.

Hoʻohana ʻia ka huaʻōlelo "durable" i nā queues. Pono he waiwai lawelawe e hōʻoiaʻiʻo ana e hoʻomau ka ʻōnaehana memo i nā memo me ka ʻole o ka poʻe kākau inoa ikaika a hiki i ka mea kūʻai aku i ka pila e hoʻouna i nā leka.

Hoʻopili pinepine ʻia ka hilinaʻi me hoomau a ʻoiai ua hoʻohana like ʻia nā huaʻōlelo ʻelua, lawelawe lākou i nā hana like ʻole. Hoʻoholo ka hoʻomau ʻana inā kākau ka ʻōnaehana leka i kahi leka i kekahi ʻano mālama ma waena o ka loaʻa ʻana a me ka hoʻouna ʻana i ka mea kūʻai. ʻO nā memo i hoʻouna ʻia i ka pila ke hoʻomau a ʻaʻole paha.
Hoʻohana ʻia ka memo kikoʻī i ka wā e koi ai ka hihia hoʻohana i kahi hana hoʻokahi manawa ma ka memo. ʻO nā laʻana ka waiho ʻana i ke kālā i loko o kahi moʻokāki a i ʻole ka hoʻopau ʻana i kahi kauoha hoʻouna. E kūkākūkā mākou ma hope no ke aha i hiki ʻole ai i ka ʻōnaehana memo iā ia iho ke hāʻawi i ka hoʻouna ʻana i hoʻokahi manawa a no ke aha e hiki ai i nā pila ke hāʻawi i ka hōʻoia hoʻouna. hoʻokahi manawa.

Mea hoʻopuka-Kakau inoa

Kāhea ʻo Gabriella i ka helu ʻaha kūkā. ʻOiai ʻo ia e pili ana i ka ʻaha kūkā, lohe ʻo ia i nā mea a pau a ka mea haʻiʻōlelo e ʻōlelo ai, a me nā mea ʻē aʻe o ke kelepona. Ke hoʻolohe ʻo ia, poina ʻo ia i ka mea i ʻōlelo ʻia. Ke hoʻopili hou ʻia, hoʻomau ʻo ia i ka lohe ʻana i nā mea e ʻōlelo ʻia nei.

He laʻana kēia o ka hoʻohālike memo hoolaha-kaukau. ʻO ke kelepona ʻaha kūkā ma ke ʻano he hana hoʻolaha. ʻAʻole mālama ka mea e ʻōlelo nei i ka nui o ka poʻe e kāhea nei - ʻo ka ʻōnaehana e hōʻoia i ka lohe ʻana o kekahi i kēia manawa i ka mea i ʻōlelo ʻia.
Ma nā ʻōnaehana memo maʻamau, ua hoʻokō ʻia ke ʻano hoʻolaha hoʻolaha memo kumuhana. Hāʻawi ke kumuhana i ke ʻano hoʻolaha like me ke ʻano hui kūkā. Ke hoʻouna ʻia kahi leka i kahi kumuhana, hoʻolaha ʻia ia no nā mea hoʻohana a pau i kākau inoa.

ʻO nā kumuhana maʻamau hilinaʻi ʻole (nondurable). E like me ka mea hoʻolohe hiki ʻole ke lohe i ka mea i ʻōlelo ʻia ma ke kelepona ʻaha kūkā i ka wā e hemo ai ka mea hoʻolohe, nalo nā mea kākau kumuhana i nā memo i hoʻouna ʻia ʻoiai lākou ma waho. No kēia kumu, hiki iā mākou ke ʻōlelo e hāʻawi nā kumuhana i kahi hōʻoia hoʻouna ʻaʻole ʻoi aku ma mua o hoʻokahi manawa no kēlā me kēia mea kūʻai.

Hoʻohana maʻamau ka memo hoʻopuka-kau inoa inā he ʻike ʻike nā memo a ʻaʻole koʻikoʻi loa ka nalowale ʻana o hoʻokahi memo. No ka laʻana, hiki i kahi kumuhana ke hoʻouna i nā heluhelu wela mai kahi hui o nā mea ʻike hoʻokahi i hoʻokahi kekona. ʻO kahi ʻōnaehana hoihoi i ka mahana o kēia manawa a kau inoa i kahi kumuhana ʻaʻole ia e hopohopo inā nalo i kahi leka - hiki mai kekahi i ka wā e hiki mai ana.

nā hiʻohiʻona hybrid

Hoʻonohonoho ka pūnaewele o ka hale kūʻai i nā memo ma kahi "queue memo." ʻO ka mea kūʻai nui o kēia mau leka ʻo ka ʻōnaehana hoʻokō. Eia kekahi, pono e loaʻa i ka ʻōnaehana loiloi nā kope o kēia mau leka kauoha no ka nānā ʻana ma hope. ʻAʻole hiki i nā ʻōnaehana ʻelua ke ʻae i nā memo e hele, ʻoiai inā ʻaʻole i loaʻa nā ʻōnaehana ponoʻī no kekahi manawa. ʻAʻole pono e ʻike ka pūnaewele i nā ʻōnaehana ʻē aʻe.

Pono pinepine ka hoʻohana ʻana i ka hui pū ʻana o nā hiʻohiʻona hoʻolaha hoʻolaha a me kahi kikoʻī, e like me ke koi ʻana o nā ʻōnaehana lehulehu i kope o kahi leka a pono ʻia ka hilinaʻi a me ka hoʻomau ʻana e pale i ka nalowale o ka memo.

Pono kēia mau hihia i kahi huakaʻi (kahi huaʻōlelo maʻamau no nā queues a me nā kumuhana) e hoʻolaha i nā memo ma ke ʻano he kumuhana, no laila e hoʻouna ʻia kēlā me kēia memo i kahi ʻōnaehana ʻokoʻa hoihoi i kēlā mau memo, akā hiki i kēlā me kēia ʻōnaehana ke wehewehe i nā mea kūʻai aku e loaʻa mai ana. nā memo, ʻoi aku ka like me ka queue. ʻO ke ʻano heluhelu ma kēia hihia hoʻokahi manawa no kēlā me kēia mea kuleana. Pono pinepine kēia mau huakaʻi hybrid i ka lōʻihi no laila inā hele ka mea kūʻai aku ma waho, loaʻa nā memo i hoʻouna ʻia i kēlā manawa ma hope o ka hoʻopili hou ʻana o ka mea kūʻai.

ʻAʻole hou nā hiʻohiʻona Hybrid a hiki ke hoʻohana ʻia i ka hapa nui o nā ʻōnaehana memo, me ActiveMQ (ma o nā wahi kikoʻī a i ʻole ka hui pū ʻana e hui pū ai i nā kumuhana a me nā queues) a me Kafka (ma ke ʻano he waiwai kumu o kāna hoʻolālā huakaʻi).

I kēia manawa ua loaʻa iā mākou kekahi mau huaʻōlelo kumu a me ka hoʻomaopopo ʻana i ka mea hiki iā mākou ke hoʻohana i kahi ʻōnaehana memo, e iho kākou i nā kikoʻī.

Hana ʻia ka unuhi: tele.gg/middle_java

ʻO kēia ʻāpana unuhi: Mokuna 3. Kafka

E hoʻomau 'ia…

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka