Qos0
Отправитель отправляет сообщение только один раз, без повторных попыток, и брокер не возвращает подтверждение. В случае Qos0 брокер может не получить сообщение, как показано на следующем рисунке:
Qos1
Отправитель отправляет сообщение как минимум один раз, чтобы убедиться, что сообщение дойдёт до брокера, и брокеру необходимо вернуть подтверждающее сообщение PUBACK. В случае Qos1 брокер может принимать дублирующиеся сообщения, как показано на следующем рисунке:
Qos2
Qos2 использует двухступенчатое подтверждение, чтобы убедиться, что сообщения не будут потеряны и не дублированы. В случае Qos2 брокер обязательно получит сообщение только один раз, как показано на следующем рисунке:
Qos1 VS Qos2
Qos2 будет иметь большие накладные расходы по сравнению с Qos1, потому что у брокера есть два дополнительных действия:
- Дедупликация. Чтобы гарантировать, что сообщения не дублированы, брокер должен выполнить дедупликацию;
- Убедитесь, что ответное сообщение PUBREC достигло клиента. Брокер должен дождаться ответа клиента на сообщение PUBREC в PUBREL, и только после получения подтверждения от клиента брокер может передать сообщение подписчику.
|