Masana abwino, Habr! Ndikufuna kugawana nawo buku lachidziwitso lachidziwitso chomwe ndidakwanitsa kusonkhanitsa RabbitMQ
ndikuphatikiza muzopereka zazifupi ndi ziganizo.
Zamkatimu
- RabbitMQ. Gawo 1. Chiyambi. Erlang, AMQP ndi RPC
- RabbitMQ. Gawo 2. Kumvetsetsa Kusinthana
- RabbitMQ. Gawo 3. Kumvetsetsa Mizere ndi Zomangamanga
- RabbitMQ. Gawo 4. Kumvetsetsa zomwe mauthenga ndi mafelemu ndi
- RabbitMQ. Gawo 5: Kusindikiza ndi Kugwiritsa Ntchito Mauthenga
- RabbitMQ. Gawo 6. mwachidule za Federation ndi Mafosholo Module
- RabbitMQ. Gawo 7. Tsatanetsatane wa Kulumikizana ndi Chanel
- RabbitMQ. Gawo 8. RabbitMQ mu .NET
- RabbitMQ. Gawo 9. Kuwunika
Mwachidule za AMQP
AMQP (Advanced Message Queuing Protocol) ndi njira yotseguka yotumizira mauthenga pakati pa zigawo zamakina. Lingaliro lalikulu ndilakuti magulu ang'onoang'ono (kapena mapulogalamu odziyimira pawokha) amatha kusinthana mauthenga mosasamala kudzera mwa broker ya AMQP, yomwe imayendetsa, mwina imatsimikizira kutumiza, kugawa ma data, ndikulembetsa mitundu yomwe mukufuna.
Pulogalamu AMQP
imabweretsa malingaliro atatu:
exchange
(malo osinthanitsa kapena kusinthanitsa) - mauthenga amatumizidwa kwa izo. Kusinthana mfundo amagawa uthenga pamzere umodzi kapena zingapo. Iye amatumiza mauthenga pamzere kutengera maulalo opangidwa (binding
) pakati pa iye ndi mzerequeue
(mzere) - dongosolo la data pa disk kapena mu RAM kuti amasunga maulalo a mauthenga ndikupereka makope a mauthengaconsumers
(kwa ogula)binding
(kumanga) - lamulo kuti imauza malo osinthira omwe mauthengawa akuyenera kulowa
Protocol imayenda pamwamba
Mwachidule za Erlang
Khodi yoyambira polojekitiyi ili munkhokwe ku
Erlang
yopangidwa ndi kampaniyoEricsson
mkati mwa zaka za m'ma 1980 monga njira yogawidwa, yolekerera zolakwika, nthawi yeniyeni yogwiritsira ntchito zomwe zimafuna 99,999% uptime.Erlang
amagwiritsidwa ntchito m'mafakitale osiyanasiyana ndi ntchito zamakono, mwachitsanzo.Zomangamanga za WhatsApp, zomwe Facebook idagula $ 19 biliyoni
Mwachidule za RabbitMQ
RabbitMQ
imagwiritsa ntchito ndikuwonjezera protocol AMQP
.
Lingaliro lalikulu lachitsanzo cha mauthenga mu RabbitMQ
chinthu ndichakuti producer
(wosindikiza) samatumiza mauthenga mwachindunji pamzere. M'malo mwake, ndipo nthawi zambiri, wosindikiza sadziwa nkomwe ngati uthengawo udzaperekedwa pamzere uliwonse.
M'malo mwake, wofalitsayo amatha kutumiza mauthenga ku kusinthana. Kumbali ina, kusinthanitsa kumalandira mauthenga kuchokera kwa ofalitsa, ndipo kumbali ina, kumawatumiza ku mizere. Kusinthanitsa kuyenera kudziwa zenizeni zoyenera kuchita ndi uthenga womwe walandira. Kodi iwonjezedwa pamzere wina wake? Kodi ziyenera kuwonjezeredwa pamizere ingapo? Kapena uthengawo uyenera kunyalanyazidwa.
Ntchito yachidule RabbitMQ
akhoza kufotokozedwa motere:
- Wofalitsa amatumiza uthenga ku kusinthana kwapadera
- Kusinthana, kutalandira uthenga, kumawatumizira pamzere umodzi kapena zingapo malinga ndi malamulo omangiriza pakati pake ndi mzerewo.
- Mzerewu umasunga zonena za uthengawu. Uthengawo umasungidwa mu RAM kapena pa disk
- Wogula akakonzeka kulandira uthenga kuchokera pamzere, seva imapanga kopi ya uthengawo kudzera pa ulalo ndikutumiza.
- Wogula amalandira uthenga ndikutumiza chitsimikiziro kwa broker
- Wogulitsayo, atalandira chitsimikiziro, amachotsa kopi ya uthenga kuchokera pamzere. Ndiye deletes ku RAM ndi litayamba
CPR
ndondomeko RabbitMQ
. Mwachitsanzo, kukambirana koyamba za zomwe kasitomala akufuna ndi RabbitMQ
, imasonyeza njira inayake RPC
. Izi zikatha, RabbitMQ
adzakhala okonzeka kuvomereza zopempha kuchokera kwa kasitomala:
Komanso mu specifications AMQP
onse kasitomala ndi seva akhoza kutulutsa malamulo. Izi zikutanthauza kuti kasitomala akuyembekezera kulankhulana ndi seva. Malamulo ndi makalasi ndi njira. Mwachitsanzo, Connection.Start
- njira yothetsera Start
kalasi Connection
.
Kulumikizana ndi njira
Pakusinthanitsa zidziwitso zotere pakati pa kasitomala ndi seva, njira. Makanema amapangidwa mkati kugwirizana kwapadera. Chanelo chilichonse chimakhala chodzipatula kumayendedwe ena. Muzochitika zofananira, sizingatheke kuchita lamulo lotsatira mpaka yankho lilandiridwa.
Kuti muthe kutumiza malamulo mofanana, muyenera kutsegula njira zingapo. Njira iliyonse imapanga yosiyana Erlang
ndondomeko. Kulumikizana kumodzi kumatha kukhala ndi njira zingapo (
Chitsanzo chophweka chopanga kugwirizana ndi njira yogwiritsira ntchito
// ...
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
}
Kutsegula kugwirizana kwatsopano kwa ntchito iliyonse kumakhumudwitsidwa kwambiri monga izi zidzabweretsa kukwera mtengo. Njira ziyeneranso kukhala zolimbikira, koma zolakwika zambiri za protocol zimapangitsa kuti njirayo itseke, kotero kuti moyo wa tchanelo ukhoza kukhala wamfupi kuposa wa kugwirizana.
Kodi RabbitMQ amagwiritsidwa ntchito pati?
Pankhani ya microservices, protocol AMQP
ndi kukhazikitsidwa kwake mu RabbitMQ
nthawi zambiri amagwiritsidwa ntchito kuyanjana kwa asynchronous pakati pa mautumiki.
M'nkhani yake IIOT
protocol AMQP
ndi kukhazikitsidwa kwake mu RabbitMQ
amagwiritsidwa ntchito pakusinthana kwa data pakati pa ma seva (seva-seva). Gwiritsaninso ntchito pulogalamu yowonjezera
M'nkhani yotsatira tiyamba kumvetsetsa Kusinthanitsa mwatsatanetsatane.
powatsimikizira
Source: www.habr.com