Я работаю над пабом /суб -архитектурой со следующей настройкой: < /p>
приемник:
платформа: x86 Ubuntu 24.04 < /p>
Sender:
ARMV7 встроенное устройство с пользовательской OS на основе Ubunt .18
Конфигурация сборки: нет дополнительных флагов, за исключением того, что--with-pgm. < /P>
Детали архитектуры: < /strong> < /p>
Издатели: 55 отдельных устройств отправителя, на каждом 5 -х пабе клиент работает в отдельных процессах
абонент: отдельный подвод на отдельном устройстве x86
Каждый экземпляр издателя отправляет 40 коротких сообщений между сообщениями между сообщениями. < / p>
Проблема: < /strong> < /p>
Некоторые сообщения не попадают в подводный хост. Проблема либо влияет на первое сообщение до 40 -го числа для каждого клиента, либо в другую сторону, последние несколько сообщений, похоже, пропали без вести. , хотя Wireshark подтверждает, что они прибывают? Существуют ли конкретные конфигурации или дополнительные шаги отладки, которые я должен рассмотреть для решения этой проблемы? Диагностика:
Used Wireshark on the SUB side:
All messages appear to arrive successfully.
No NAK messages are sent for the missing messages.
шаги, которые я попробовал (без успеха):
On the sender side, set ZMQ_RECOVERY_IVL to 10 seconds.
On the receiver side, increased ZMQ_RATE to 10000 kbits/s.
On the receiver side, increased ZMQ_RCVBUF to 1000 kbits.
< /code>
журналы Wireshark < /strong> < /p>
Специальная проблема:
Большинство клиентов паба успешно завершили транзакцию. Два клиента не смогли этого сделать, первым был 192.168.50.49 на ID NR 3. Он потерял 34 из 40 сообщений. Номер 1-6 прибыл, оставшиеся сообщения не прибыли в петлю приемника. Второй сделал то же самое, но в этом случае прибыли последние 34 сообщения. Это был IP 192.168.50.67 ID NR 5. Что действительно интересно, так это то, что, хотя эти 2 клиента расположены на Sepaarte Hardwares и используют отдельные IP -адреса, их специфический PGM исходный порт < /em> то же самое. Я заметил, что это, кажется, происходит несколько раз. Если клиент не выполняет свою транзакцию, он, скорее всего, поделится исходным портом с другим клиентом. Хотя я не понимаю, почему это может быть проблемой для PGM.
клиент -код
//header
class Client : public RunIf
{
public:
Client(const std::string& msg, const char* pgmIp, const char* ip);
~Client();
void run() final;
private:
std::string msg;
std::unique_ptr context;
std::unique_ptr publisher;
bool initError = false;
const char* ip;
};
// cpp file
Client::Client(const std::string& msg, const char* pgmIp, const char* ip)
: RunIf(pgmIp)
, msg(msg)
, context(nullptr, zmq_ctx_term)
, publisher(nullptr, zmq_close)
, ip(ip)
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/793 ... -zmq-4-3-6
Отсутствуют сообщения с PGM в пабе/суб -архитектуре с использованием ZMQ 4.3.6 ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Отсутствуют сообщения с PGM в пабе/суб -архитектуре с использованием ZMQ 4.3.6
Anonymous » » в форуме C++ - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Отсутствующие сообщения с PGM в архитектуре PUB/SUB с использованием ZMQ 4.3.6
Anonymous » » в форуме C++ - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Отсутствующие сообщения с PGM в архитектуре PUB/SUB с использованием ZMQ 4.3.6
Anonymous » » в форуме C++ - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-