Masikati akanaka, Habr! Ndinoda kugovera bhuku-referensi bhuku reruzivo iro ndakakwanisa kuunganidza pariri RabbitMQ
uye kupindirana mupfupi mazano uye mhedziso.
Tafura yezvinyorwa
- RabbitMQ. Chikamu 1. Nhanganyaya. Erlang, AMQP uye RPC
- RabbitMQ. Chikamu 2. Kunzwisisa Kuchinjana
- RabbitMQ. Chikamu 3. Kunzwisisa Mitsetse uye Zvisungo
- RabbitMQ. Chikamu 4. Kunzwisisa kuti mameseji nemafuremu ndeapi
- RabbitMQ. Chikamu 5: Kudhinda uye Kushandisa Mharidzo Kuita
- RabbitMQ. Chikamu 6. Mhedziso yeFederation uye Shovel Modules
- RabbitMQ. Chikamu 7. Tsanangudzo nezve Connection uye Chanel
- RabbitMQ. Chikamu 8. RabbitMQ mu.NET
- RabbitMQ. Chikamu 9. Kuongorora
Muchidimbu nezve AMQP
AMQP (Advanced Message Queuing Protocol) iprotocol yakavhurika yekutumira mameseji pakati pezvikamu zvehurongwa. Pfungwa huru ndeyokuti ma-subsystems ega ega (kana maapplication akazvimirira) anogona kuchinjana mameseji nenzira isina tsarukano kuburikidza ne AMQP broker, inoita routing, pamwe inovimbisa kuendesa, inogovera data hova, uye kunyorera kune yaunoda meseji mhando.
Protocol AMQP
inoburitsa pfungwa nhatu:
exchange
(kuchinjana nzvimbo kana kuchinjana) - mameseji anotumirwa kwairi. Exchange point anoparadzira meseji mumutsetse mumwe kana kupfuura. Iye inoendesa mameseji kumutsetse zvichibva pane zvakabatanidzwa zvakabatanidzwa (binding
) pakati pake nemutsaraqueue
(mutsara) - chimiro che data pane diski kana mu RAM iyo inochengetedza zvinongedzo kumeseji uye inopa makopi emamesejiconsumers
(kune vatengi)binding
(kusunga) - mutemo uyo inotaurira nzvimbo yekuchinjana iyo mutsara unofanirwa kupinda mameseji aya
Iyo protocol inomhanya pamusoro
Muchidimbu nezve Erlang
Iyo purojekiti kodhi kodhi iri munzvimbo inochengeterwa pa
Erlang
yakagadzirwa nekambaniEricsson
pakati pe-1980s seyakagoverwa, kukanganisa-kushivirira, chaiyo-nguva system yezvikumbiro zvinoda 99,999% uptime.Erlang
inoshandiswa mumaindasitiri akasiyana-siyana uye kushandiswa kwemazuva ano, semuenzaniso.WhatsApp architecture, iyo Facebook yakatenga ne $ 19 bhiriyoni
Muchidimbu nezve RabbitMQ
RabbitMQ
inoshandisa uye inowedzera iyo protocol AMQP
.
Pfungwa huru yeiyo meseji modhi mu RabbitMQ
chinhu ndeche producer
(muparidzi) haatumire mameseji zvakananga kumutsara. Muchokwadi, uye kazhinji, muparidzi haatomboziva kana meseji ichaunzwa kune chero mutsara zvachose.
Pane kudaro, muparidzi anogona chete kutumira mameseji kune shanduko. Kune rimwe divi, dhizaini inogamuchira mameseji kubva kuvaparidzi, uye kune rumwe rutivi, inovatumira kumitsetse. Kutsinhana kunofanira kunyatsoziva zvekuita neshoko raanogamuchira. Inofanira kuwedzerwa kune chaiyo mutsara here? Inofanira kuwedzerwa kumitsetse yakawanda here? Kana kuti meseji yacho haifanire kufuratirwa.
Basa pfupi RabbitMQ
inogona kutsanangurwa sezvinotevera:
- Muparidzi anotumira meseji kune imwe shanduko
- Kutsinhana, kana yagamuchira meseji, inoiendesa kune imwe kana kupfuura mutsara zvinoenderana nemitemo inosunga pakati payo nemutsara.
- Mutsara unochengeta chirevo cheshoko iri. Iyo meseji pachayo inochengetwa mu RAM kana pa diski
- Kana mutengi agadzirira kugamuchira meseji kubva kumutsara, sevha inogadzira kopi yemeseji kuburikidza neiyi link uye inotumira.
- Mutengi anogamuchira meseji uye anotumira simbiso kune broker
- Mutengesi, paanogamuchira kusimbiswa, anobvisa kopi yemeseji kubva pamutsetse. Wobva wabvisa kubva RAM uye dhisiki
RPC
gadzira RabbitMQ
. Semuenzaniso, hurukuro dzekutanga pamusoro pematemu emutengi ne RabbitMQ
, inoratidza imwe nzira RPC
. Kana kutevedzana uku kwapera, RabbitMQ
ichave yakagadzirira kugamuchira zvikumbiro kubva kune mutengi:
Uyewo mune tsanangudzo AMQP
zvese mutengi neserver zvinogona kuburitsa mirairo. Izvi zvinoreva kuti mutengi akamirira kutaurirana neserver. Mirairo makirasi uye nzira. Semuyenzaniso, Connection.Start
- nzira yekufona Start
kirasi Connection
.
Connection uye chiteshi
Kuti uwane ruzivo rwakadai pakati pemutengi neseva, migero. Zviteshi zvinogadzirwa mukati chaiyo kubatana. Imwe neimwe chiteshi yakaparadzaniswa kubva kune mamwe chiteshi. Muchiitiko chesynchronous, hazvigoneke kuita murairo unotevera kusvikira mhinduro yagamuchirwa.
Kuti ukwanise kutumira mirairo mune zvakafanana, unofanirwa kuvhura nzira dzinoverengeka. Imwe neimwe chiteshi inogadzira yakaparadzana Erlang
process. Imwe yekubatanidza inogona kuva nematanho akawanda (
Muenzaniso wakapfava wekugadzira chinongedzo uye chiteshi uchishandisa
// ...
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
}
Kuvhura chinongedzo chitsva chekushanda kwega kwega kunorambidzwa zvakanyanya seizvi zvinozotungamira kumitengo yakakwira. Zviteshi zvinofanirwawo kushingirira, asi zvikanganiso zvakawanda zveprotocol zvinoita kuti chiteshi chivhare, saka hupenyu hwechiteshi hunogona kunge hupfupi pane hwekubatanidza.
RabbitMQ inoshandiswa kupi?
Muchirevo che microservices, iyo protocol AMQP
uye kushandiswa kwayo mu RabbitMQ
kazhinji inoshandiswa kupindirana kweasynchronous pakati pemasevhisi.
Muchirevo chechinyorwa IIOT
protocol AMQP
uye kushandiswa kwayo mu RabbitMQ
inoshandiswa kuchinjanisa data pakati pemaseva (server-server). Uyewo shandisa plugin
Munyaya inotevera tichatanga kunzwisisa Exchanges zvakadzama.
nezvakanyorwa
Source: www.habr.com