Каковы недостатки и узкое место в этой схеме RabbitMQ? - PullRequest
0 голосов
/ 23 июня 2019

Пожалуйста, перейдите на [this] [1] ресурс и вставьте схему JSON, чтобы отобразить ее:

https://jmcle.github.io/rabbitmq-visualizer/#

JSON scheme is:

{
  "exchanges": [
    {
      "name": "topic.exch",
      "type": "2",
      "x": 299,
      "y": 246,
      "resource_type": "exchange",
      "id": 1
    },
    {
      "name": "exchange57",
      "resource_type": "exchange",
      "id": 57,
      "type": "1",
      "x": 382,
      "y": 67
    }
  ],
  "queues": [
    {
      "name": "queue51",
      "resource_type": "queue",
      "id": 51,
      "type": 0,
      "x": 704,
      "y": 203,
      "messages": [],
      "totalConsumers": 1,
      "lastConsumer": 0
    },
    {
      "name": "queue52",
      "resource_type": "queue",
      "id": 52,
      "type": 0,
      "x": 688,
      "y": 60,
      "messages": [],
      "totalConsumers": 1,
      "lastConsumer": 0
    },
    {
      "name": "queue70",
      "resource_type": "queue",
      "id": 70,
      "type": 0,
      "x": 477,
      "y": 202,
      "messages": [
        "75",
        "76",
        "77"
      ]
    }
  ],
  "bindings": [
    {
      "source": 8,
      "vhost": "default",
      "source_type": "producer",
      "destination": 1,
      "destination_type": "exchange",
      "id": 16,
      "routing_key": "di.usr.one",
      "arguments": []
    },
    {
      "source": 9,
      "vhost": "default",
      "source_type": "producer",
      "destination": 1,
      "destination_type": "exchange",
      "id": 17,
      "routing_key": "di.usr.two",
      "arguments": []
    },
    {
      "source": 52,
      "vhost": "demo",
      "destination": 10,
      "destination_type": "consumer",
      "routing_key": "key",
      "arguments": [],
      "id": 55,
      "source_type": "queue"
    },
    {
      "source": 51,
      "vhost": "demo",
      "destination": 32,
      "destination_type": "consumer",
      "routing_key": "key",
      "arguments": [],
      "id": 56,
      "source_type": "queue"
    },
    {
      "source": 57,
      "vhost": "demo",
      "destination": 52,
      "destination_type": "queue",
      "routing_key": "key",
      "arguments": [],
      "id": 59,
      "source_type": "exchange"
    },
    {
      "source": 57,
      "vhost": "demo",
      "destination": 51,
      "destination_type": "queue",
      "routing_key": "key",
      "arguments": [],
      "id": 60,
      "source_type": "exchange"
    },
    {
      "source": 57,
      "vhost": "demo",
      "destination": 70,
      "destination_type": "queue",
      "routing_key": "key",
      "arguments": [],
      "id": 71,
      "source_type": "exchange"
    },
    {
      "source": 1,
      "vhost": "demo",
      "destination": 57,
      "destination_type": "exchange",
      "routing_key": "russia.moscow",
      "arguments": [],
      "id": 72,
      "source_type": "exchange"
    }
  ],
  "producers": [
    {
      "name": "russia.moscow",
      "x": 157,
      "y": 152,
      "interval": 5,
      "publish": {
        "to": 1,
        "payload": "one",
        "routing_key": "di.usr.one"
      },
      "resource_type": "producer",
      "id": 8
    },
    {
      "name": "ukraine.kiev",
      "x": 106,
      "y": 306,
      "interval": 5,
      "publish": {
        "to": 1,
        "payload": "two",
        "routing_key": "di.usr.two"
      },
      "resource_type": "producer",
      "id": 9
    }
  ],
  "consumers": [
    {
      "name": "app.one.a",
      "x": 850,
      "y": 64,
      "consume": 2,
      "resource_type": "consumer",
      "id": 10
    },
    {
      "name": "app.one.b",
      "resource_type": "consumer",
      "id": 32,
      "type": 0,
      "x": 856,
      "y": 181
    }
  ]
}

Как видите, у меня есть производители, которые отправляют сообщение с определенным ключом на тематический обмен , а затем обмениваются сообщениями перенаправления на fanout exchange для отправки сообщения во все очереди.

  1. В чем недостатки и узкое место в этом?
  2. Может ли сообщение потеряться?
  3. Как это масштабируемо?

1 Ответ

0 голосов
/ 23 июня 2019

Очевидно, что все сообщения не , соответствующие теме russia.moscow, не будут перенаправлены в какую-либо очередь. Такие сообщения будут отброшены. Это разочарование? Только вы можете сказать, основываясь на том, что эта установка должна делать.

Это масштабируется? Почему бы и нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...