Exchange - áá˛áážááşáá°áááŻáˇáááŻááşáá˛áážááşáĄááťááşá áááşááąáˇááşáťáá˝áą áááŻáˇáááşá Exchange ááááşá¸á
ááŹá¸ááźááˇáşááąáááşá áá
áşáᯠáááŻáˇáááŻááş áá
áşááŻáááşáááŻááąáŹ áááşá¸á
áŽááźááşá¸áá˝ááş áá° á
áŹáááŻááťáŹá¸ááᯠáááşá¸á
áŽáááş áááşá¸ááźáąáŹááşá¸ááąá¸áááşá áááşááŽá¸ááŹá¸ááąáŹáááˇáşááşááťáŹá¸ááᯠáĄááźáąááśá (bindings) áááşá¸áážááˇáşáá°áááşá¸ááźáŹá¸á
Exchange áááŻááşááŤáá°á¸ . ááŻááşáááŻááşáááŻááşáááŻááşáážáŻááá
ášá
áá˝áąááźáąáŹááˇáşááŤá exchange Built-in ááąááŹááąáˇá
áşáá˝ááş áááşá¸ááźáąáŹááşá¸áááşááźááşá¸áááŻááşáᏠááŻáášááááąááááşáážááᏠááŻááşááŤááąáŹ ááźááŻá¸áá
áşááťáąáŹááşá¸ (ááąáŹáşááťá°á¸áááŻáˇ áááˇáşááş) . áá˝áąáá˛áážááşáá° áááá áááş áááşáááŻáᎠ1MB áᏠá
áŹá¸ááŻáśá¸áááşááźá
áşáááşá
ááŹááááŹ
- RabbitMQ áĄáááŻááşá¸ áá áááşá¸á áŽááźááşá¸áážááˇáş á ááşá¸áážáąáŹááşááźááşá¸ááᯠááŹá¸áááşááźááşá¸á
- RabbitMQ áĄáááŻááşá¸ 4á áááşááąáˇááťáşááťáŹá¸áážááˇáşááąáŹááşááťáŹá¸ááᯠáááŻááşáá˝ááşááźáąáážááşá¸ááźááşá¸á
- RabbitMQ áĄáááŻááşá¸ 5- ááŻááşááąááźááşá¸áážááˇáş áĄááŻáśá¸ááźáŻááźááşá¸ áááşááąáˇááťáşá á˝ááşá¸ááąáŹááşáááş
- RabbitMQ áĄáááŻááşá¸ 6á áĄáááşá¸ááťáŻááşáážááˇáş ááąáŤáşááźáŹá¸ ááąáŹáşááťá°á¸ááťáŹá¸á ááźáŻáśááŻáśááŻáśá¸áááşááťááş
- RabbitMQ áĄáááŻááşá¸ áá ááťáááşáááşáážáŻáážááˇáş Chanel áĄááźáąáŹááşá¸áĄááąá¸á áááş
- RabbitMQ áĄáááŻááşá¸ áá .NET áá˝ááş RabbitMQ
- RabbitMQ áĄáááŻááşá¸ áá á áąáŹááˇáşááźááˇáşááąáˇááŹááźááşá¸á
áááŻááşáááŻááşááťáááşá¸
Direct exchange - áááŻáĄááşáá˛áˇáĄá፠ááŻáśá¸áááşá ááŽá¸ááźáŹá¸á
áŽáááşá¸ááťáŹá¸áááŻáˇ áááşááąáˇááťáşááąá¸áááŻáˇááŤá. áááşááąáˇááťáşááᯠáááşáááşáážááşáážááşááźááˇáş áá˛áážááşáá°ááś áá˝ážááˇáşáááşááŹá¸áááşá Routing ááąáŹáˇ áážááˇáş áĄááŹá¸áá°áááşá¸ááźáąáŹááşá¸ááźááąáŹáˇááźááˇáş á¤áá˛áážááşáá°áážááˇáş áááşá
ááşááąáááˇáş áááşá¸á
áŽááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ ááąáŹááşáááşá Routing key áááş string áá
áşááŻááźá
áşáááşá. Matching ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşáááşá áááşá¸áá°ááŽááťážáážáŻáĄáá˝ááş ááźááŻá¸ááťáŹá¸ááᯠá
á
áşááąá¸ááźááşá¸á.
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

Đ rabbitmq áĄáá°áĄááá
áşááŻáážáááŤáááşá ááŻáśááąáá˛áážááşáá°á ᤠdirect exchange ááŹáááşááážáá ááŻáśááąáá˛áážááşáá°ááᯠáĄááŻáśá¸ááźáŻááŤáá áááşááąáˇááťáşááᯠáĄáááşáážááˇáş ááŽááťážááąáŹ áááşá¸á
áŽáá
áşááŻáááŻáˇ áááŻáˇááąáŹááşáááşááźá
áşáááşá áááşááąáˇááťáşáááşá¸ááźáąáŹááşá¸ááźááąáŹáˇ.
ááąáŤááşá¸á ááşááťáááşá¸
Topic exchange - áĄááŹá¸áá° direct exchange áááşá¸ááźáąáŹááşá¸ááŽá¸ááᯠáážááŻááşá¸áážááşááźááşá¸ááźááˇáş áá˝áąá¸ááťááşááŹá¸ááąáŹáááşá¸ááźáąáŹááşá¸ááᯠáá˝ááˇáşááąá¸áááşá áááŻáˇááąáŹáş á¤ááá
ášá
áá˝ááş ááąáŹáˇááᯠááąá¸ááŹá¸áááşá ááŻáśá
áśáá˝ááşááźááˇáş. ááá°ááŹááŻáśá
áśáááşááŽá¸ááąáŹáĄááŤáá˝ááş áĄááŻáśá¸ááźáŻááŤá 0 áááŻáˇáááŻááş áááŻáˇáááşáááŻááąáŹ á
ááŹá¸ááŻáśá¸ááťáŹá¸ (á
áŹááŻáśá¸ááťáŹá¸ AZ и az ááśááŤááşááťáŹá¸ 0-9) áĄá
ááşáĄááźááş áááşášááąáááťáŹá¸ááźááˇáş áááŻááşá¸ááźáŹá¸ááŹá¸áááşá * и #.
*-áĄáááĄááťááźááˇáş áĄá áŹá¸áááŻá¸áááŻááşááŤáááşá1á ááŹá¸ááŻáśá¸#- ááźááˇáş áĄá áŹá¸áááŻá¸áááŻááşááŤáááşá0áááŻáˇáááŻááş áááŻáˇáááşáááŻááąáŹ á ááŹá¸ááŻáśá¸ááťáŹá¸
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

ááŹá¸áážááşá¸áážá
áááşáááşá RabbitMQ 2.4.0 routing algorithm áááş topic exchange áááşáĄáááĄááŻááşááŻááşáá˛áˇáááşá 145 áĄá áááŻááźááşáááşá ááťááşá¸áááşáážáŻááᯠáĄááąáŹááşáĄáááşááąáŹáşááźááşá¸ááźááˇáş áááşá¸áááŻáˇáĄáąáŹááşááźááşáá˛áˇáááşá ááá°ááŹááŻáśá
áśááťáŹá¸ááᯠáá
áşáááşáá˝á˛áˇá
ááşá¸ááŻáśáĄááźá
áş ááąáŹáşááźááźááşá¸ááᯠáááŻáááŻáááşá áĽááᏠááá°ááŹááŻáśá
áśááťáŹá¸ a.b.c, a.*.b.c, a.#.c и b.b.c áĄáąáŹááşááŤáá˝á˛áˇá
ááşá¸ááŻáśááźááˇáş áááŻááşá
áŹá¸ááźáŻááŤáááşá

Pattern áááŻááşááŽáážáŻááᯠáĄááźá áşáážá áááşáᏠáĄááąáŤáşáážáĄáąáŹááşááźáąáĄáá áážáŹáá˝áąáááşá
áĄááşášááŤáááşááťáŹá¸:
- áᎠexchanger áááŻáĄááŻáśá¸ááźáŻáážáŻááźá
áşááŹáááŻááşááŤáááşá ááźá
áşáááŻááşááťáąáážáááąáŹ áĄááŹáááşáĄááşááşáá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáĄáá˝ááş áá˝áąá¸ááťááşáážáŻááąáŹááşá¸áá
áşááŻ, ááŹááźá
áşáááŻáˇáá˛áááŻááąáŹáˇ áááşááąáˇááťáşááᯠáĄááŹá¸áá°ááŻááşááąáááŻááşáááş áááşá¸áááááşááťáŹá¸ááᯠáĄááźá˛áááşá¸á
áááşááźááŻááşááźááşáááşáááŻááşáááşá
direct exchangeáááŻáˇáááŻááşfanout exchange - áĄááŻáśá¸ááźáŻááąáŹááŻáśá
áśááťáŹá¸
*áĄááťáŹá¸ááźáŽá¸áááŻááźááşáááşááŻáśá¸áá˛áˇ ááŻáśá áśáá˝áąáááş#. topic exchangeááźáąá¸ááźáąá¸direct exchange
Fanout ááťáááşá¸
Fanout exchange - áááşááąáˇááťáşáĄáŹá¸ááŻáśá¸ááᯠáááşá¸á
áŽááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ áááŻáˇááąá¸ááŤáááşá áááşááąáˇááťáşáá˝ááş áááşá¸ááźáąáŹááşá¸ááźááąáŹáˇááᯠáááşáážááşááŹá¸ááąáŹáşáááşá¸á
áĄááşášááŤáááşááťáŹá¸:
RabbitMQáááşá¸ááźááąáŹáˇááťáŹá¸áážááˇáş ááŻáśá áśááťáŹá¸ááźááˇáş áĄááŻááşáááŻááşááŤá áááşá¸áááş á á˝ááşá¸ááąáŹááşáááşáĄááąáŤáş áĄááźáŻáááąáŹááąáŹááşááąáŹ áááşááąáŹááşáážáŻáážááááşá ááŤá áĄááźááşááŻáśá¸ááŤáexchange;- á áŹá¸ááŻáśá¸áá°áĄáŹá¸ááŻáśá¸áááş áááşááąáˇááťáşáĄáŹá¸ááŻáśá¸ááᯠááŻááşááąáŹááşáááŻááşááááşá
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

ááąáŤááşá¸á áŽá¸ááťáŹá¸áá˛áážááşááźááşá¸á
Headers exchange - áĄáá˝á˛ááťáŹá¸ (ááąáŹáˇá áááşáááŻá¸) ááŻááşááášááááťáŹá¸ áážááŻááşá¸áážááşáážáŻáĄááąáŤáş áĄááźáąááśá áááşáááŻááşáᏠáááşá¸á
áŽááťáŹá¸áááŻáˇ áááşááąáˇááťáşááťáŹá¸ááᯠáá˝ážááşááźáŹá¸áááşá headers binding áážááˇáşáĄááŹá¸áá°áááşááąáˇááşáťáááŻááşáááŻááşáážáŻá headers ááŤááŹáááŻááşá
áŹá¸ááźáŻáááş Dictionary<кНŃŃ, СнаŃонио>.
áĄááááŹááşáá˝ááş áĄáá°á¸ááąáŹáˇáááˇáşááťážááş x-match áĄáááášááŤááşáá˛áˇ anyáááŻáˇááąáŹááş áĄáá˝á˛ááťáŹá¸ (ááąáŹáˇá áááşáááŻá¸) áá
áşá
áááşáá
áşáááŻááşá¸ áááŻááşááŽááŤá áááşááąáˇááťáşááᯠááźááşáá˝áŹá¸ááŤáááşá á¤áĄááźáŻáĄáá°áááş áĄáąáŹáşáááąááŹáážááˇáş áááşáá°áááşá or.
var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");ááŻáśááąááąáŹáˇ x-match áááşáááŻá¸áá
áşááŻááŤáážááááşá all. áááŻáááŻáááşáážáŹ áĄáá˝á˛ááťáŹá¸ (ááąáŹáˇá áááşáááŻá¸) ááŻáśá¸ááááŻááşááŽááąáŹáĄááŤáá˝ááş áááşááąáˇááťáşááᯠáááşá¸ááźáąáŹááşá¸ááźáąáŹááşá¸áá˝áŹá¸ááźááşá¸ááźá
áşáááşá á¤áĄááźáŻáĄáá°áááş áĄáąáŹáşáááąááŹáážááˇáş áááşáá°áááşá and.
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

áĄááşášááŤáááşááťáŹá¸:
- áĄáááŻááźáąáŹááşá¸áá˝ááşááźááşáá˝ááş
- áĄáááŻáááşááąáŹááşá¸áá˝ááşááťááşáážáŻáĄááąáŤáşá áááşáá˝ážááşá¸ááťááşá áĄáá˝á˛ááťáŹá¸áĄáŹá¸ááŻáśá¸ (ááąáŹáˇá áááşáááŻá¸)
headersáááşááąáˇááťáşáááşá¸ááźáąáŹááşá¸áááşáááŻá¸ááťáŹá¸ááᯠááá˝ááşááťááşáᎠááąáŹáˇáĄáááşááźááˇáş á áŽáááŤáááşá áĄááźáŹá¸áá˛áážááşáážáŻáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸áááş áážáąá¸áá˝áąá¸áááşá.
áá áşááááşáááşá¸ Hashing Exchange
á¤áá˛áážááşáá°ááẠи built in áááŻááşááŤá в RabbitMQ.
Consistent-hashing exchange (hash-consistent exchange) - áááşááąáˇááťáşáá
áşááŻá ááźá
áşáááŻááşááťáąáážáááąáŹ áááşááśáá°ááťáŹá¸ááźá
áşááźáááˇáş áááşá¸á
áŽáĄááťáŹá¸áĄááźáŹá¸áážááááˇáşáĄááŤáážááˇáş áááşá¸áááŻáˇááźáŹá¸ááž áááşááťááşáá˝áąááᯠáááşáááşáááş áááŻáĄááşáááˇáşáĄááŤáá˝ááş áĄááŻáśá¸ááźáŻáááşá áááşááąáˇááťáşáááş áĄááąá¸ááťáááşáĄáááŻááş áááşá¸á
áŽááźááşá¸áážááˇáş áááşá
ááşááąáááş (áĄááźáąáĄááąáĄáááŻááş á
áŹááźáąáŹááşá¸áááşáááŻá¸áá
áşáᯠ0 - n).
áááşá¸á áŽááźááşá¸á ááŽááťážááąáŹáĄááąá¸ááťáááş - áááşá¸á áŽáááŻááşá¸ áááşááśááážáááźáąáŹááşá¸ áá˝ážááşááźáááşá áá°ááŽááąáŹáááŹááážááˇáş áááşáááş áááşááąáˇááťáşááťáŹá¸ (áááşááąáˇááťáşáá áşááŻá áŽááᯠáááşá¸á áŽáá áşááŻáááşá¸áá˝ááşáᏠáááˇáşáá˝ááşá¸ááŤáááş)á áá°ááŽááąáŹ áááşááąáˇááťáşááťáŹá¸ ááźááˇáşááąááźááşá¸áĄáá˝ááş áĄáŹáááśááťááş áĄááźááˇáşáĄá ááážáááŤá.
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

Hash áááşá¸ááźáąáŹááşá¸ááźááąáŹáˇ áááŻáˇáááŻááş áááŻááşáááŻááşáážáŻáĄááąáŤáş áĄááźáąááśá áá˝ááşááťááşááŹá¸áááşá headers áááşááąáˇááşáťááťáŹá¸ áá˝ážááˇáşáááşááŹá¸ááąáŹá
áŹááťáŹá¸áĄáŹá¸ááŻáśá¸áá˝ááş ááá°ááŽááąáŹáááşá¸ááźáąáŹááşá¸ááźááąáŹáˇááťáŹá¸áážáááťážááş áááŻáˇáááŻááş headersáááŻáˇááąáŹááş áĄááąá¸ááťáááşáĄáŹá¸ááźááˇáş ááźááˇáşááźá°á¸áážáŻ ááźá
áşááąáŤáşáááşááźá
áşáááşá áááŻáˇáááŻááşááŤáá áááşá¸ááźááąáŹáˇáááŻáĄááŻáśá¸ááźáŻááááˇáşáááşá áááŻáˇáááŻááş headers.
áá°ááŽááąáŹáááşá¸á áŽááźááşá¸áááŻáĄááŻáśá¸ááźáŻááąáŹ á áŹá¸ááŻáśá¸áá°ááťáŹá¸á á˝áŹáážááááˇáş ááźáąáážááşá¸ááťááşáááş á áŹá¸ááŻáśá¸áá°ááťáŹá¸á ááźááşáááşá¸áážáŻ áááŻá¸ááŹáááş áááŻáĄááşáááˇáşáĄá፠áá°ááŽáááˇáşáááşá
áá˝áąáá˛áá°ááťáŹá¸ ááąáŤááşá¸á ááşááźááşá¸ (E2E)
ááážááşáá°áĄáŹá¸ááŻáśá¸á áĄááźáŻáĄáá°áááş áááşáá˝ááşááąá¸ááᯠáĄááŻáśá¸ááźáŻá ááąáŤááşá¸á
ááşáááŻááşáááşá Exchange-to-Exchange (áá˛áážááşáá°áááąáŤááşá¸á
ááşáážáŻáááşáážááşááťááşáá˝ááşáááŤáááşááŤá AMQP. áááşá¸áááş ááąá¸áááşááž ááááŻáááŻááąáŹ áááŻá¸ááťá˛áˇáážáŻáá
áşááŻááźá
áşáááşá RabbitMQ).
áááşááąáˇááťáşá áŽá¸áááşá¸áážáŻá ááááşáá áşáááŻááşá áŹá¸ááźáŻáážáŻ-

áááŻáśá¸áá°á¸ E2E áááşáážááážááˇáş ááźáŽá¸áá˝áŹá¸ááŹááąááąáŹ áááŻáĄááşááťááşááťáŹá¸áážááˇáş áááŻááşááŽáááˇáş áážááşáááşááąáŹ áĄáá˝ááşáĄá
áŹá¸áážá áá˝á˛áˇá
ááşá¸áážáŻááŻáśá
áśááᯠááťá˝ááşáŻááşáááŻáˇ áážáŹáá˝áąáááŻááşáááşá
Exchange áá áşááŻáááşááŽá¸ááŤá
ááážááşáážáŻáĄáŹá¸ synchronous ááźááˇáş áááşááŽá¸ááŹá¸áááşá RPC ááŹááŹááᯠááąáŹááşá¸áááŻááŤá ááąáŹááşá¸áááŻáážáŻáááşá¸áááşá¸ááᯠáĄááŻáśá¸ááźáŻ Exchange.DeclareáááˇáşáááşááťááşááťáŹá¸ááźááˇáş ááąáŤáşáááş-
- áá˛áážááşáá°áĄáááş
- exchanger áĄááťááŻá¸áĄá áŹá¸
- áĄááźáŹá¸áá˝áąá¸ááťááşá ááŹááťáŹá¸
áááşááŽá¸áážáŻáĽááᏠexchange áĄáŹá¸ááźááˇáş :
//...
channel.ExchangeDeclare(
exchange: "my_exchange",
type: "direct",
durable: "false",
autoDelete: "false",
arguments: null
);
//...exchange- ááťá˝ááşáŻááşáááŻáˇáááşááŽá¸áááŻááąáŹ áá˝áąáá˛áážááşáá°ááĄáááşá áĄáááşáááş áá°á¸ááźáŹá¸ááááşátype- exchanger áĄááťááŻá¸áĄá áŹá¸durable- áááşáááşááťážááştrueáááŻáĄááŤexchangeáĄááźá˛áááşá¸ááźá áşááááˇáşáááşá áááşá¸ááᯠáá áşááşááąáŤáşáá˝ááş ááááşá¸áááşá¸ááŹá¸áááşááźá áşááźáŽá¸ ááŹááŹ/áá˝á˛á áŹá¸ ááźááşáááşá áááşááźááşá¸áá˝ááş áĄáááşáážááşáááşáááşáááŻááşáááşááźá áşáááşá áááŻá¸ááťážááşfalseáááŻáĄááŤexchangeááŹááŽááźá áşááźáŽá¸ ááŹááŹ/áá˝á˛á áŹá¸ááᯠááźááşáááşá áááşáááˇáşáĄá፠áááşáážáŹá¸ááŤáááşáautoDelete- áĄáááŻáĄááťáąáŹááşááťááşááźááşá¸áExchangeáááşá ááşáááşá¸á áŽááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠááťááşáááŻááşááąáŹáĄá፠ááťááşáááŻááşááŤáááşáargumentsáá˝áąá¸ááťááşáááŻááşááąáŹ áĄááźáąáŹááşá¸ááźááťááşááťáŹá¸ááźá áşáááşá áĄááťáŹá¸á áŻáááąáŹáˇ áĄááźááşá¸áĄááŻáśáá˝áąáááąááááˇáş áááşáážááşááźááŤáááşáalternative exchange(áĄá áŹá¸áááŻá¸áá˛áážááşáá°) áááşááąáˇááťáşáááş áá°áááşá¸áááşá¸ááźáąáŹááşá¸ááᯠááźááşáááşá¸áááááŤáá áááşá¸ááᯠáĄááźáŹá¸áááşá¸ááźáąáŹááşá¸áá áşááťážáąáŹááş ááźááşáááşá¸áááşáĄáá˝ááş áĄá áŹá¸áááŻá¸áá˛áážááşáážáŻáá áşááŻáááŻáˇ ááąá¸áááŻáˇáááŻááşááŤáááşá

áááşááŽá¸áážáŻáážááááş exchange ááźá
áşáááŻááşáĄáąáŹááşáááŻáˇááąáŹááş server áááş client ááᯠsynchronous ááąá¸áááŻáˇááááˇáşáááşá RPC áĄáá˝áą Exchange.DeclareOk. áááşááŽá¸áážáŻáážááááş áááźá
áşáááŻááşááąáŹ (ááąáŹááşá¸áááŻáážáŻááᯠááźááşá¸áááŻáá˛áˇááŤáááşá Exchange.Declare), áĄáááŻá፠ááťááşáááşááᯠááááşááŤáááşá asynchronous command ááᯠáĄááŻáśá¸ááźáŻá ááŹáᏠChannel.Close áážááˇáş client áááşááźá˝ááşá¸ááťááşáá
áşááŻáááááˇáşáááşá áĄáážáŹá¸ááŻááşáážááˇáş áááşá¸áááąáŹáşááźááťááşááŤáááşáááşááźá
áşáááşá
áááŻáˇá
áşááááşáᎠáá˝áąáá˛áážááşáá°ááᯠáááşááŽá¸áááŤáááşá ááááŻáážáááźáŽá¸ááŹá¸ ááážááşáá°ááś áááşááąáˇááťáşáá
áşáᯠááŻááşááąááŤáá RabbitMQ ááááşááááşááąá¸ áááşáááŻááşááŤá
Exchange GUI áááşááŽá¸ááŤá
á
áŽááśáááˇáşáá˝á˛ááąá¸áĄáá˝á˛áˇáááŻáˇ áá˝áŹá¸ááŤá RabbitMQ áĄááŻáśá¸ááźáŻáá°áĄáąáŹááşáážáŹ guest (áĄááŻáśá¸ááźáŻáá°áĄáááş- guest áážááˇáş á
ááŹá¸áážááş- guest) áĄááŻáśá¸ááźáŻáá°ááᯠáááááźáŻááŤá guest localhost áážáᏠááťáááşáááşáááŻááşáááşá áᲠáááşááşááᯠáá˝áŹá¸ááźááĄáąáŹááş Exchanges ááąáŤáşáá˝ááşááá
áşáážáááşááŤá Add a new exchange. ááŻááşááášááááťáŹá¸áááŻááźááˇáşááŤ

ááŻááşááášáááĄááťáŹá¸á
áŻááᯠáĄáááşáá˝ááşááąáŹáşááźáá˛áˇááźáŽá¸ááźá
áşáááşá á¤ááąááŹáá˝ááş ááťá˝ááşáŻááşáááŻáˇáááşáážááşááŹá¸ááťážááş áááááźáŻááŤá InternaláááŻáˇááąáŹááş áá˛áážááşáážáŻáĄáá˝ááşáᏠáĄááŻáśá¸ááźáŻáááŻááşáááşá E2E. Producer áááŻáááŻáˇááąáŹááážááşáážáŻáááŻáˇ áááşááąáˇááťáşááťáŹá¸ ááąá¸áááŻáˇáááŻááşáááşáááŻááşááŤá
ááąáŹááşááťááş
á áá áşáá áşááŻáááşááąáŹááşááąáŹáĄá፠topology áááŻááąáŹáşááźáááşáĄáááşááźáąáááşá ááááşááᯠáĄááŻáśá¸ááźáŻ. áááŻáˇááąáŹáş ááááşááşáá áşáᯠááááşááąáŹááşááŽáá˝ááş ááŹááşááźáąáŹáĄáá˝áŹá¸áĄááŹááťáŹá¸ááąáŹ áááşá¸ááźáąáŹááşá¸ááťáŹá¸ááᯠááŽá¸ááąáŹááşá¸áááŻá¸ááźáááˇáşááąáŹááźáąáŹááˇáş ááźá áşáááşá áá°áááŻáˇáááŻáĄááşáááşá ááźááˇáşááŹá¸ááąáŹááźááşáááşá¸áážáŻ (á á˝ááşá¸ááąáŹááşáááş)á áááŻáˇááąáŹááş áááşáááş ááŹááşáĄáá˝áŹá¸áĄááŹááᯠáĄááťááŻá¸áĄá áŹá¸áá˝á˛áááŻááşáááşá ááźáŽá¸ááž á áááşáááşááąáŹááşááŤá
áááşááąáŹááşááŹá¸ááąáŹ ááááşáá˝ááş áážáááąááťážááş áááˇáşáááşáááşáážááşááŹá¸áááşá routing ááąáŹáˇááťáŹá¸, áááŻáˇááźá
áşááťážááş, áĄááťáŹá¸áĄááźáŹá¸ááŽáááŻáˇáážáŹáá˝áąáááťááŻá¸áááşáááşá fanout exchangerouting key áážááˇáş áááşá
ááşááąááąáŹ 1:1 ááźá
áşáááş á áĄá˛ááŤááᯠááááááŤá fanout exchange áĄááźááşááŻáśá¸á
áááşá¸ááźáąáŹááşá¸ áĄááąáĄáá˝ááş ááťáŹá¸ááŹááťážááş áĄááŻáśá¸ááážáááźá
áşáááşáááşá, áĄáŹááŻáśá
ááŻááşáááŻáˇáááŻááşáááşááŤáááşá topic exchange áááŻáˇáááŻááş template ááááŻáĄááşááŤáá áááşáá˝áąá¸ááťááşáááŻááşáááşá direct exchnge, ááŹááźá
áşáááŻáˇáá˛áááŻááąáŹáˇ áá°á áááŻááźááşáááşá topic exchange.
áĄááťááŻá¸ááťááŻá¸ááąáŤááşá¸á
ááş exchange áážááşáááşááąáŹáá
áşááŻááᯠáážáŹáá˝áąáááş áá°ááŽáááˇáşáááşá áĄáá˝ááşáááşáááŻááşááąáŹ áá˝á˛áˇá
ááşá¸áážáŻááŻáśá
áśáááşáážááážááˇáş áááŻá¸áááşááąááąáŹ á
áá
áşáááŻáĄááşááťááşááťáŹá¸áážááˇáş áááŻááşááŽáááˇáşá
ááááşá¸ exchange áááşá¸ááźáąáŹááşá¸áĄááąáĄáá˝ááşáážááˇáş áážááŻááşá¸áážááşááŤá áááşá¸á
áŽáážáŻ áĄáááşá¸áááşáᏠáážááááˇáşáááşá
ááąáŹááşááąáŹááşá¸ááŤá¸áá˝ááşá Quues áážááˇáş Bindings ááťáŹá¸áĄááźáąáŹááşá¸ áááŻáááŻááŹá¸áááşááŹááŤáááşá
áááŻá¸ááŹá¸
source: www.habr.com
