RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP

Kia ora, Habr! E hiahia ana ahau ki te whakapuaki i tetahi pukapuka tohutoro mo te matauranga i taea e au te kohikohi RabbitMQ me te whakamaarama ki nga tohutohu poto me nga whakatau.

Ripanga o nga ihirangi

  • RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP me RPC
  • RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti
  • RapetiMQ. Wāhanga 3. Te Māramatanga ki ngā Tūtira me ngā Here
  • RapetiMQ. Wāhanga 4. Te māramatanga he aha ngā karere me ngā tāpare
  • RapetiMQ. Wāhanga 5: Te Whakaputa Karere me te Mahi Whakamahi
  • RapetiMQ. Wāhanga 6. Te arotake i nga waahanga o te Federation me te koko
  • RapetiMQ. Wāhanga 7. Nga korero mo te Hononga me te Chanel
  • RapetiMQ. Wāhanga 8. RabbitMQ i .NET
  • RapetiMQ. Wāhanga 9. Te Aroturuki

He korero poto mo AMQP

Ko te AMQP (Advanced Message Queuing Protocol) he kawa tuwhera mo te tuku karere i waenga i nga waahanga punaha. Ko te whakaaro matua ka taea e nga punaha-a-roto takitahi (nga tono motuhake ranei) te whakawhiti i nga karere i runga i te ahua o te kaihokohoko AMQP, e mahi ana i te ararere, ka whakamanahia pea te tuku, te tohatoha i nga awa raraunga, me te ohauru ki nga momo karere e hiahiatia ana.

Tuhinga AMQP e whakaatu ana i nga ariā e toru:

RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP

  • exchange (whakawhitinga, whakawhiti ranei) - ka tukuna nga karere ki a ia. Ira whakawhiti ka tohatoha karere i roto i te rarangi kotahi, neke atu ranei. Ko ia ara i nga karere ki tetahi rarangi i runga i nga hononga i hangaia (binding) i waenganui i a ia me te tūtira
  • queue (Tira) - he hanganga raraunga i runga i te kōpae, i te RAM ranei ka penapena hononga ki nga karere me te tuku kape o nga karere consumers (ki nga kaihoko)
  • binding (binding) - he ture e ka korero ki te waahi whakawhiti ko tehea rarangi me uru enei karere

Ka rere te kawa ki runga TCP/IP.

He poto mo Erlang

Ko te waehere puna o te kaupapa kei roto i te putunga i GitHub. Hangahanga RabbitMQ-tūmau i runga i Erlang me te KUrupae.

Erlang whakawhanakehia e te kamupene Ericsson i waenganui o te 1980s he punaha toha, he-kore, he punaha wa-pono mo nga tono me 99,999% te wa mahi. Erlang whakamahia i roto i nga momo ahumahi me nga tono hou, hei tauira. WhatsApp. Ka taea e koe te panui atu i roto i te tuhinga WhatsApp hoahoanga, i hokona e Facebook mo te $19 piriona

He korero poto mo RabbitMQ

RabbitMQ he kaihokohoko karere puna tuwhera. Ka arataki i nga karere i runga i nga maapono taketake katoa o te kawa AMQP whakaahuatia i roto i whakaritenga. RabbitMQ ka whakatinana me te taapiri i te kawa AMQP.

Ko te whakaaro matua o te tauira karere i roto RabbitMQ mea ko producer (kaiwhakaputa) kaore e tuku karere tika ki te rarangi. Inaa, he maha tonu, kaore te kaiwhakaputa i te mohio mena ka tukuna atu te karere ki tetahi rarangi.

Engari, ka taea e te kaiwhakaputa anake te tuku karere ki te whakawhiti. I tetahi taha, ka whiwhi te whakawhitiwhiti i nga karere mai i nga kaiwhakaputa, i tetahi atu ringa, ka tukuna atu ki nga rarangi. Me tino mohio te whakawhitinga ki te mahi ki te karere ka riro mai. Me taapiri atu ki tetahi rarangi motuhake? Me taapiri atu ki nga rarangi maha? Me waiho ranei te karere.

RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP

Mahi poto RabbitMQ Ka taea te korero penei:

  1. Ka tukuna e te kaiwhakaputa he karere ki tetahi whakawhitinga motuhake
  2. Ko te whakawhitinga, ka tae mai he karere, ka toro atu ki tetahi, neke atu ranei o nga rarangi i runga i nga ture here i waenga i a ia me te rarangi.
  3. Ka penapenahia e te rarangi he tohutoro ki tenei karere. Ko te karere ake kei te penapena i roto i te RAM, i te kōpae ranei
  4. Kia rite te kaihoko ki te whiwhi karere mai i te rarangi, ka hangaia e te kaimau he kape o te karere ma te hono me te tuku
  5. Ka whiwhi te kaihoko i te panui me te tuku i te whakapumautanga ki te kaihokohoko
  6. Ka tangohia e te kaihokohoko he kape o te karere mai i te rarangi. Na ka mukua mai i te RAM me te kōpae

Kotahi

tukanga RPC (waea mahi mamao) kei raro tata katoa nga taunekeneke ki te karihi RabbitMQ. Hei tauira, ko nga korerorero tuatahi mo nga kupu a te kiritaki me RabbitMQ, e whakaatu ana i tetahi tukanga RPC. Kia oti tenei raupapa, RabbitMQ ka rite ki te whakaae ki nga tono a te kaihoko:

RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP

I roto ano hoki i te whakaritenga AMQP Ka taea e te kiritaki me te tūmau te tuku whakahau. Ko te tikanga kei te tatari te kiritaki ki te korero ki te tūmau. Ko nga whakahau he karaehe me nga tikanga. Hei tauira, Connection.Start – karanga tikanga Start akomanga Connection.

Hononga me nga hongere

Mo nga whakawhitiwhiti korero penei i waenga i te kaihoko me te tūmau, hongere. Ka hangaia nga hongere i roto hononga motuhake. Ka wehea ia hongere mai i etahi atu hongere. I roto i te keehi tukutahi, kaore e taea te whakahaere i te whakahau e whai ake nei kia tae ra ano he whakautu.

Kia taea ai e koe te tuku whakahau i roto i te whakarara, me whakatuwhera e koe etahi hongere. Ka hangaia e ia hongere he waahanga motuhake Erlang tukanga. Ka taea e tetahi hononga te maha nga hongere (whakawhitinga). Mo ia hongere he hanganga me etahi taonga kei roto i te mahara. No reira, ko te maha o nga hongere kei roto i tetahi hononga, ko te He nui ake te mahara a RabbitMQ ki te whakahaere i taua hononga.

RapetiMQ. Wāhanga 1. Kupu Whakataki. Erlang, AMQP

He tauira ngawari mo te hanga hononga me te hongere ma te whakamahi RabbitMQ.Kaihoko:

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

Ko te whakatuwhera i tetahi hononga hou mo ia mahi ka tino whakakorehia na tenei ka nui te utu. Me mau tonu nga hongere, engari he maha nga hapa kawa ka kati te hongere, na reira ka poto ake te roanga o te hongere i tera o te hononga.

Kei hea te RabbitMQ e whakamahia ana?

I roto i te horopaki o microservices, te kawa AMQP me tona whakatinanatanga i roto RabbitMQ whakamahia maha mo pāhekoheko tukutahi i waenganui i nga ratonga.

I roto i te horopaki IIOT kawa AMQP me tona whakatinanatanga i roto RabbitMQ whakamahia mo te whakawhiti raraunga i waenga i nga tūmau (tūmau-tūmau). Whakamahia hoki te mono MQTT mono RabbitMQ he whakatinanatanga o te kawa MQTT mo te tuku raraunga i waenga i te pūoko me te tūmau i roto i nga taiao iti-tere, teitei-tere (he rarangi katoa o nga kawa tautoko kua whakarārangihia i paetukutuku kaupapa).

I roto i te tuhinga e whai ake nei ka timata tatou ki te mohio ki nga Whakawhitinga i roto i nga korero taipitopito.

tohutoro

Source: will.com

Hokona te manaaki pono mo nga waahi me te tiaki DDoS, nga kaiwhakarato VPS VDS 🔥 Hokona he manaaki paetukutuku pono me te tiakitanga DDoS, ngā tūmau VPS VDS | ProHoster