RabbitMQ. Pars 1. Introductio. Erlang, AMQP

Salve, Habr! Cupio communicare textum-reference libri cognitionis quam potui colligere RabbitMQ et in brevibus commendationibus et conclusionibus.

mensam de contentis in eodem

  • RabbitMQ. Pars 1. Introductio. Erlang, AMQP et RPC
  • RabbitMQ. Pars 2. Intellectus Permutationes
  • RabbitMQ. Pars 3. Intellectus Queues et Vincula
  • RabbitMQ. Pars 4. Intelligentes quae sunt mandata et tabulae
  • RabbitMQ. Pars V: Nuntius Publishing et perussi euismod
  • RabbitMQ. Pars 6. Recognitio Foederationis et Modulorum Shovel
  • RabbitMQ. Pars 7. Singula de Connection et Canali
  • RabbitMQ. Pars 8. RabbitMQ in .NET
  • RabbitMQ. Part 9. Cras

Breviter de AMQP

AMQP (Protocollum Nuntius Queuing Protocollum) apertum est protocollum tradendi nuntiis inter systematis componentibus. Praecipua notio est quod singula subsystema (vel applicationes independentes) possunt nuntios arbitrario modo permutare per AMQP sectorem, qui fundere, forte partus spondet, data rivulos distribuit, et generum nuntium desideratum subscribit.

protocol AMQP tres notiones introducit;

RabbitMQ. Pars 1. Introductio. Erlang, AMQP

  • exchange (commutatio punctus seu commutatio) - nuntii ad eum mittuntur. Commutatio punctum distribuit nuntium in uno vel pluribus stantibus anteponere. She iter nuntiis ad queue secundum nexus creatus (binding) inter eum et queue
  • queue (Queue) - a notitia compages in orbe vel in RAM that stores links to nuntia ac dat exemplaria epistulae consumers (Ad consumers)
  • binding (Binding) - regula narrat commercium quod queue his nuntiis ingrediantur

Protocol decurrit super TCP / IP.

Breviter de Erlang

Proiectum fons est in eclesiae reposito GitHub. Architecture RabbitMQ-servus fundatur erlang et TRABES.

Erlang developed per societatem Ericsson in medio 1980s sicut distributa, culpa tolerans, systema reale tempus applicationes ad 99,999% uptime requiret. Erlang in variis industriis et recentioribus applicationibus, exempli causa WhatsApp. Plura legere potes in articulo Whatsapp architectura, quam Facebook emit pro $ XIX sescenti

Breviter de RabbitMQ

RabbitMQ fons apertus nuntius sectorem esse. Mandata tendit per omnia principia fundamentalia protocolli AMQP descriptus in * cubits. RabbitMQ utensilia et supplementa protocollo AMQP.

Praecipua idea exemplar nuntiandi in RabbitMQ res est producer (publisher) nuntiis directe ad queue non mittit. Revera, et saepius, editor ne scit quidem si nuntius cuilibet queue tradetur.

Sed editor tantum nuntios ad commutationem mittere potest. Ex altera parte, commutatio nuntiis ab editoribus accipit, et ab altera manu ad queues mittit. Commutatio prorsus scire debet quid acturus sit cum nuntio accepto. Num addenda certae queue? An multis queuis adiciatur? Vel nuntius est negligendus.

RabbitMQ. Pars 1. Introductio. Erlang, AMQP

Opus breve RabbitMQ describi potest sic:

  1. Editor misit ad specifica commutationem
  2. Commutatio, nuntio accepto, eam ad unum vel plures queues fundit secundum regulas ligaturae inter illam et queue.
  3. Queue hunc nuntium reponit. Nuntius in RAM vel in disco reponitur
  4. Postquam dolor paratus est nuntium a queue recipere, server exemplum nuntii per nexum creat et mittit
  5. Dolor suscipit nuntium et confirmationem ad sectorem
  6. Mercator, accepta confirmatione, exemplum nuntii a queue removet. Deinde delet de RAM et disci

A. RPC

processus A. R. (longinquum modum vocationis) subest fere interationes cum nucleo RabbitMQ. Exempli gratia: disputationes initiales de terminis huius cum RabbitMQDemonstratur quidam processus RPC. Cum haec series completa est; RabbitMQ paratus erit accipere petitiones clientis;

RabbitMQ. Pars 1. Introductio. Erlang, AMQP

Etiam in specie AMQP et cliens et servulus imperare possunt. Hoc significat clientem exspectare communicandi cum servo. Praecepta sunt genera et rationes. Exempli gratia Connection.Start - modum vocationis Start class Connection.

Connection et canales

Talis notitia commutatio est inter clientem et servitorem; channels. Canales creantur intus propria connexio. Quisque alveus ab aliis canalibus segregatus est. In casu synchrono, non potest proximum mandatum exequi, donec responsio recipiatur.

Ut imperia in parallela mittere possim, plures canales tibi aperiendi. Quisque pretium separatum Erlang processum. Una iunctio habere plures vias potest (multiplexing). Pro quolibet canali sunt quaedam structurae et res in memoria. Ergo magis canales sunt intra connexionem; RabbitMQ utitur memoria tali nexu administrare.

RabbitMQ. Pars 1. Introductio. Erlang, AMQP

Simplex exemplum creando nexum et alveum utens RabbitMQ.Client:

// ...
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 
}

Novam connexionem aperiens pro unaquaque operatione valde deficiet sicut hoc princeps costs erit ne. Canales etiam esse debent perseverantes, sed multi protocolli errores claudendi alveum faciunt, ut vita canalis brevior quam nexus sit.

Ubi usus est RabbitMQ?

In contextu microservices, protocollo AMQP and its implementation in RabbitMQ saepe usus est in asynchronous commercium inter officia.

In contextu IIOT protocol AMQP and its implementation in RabbitMQ usus est pro notitia commutationem inter servers (servo-server). Etiam uti plugin MQTT Plugin RabbitMQ quae est exsecutio protocolli MQTT pro transmittendi notitia inter sensorem et ministratorem in low-celeritate, summus latency ambitus (a plenissima indicem sustentatorum protocolla recensetur ad project website).

In proximo capitulo accuratius Permutationes intelligere incipiemus.

References

Source: www.habr.com