Exchange - mgbanwe ma ọ bụ ebe mgbanwe. A na-ezigara ya ozi. Exchangena-ekesa ozi n'otu ahịrị ma ọ bụ karịa. Ọ na-eduga ozi na kwụ n'ahịrị dabere na njikọ ndị emepụtara (bindings) n'etiti ya na kwụ n'ahịrị.
Exchange abụghị Usoro Erlang. Maka ihe kpatara scalability exchange - Nke a bụ ahịrị (njikọ na modul nwere koodu ebe mgbagha mgbagha dị) na nchekwa data arụnyere. mesia. 1 puku ndị mgbanwe ga-eri naanị 1MB nke ebe nchekwa.
RabbitMQ. Part 4. Ịghọta ihe ozi na okpokolo agba bụ
RabbitMQ. Nkebi nke 5: Nbipụta ozi na arụmọrụ oriri
RabbitMQ. Nkebi 6. Nyochaa nke Federation na shọvel modul
RabbitMQ. Nkebi nke 7. Nkọwa gbasara Njikọ na Chanel
RabbitMQ. Akụkụ 8. RabbitMQ na .NET
RabbitMQ. Nkebi 9. Nleba anya
Direct Exchange
Direct exchange - eji mgbe achọrọ zipu ozi na ahịrị ndị akọwapụtara. A na-ebipụta ozi ahụ na onye mgbanwe ya na otu igodo ụzọ wee banye n'ahịrị ahịrị niile ejikọrọ na onye ngbanwe a nwere igodo ntụgharị yiri ya. Igodo ntụgharị bụ eriri. A na-ahụ ndakọrịta site na iji ịlele eriri maka nhata.
Ngosipụta eserese nke mgbaba ozi:
В rabbitmq enwere echiche onye mgbanwe ndabara. Nke a direct exchange enweghị aha. Ọ bụrụ na ejiri onye mgbanwe ndabara, a ga-ebufe ozi ahụ n'ahịrị nwere aha ha nhata igodo ntụgharị ozi.
Ntụgharị isiokwu
Topic exchange - yiri direct exchange na-eme ka usoro ụzọ họrọ site n'iji igodo ụzọ atụnyere. Ma, na nke a, a na-enye igodo ahụ dị ka template. Mgbe ị na-eke template, jiri 0 ma ọ bụ karịa okwu (akwụkwọ ozi AZ и az na ọnụọgụgụ 0-9), nke kewara site na ntụpọ, yana akara * и #.
* - nwere ike dochie ya kpọmkwem 1 okwu ahụ
# - nwere ike dochie ya 0 ma ọ bụ karịa okwu
Ngosipụta eserese nke mgbaba ozi:
Ebe ọ bụ na nsụgharị RabbitMQ 2.4.0 usoro algorithm maka topic exchange malitere ịrụ ọrụ ruo mgbe 145 ugboro ngwa ngwa. Ha nwetara nke a site n'iwebata ụzọ gbalịa mmejuputa iwu, nke gụnyere na-anọchi anya ụkpụrụ dịka nhazi osisi. Dịka ọmụmaatụ ndebiri a.b.c, a.*.b.c, a.#.c и b.b.c usoro a ga-anọchi anya ya:
A na-eme nchọpụta maka ịmekọrịta ụkpụrụ na-amalite site na mgbọrọgwụ wee na-esi n'elu ruo na ala.
Atụmatụ:
ojiji nke a Exchanger nwere ike ịghọ nhọrọ dị mma maka mmepe ngwa ngwa ga-eme n'ọdịnihu, n'ihi na Enwere ike ịhazi ndebiri mgbe niile ka e wee bipụta ozi ahụ n'otu ụzọ ahụ direct exchange ma ọ bụ fanout exchange
Fanout exchange - a na-ezipụ ozi niile na kwụ n'ahịrị niile ọbụlagodi na akọwapụtara igodo ụzọ n'ime ozi ahụ.
Atụmatụ:
RabbitMQanaghị arụ ọrụ na igodo ụzọ na ndebiri nke nwere mmetụta dị mma na mmepụta ihe. Nke a bụ nke kacha ọsọ exchange;
ndị niile na-azụ ahịa ga-enwe ike ịhazi ozi niile;
Ngosipụta eserese nke mgbaba ozi:
Ngbanwe nkụnye eji isi mee
Headers exchange - na-ebuga ozi gaa n'ahịrị emetụtara dabere na ntụnyere (isi, uru) ụzọ abụọ ihe onwunwe headers njikọ na njirimara ozi yiri ya. headers bụ a Dictionary<ключ, значение>.
Ọ bụrụ na ịtinye igodo pụrụ iche na ọkọwa okwu x-match nwere ihe ọ pụtara any, mgbe ahụ, a na-ebugharị ozi ahụ ma ọ bụrụ na enwere otu akụkụ nke (isi, uru) ụzọ abụọ. Omume a yiri onye ọrụ or.
var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");
Igodo izizi x-match nwere uru all. Nke a pụtara na a na-ebugharị ozi ahụ ma ọ bụrụ na ụzọ abụọ (igodo, uru) dabara nke ọma. Omume a yiri onye ọrụ and.
Ngosipụta eserese nke mgbaba ozi:
Atụmatụ:
mgbanwe mgbanwe
n'elu mgbako ọzọ. Niile (isi, uru) ụzọ abụọ nke àgwà headers a ga-ahazirịrị site na aha igodo tupu ịgbakọ ụkpụrụ ntụgharị ozi. Dị nwayọọ karịa ụdị mgbanwe ndị ọzọ.
Consistent-hashing exchange (mgbanwe na hashing na-agbanwe agbanwe) - ejiri ya mgbe enwere ọtụtụ ahịrị ndị nwere ike ịnweta ozi, yana mgbe ịchọrọ ịhazigharị ibu dị n'etiti ha. Njikọ nke ozi na kwụ n'ahịrị na-apụta site na ịdị arọ (uru eriri ọnọdụ si 0 - n).
Ihe nha nha nke kwụ n'ahịrị - na-egosi na kwụ n'ahịrị ọ bụla ga-enweta ihe dị ka otu ego ozi (a ga-etinye ozi ọ bụla n'otu kwụ n'ahịrị). Enweghị nkwa zuru oke maka nkesa ozi otu.
Ngosipụta eserese nke mgbaba ozi:
Hash gbakọọ dabere na igodo ụzọ ma ọ bụ ihe onwunwe headers ozi. Ọ bụrụ na ozi niile ebipụtara nwere igodo ụzọ ụzọ dị iche ma ọ bụ headers, mgbe ahụ nkesa ga-eme site na ibu. Ma ọ bụghị ya, a ga-eji igodo ụzọ ụzọ ma ọ bụ headers.
Kwesịrị inye aka mgbe ntinye aka nke ndị ahịa kwesịrị itolite elu karịa ngwọta nke nwere ọtụtụ ndị na-azụ ahịa na-eji otu kwụ n'ahịrị.
Na-ejikọta ndị mgbanwe (E2E)
Enwere ike ijikọ omume nke ndị mgbanwe niile site na iji nkwukọrịta Exchange-na-Exchange (ịkọkọta ndị mgbanwe adịghị etinye na nkọwapụta AMQP. Nke a bụ ndọtị nke protocol si n'akụkụ RabbitMQ).
Ngosipụta eserese nke mgbaba ozi:
Na efu nke E2E anyị nwere ike ịchọta nhazi nhazi nke ọma iji zute ma ugbu a ma na-eto eto chọrọ.
Mepụta mgbanwe
Ịmepụta ihe mgbanwe na-eme site na iji synchronous RPC arịrịọ maka ihe nkesa. A na-eme arịrịọ ahụ site na iji usoro Exchange.Declarea na-akpọ ya na paramita:
exchange - aha onye mgbanwe anyị chọrọ ịmepụta. Aha ahụ ga-abụrịrị ihe pụrụ iche
type - ụdị mgbanwe
durable - ọ bụrụ na arụnyere truemgbe ahụ exchange ga-adịgide adịgide. A ga-echekwa ya na diski ma nwee ike ịlanarị ihe nkesa / onye na-ere ahịa malitegharịa. Ọ bụrụ na uru falsemgbe ahụ exchange bụ nwa oge, a ga-ehichapụkwa mgbe arụgharịrị ihe nkesa / onye na-ere ahịa
autoDelete - akpaka mwepụ. Exchange a ga-ehichapụ mgbe ehichapụrụ ahịrị niile metụtara ya
arguments - nhọrọ arụmụka. Ọtụtụ mgbe, ha na-akọwapụta site na arụmụka alternative exchange (ọzọ mgbanwe). Ọ bụrụ na ozi enweghị ike ịga n'okporo ụzọ mbụ ahụ, enwere ike iziga ya na onye mgbanwe ọzọ ka ebuga ya n'ụzọ dị iche.
Ọ bụrụ na e kere eke exchangeikekwe, mgbe ahụ, ihe nkesa ga-eziga onye ahịa a synchronous RPC azịza Exchange.DeclareOk. Ọ bụrụ na e kere eke agaghị ekwe omume (a jụrụ arịrịọ Exchange.Declare), mgbe ahụ ọwa ga-emechi ihe nkesa na-eji iwu asynchronous Channel.Close na onye ahịa ga-enweta mwepu OperationInterruptedException, nke ga-enwe koodu njehie na nkọwa ya.
A ghaghị ịmepụta onye mgbanwe tupu ikesa ozi. Ọ bụrụ na ị na-ebipụta ozi na ụfọdụ ndị na-enweghị mgbanwe mgbanwe - RabbitMQ ga-eji nwayọọ wepụ ya.
Ịmepụta mgbanwe site na GUI
Gaa na ngalaba nchịkwa RabbitMQ n'okpuru onye ọrụ guest (aha njirimara: guest na paswọọdụ: guest). Biko mara na onye ọrụ guest nwere ike jikọọ naanị site na localhost. Ugbu a, ka anyị gaa na taabụ Exchanges wee pịa Add a new exchange. Dejupụta akụrụngwa:
A kọwawo ọtụtụ n'ime ihe ndị ahụ n'elu. N'ebe a, anyị mara na ọ bụrụ na anyị setịpụrụ Internal, mgbe ahụ enwere ike iji mgbanwe naanị maka ya E2E. Producer agaghị enwe ike izipu ozi na mgbanwe dị otú ahụ.
nkwubi
Mgbe ị na-emepụta usoro, ọ dị mma ịkọwa topology uzo uzo iji eserese. Ma tupu ịmalite ịmepụta eserese, ọ bara uru ịkọwapụta ụzọ ndị nwere nnukwu okporo ụzọ, n'ihi na ha bụ ndị na-achọ elu throughput (arụmọrụ). Na-esote, ị nwere ike ịhazi okporo ụzọ. Naanị mgbe ahụ malite iwu ụlọ.
Ọ bụrụ na eserese a rụrụ e nwere set ngwucha igodo ụzọ, mgbe ahụ ọ bara uru ile anya n'ebe ọtụtụ fanout exchange, nke bụ 1:1 metụtara igodo ụzọ . Anyị na-echeta nke ahụ fanout exchange kacha ngwa ngwa.
Ọ bụrụ na ọnụ ọgụgụ nke ụzọ na-eche na enweghi ngwụcha, mgbe ahụ, ị kwesịrị ịṅa ntị topic exchange ma ọ bụ, ọ bụrụ na template adịghị mkpa, ị nwere ike họrọ direct exchnge, n'ihi na ọ na-agba ọsọ topic exchange.
Ngwakọta dị iche iche exchange kwesịrị inyere gị aka ịchọta nke ziri ezi nhazi nhazi, nke na-ezute ma ugbu a ma na-eto eto chọrọ usoro.
Ọnụ ọgụgụ nke exchange na kwụ n'ahịrị kwesịrị ịdị ntakịrị ma e jiri ya tụnyere ọnụ ọgụgụ nke ụzọ.