Molo emva kwemini, Habr! Ndifuna ukwabelana ngencwadi yesikhokelo yolwazi endiye ndakwazi ukuyiqokelela RabbitMQ
kwaye udibanise kwiingcebiso ezimfutshane kunye nezigqibo.
Uluhlu lomxholo
- UmvundlaMQ. Icandelo 1. Intshayelelo. Erlang, AMQP kunye neRPC
- UmvundlaMQ. Icandelo 2. Ukuqonda Utshintshiselwano
- UmvundlaMQ. Isiqendu 3. Ukuqonda iMigcele kunye nezibophelelo
- UmvundlaMQ. Icandelo 4. Ukuqonda ukuba yintoni imiyalezo kunye nezakhelo
- UmvundlaMQ. Icandelo 5: Upapasho loMyalezo kunye nokuSetyenziswa kokuSebenza
- UmvundlaMQ. Icandelo 6. Uphononongo lweemodyuli zeManyano kunye neMihlaba
- UmvundlaMQ. Icandelo 7. Iinkcukacha malunga noQhagamshelwano kunye neChanel
- UmvundlaMQ. Icandelo 8. RabbitMQ kwi.NET
- UmvundlaMQ. Icandelo 9. Ukubeka iliso
Ngokufutshane malunga ne-AMQP
I-AMQP (iProtocol ye-Advanced Message Queuing) yinkqubo evulekileyo yokudlulisa imiyalezo phakathi kwamacandelo enkqubo. Ingcamango esisiseko kukuba ii-subsystems zomntu ngamnye (okanye izicelo ezizimeleyo) zinokutshintshiselana ngemiyalezo ngendlela engafanelekanga ngomthengisi we-AMQP, owenza umzila, mhlawumbi uqinisekisa ukuhanjiswa, ukusasaza imilambo yedatha, kwaye ubhalisele kwiintlobo zemiyalezo efunwayo.
Inkqubo AMQP
yazisa iikhonsepthi ezintathu:
exchange
(indawo yokutshintshiselana okanye utshintshiselwano) - imiyalezo ithunyelwa kuyo. Indawo yotshintshiselwano ihambisa umyalezo kumgca omnye okanye ngaphezulu. Yena Ihambisa imiyalezo emgceni isekelwe kumakhonkco adaliweyo (binding
) phakathi kwakhe nomgcaqueue
(umgca) - ulwakhiwo lwedatha kwidiski okanye kwi-RAM leyo igcina amakhonkco kwimiyalezo kwaye inika iikopi zemiyalezoconsumers
(kubathengi)binding
(ebopha) - umthetho ukuba ixelela indawo yotshintshiselwano ngomgca ekufuneka ingene kuwo le miyalezo
Iprothokholi iqhuba phezulu
Ngokufutshane malunga no-Erlang
Ikhowudi yemvelaphi yeprojekthi ikwindawo yokugcina
Erlang
iphuhliswe yinkampaniEricsson
phakathi kwe-1980s njengenkqubo esasazwayo, enyamezelayo, yexesha langempela kwizicelo ezifuna i-99,999%.Erlang
isetyenziswe kumashishini ahlukeneyo kunye nezicelo zanamhlanje, umz.Uyilo lwe-WhatsApp, apho i-Facebook ithenge i-19 yeebhiliyoni zeedola
Ngokufutshane malunga neRabbitMQ
RabbitMQ
sebenzisa kwaye yongeza iprothokholi AMQP
.
Umbono ophambili wemodeli yemiyalezo kwi RabbitMQ
into yile producer
(umpapashi) akathumeli imiyalezo ngokuthe ngqo emgceni. Ngapha koko, kwaye rhoqo, umshicileli akazi nokuba umyalezo uza kuhanjiswa kuwo nawuphi na umgca kwaphela.
Endaweni yoko, umshicileli unokuthumela kuphela imiyalezo kutshintshiselwano. Kwelinye icala, utshintshiselwano lufumana imiyalezo evela kubapapashi, kwaye kwelinye icala, lubathumela emigceni. Utshintshiselwano kufuneka lwazi ngokuthe ngqo ukuba lenze ntoni ngomyalezo olufumanayo. Ngaba kufuneka yongezwe kumgca othile? Ngaba kufuneka yongezwe kwimigca emininzi? Okanye umyalezo kufuneka ungahoywa.
Umsebenzi omfutshane RabbitMQ
inokuchazwa ngolu hlobo lulandelayo:
- Umshicileli uthumela umyalezo kutshintshiselwano oluthile
- Utshintshiselwano, emva kokuba ufumene umyalezo, uwuhambisa kumgca omnye okanye ngaphezulu ngokuhambelana nemigaqo ebophelelayo phakathi kwayo kunye nomgca.
- Umgca ugcina ireferensi yalo myalezo. Umyalezo ngokwawo ugcinwe kwi-RAM okanye kwidiski
- Nje ukuba umthengi alungele ukufumana umyalezo ovela emgceni, umncedisi wenza ikopi yomyalezo ngekhonkco kwaye athumele.
- Umthengi ufumana umyalezo kwaye athumele isiqinisekiso kumthengisi
- Umthengisi, xa efumana isiqinisekiso, ususa ikopi yomyalezo ukusuka kumgca. Emva koko icima kwi-RAM kunye nediski
CPP
Inkqubo RabbitMQ
. Umzekelo, iingxoxo zokuqala malunga nemiqathango yomxhasi kunye RabbitMQ
, ibonisa inkqubo ethile RPC
. Nje ukuba olu landelelwano lugqityiwe, RabbitMQ
iya kuba ikulungele ukwamkela izicelo ezivela kumxhasi:
Kwakhona kwingcaciso AMQP
bobabini umxhasi kunye nomncedisi banokukhupha imiyalelo. Oku kuthetha ukuba umxhasi ulinde ukunxibelelana nomncedisi. Imiyalelo ziiklasi kunye neendlela. Umzekelo, Connection.Start
β indlela yokufowuna Start
ΠΊΠ»Π°ΡΡΠ° Connection
.
Uqhagamshelwano kunye nemijelo
Ngotshintshiselwano olunjalo lolwazi phakathi komthengi kunye nomncedisi, amajelo. Imijelo yenziwa ngaphakathi uqhagamshelwano oluthile. Ijelo ngalinye libekwe lodwa kwamanye amajelo. Kwimeko ye-synchronous, akunakwenzeka ukwenza umyalelo olandelayo de kufunyenwe impendulo.
Ukuze ukwazi ukuthumela imiyalelo ngokuhambelanayo, kufuneka uvule amajelo amaninzi. Ijelo ngalinye lidala elahlukileyo Erlang
inkqubo. Uqhagamshelo olunye lunokuba namajelo amaninzi (
Umzekelo olula wokudala uqhagamshelo kunye netshaneli usebenzisa
// ...
private void TryConnect()
{
var factory = new ConnectionFactory()
{
HostName = "host_name",
UserName = "user_name",
Password = "p@ssword",
// ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΠΊΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
// ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΠ΅Π² ΡΠ΅ΡΠΈ
AutomaticRecoveryEnabled = true
};
_connection = factory.CreateConnection();
}
// ...
public void CreateChanel()
{
_channel = _connection.CreateModel();
// other options
}
Ukuvula umdibaniso omtsha kumsebenzi ngamnye akukhuthazwa ngamandla njengale kuya kukhokelela kwiindleko eziphezulu. Iziteshi kufuneka ziqhubeke, kodwa iimpazamo ezininzi zeprotocol zibangela ukuba itshaneli ivalwe, ngoko ke ubomi bomjelo bunokuba bufutshane kunonxibelelwano.
Isetyenziswa phi iRabbitMQ?
Kumxholo wee-microservices, iprotocol AMQP
kunye nokuphunyezwa kwayo kwi RabbitMQ
rhoqo esetyenziselwa intsebenziswano engavumelaniyo phakathi kweenkonzo.
Kumxholo IIOT
umthetho olandelwayo AMQP
kunye nokuphunyezwa kwayo kwi RabbitMQ
isetyenziselwa utshintshiselwano lwedatha phakathi kweeseva (umncedisi-umncedisi). Kwakhona sebenzisa i-plugin
Kwinqaku elilandelayo siza kuqala ukuqonda Utshintshiselwano ngokweenkcukacha ngakumbi.
iimbekiselo
umthombo: www.habr.com