RabbitMQ не зависит от типа / содержания сообщений, поэтому вы можете легко публиковать данные самых разных типов в одной очереди.Это ваше приложение должно обрабатывать анализ.Для этого я представлю два решения:
Заголовки сообщений
Вы можете использовать заголовки сообщений, чтобы добавить дополнительную информацию о типе сообщения.
Dictionary<string, object> headers = new Dictionary<string, object>();
headers("type", "type1");
IBasicProperties basicProperties = model.CreateBasicProperties();
basicProperties.Headers = headers;
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
model.BasicPublish(_headersExchange, "", basicProperties, messageBytes);
Так как он использует заголовки сообщений, вы позже можете всегда направлять их в разные очереди, используя обмен заголовками, так что это одно преимущество по сравнению со следующим подходом.
Чтобы использовать заголовок после получения сообщения,Вы можете использовать что-то вроде этого:
deliveryArguments.BasicProperties.Headers[headerKey]
Кодирование типа сообщения в теле сообщения
Вы также можете определить свой собственный формат сообщения или добавить дополнительное поле, описывающеетип данных.Но эта реализация сильно зависит от вашего текущего формата сообщения, поэтому я не думаю, что было бы целесообразно привести пример.