Я работаю над проектом, в котором есть один издатель и один подписчик, подключенные через обычное сокетное соединение TCP. Издатель генерирует сообщения с определенной скоростью, отправляет их через сокет, затем подписчик обрабатывает сообщения. Нет очереди сообщений, только чистое соединение через сокет TCP.
Проблема заключается в том, что метод «записи» сокета в издателе, по-видимому, занимает много времени при вызове, и это снижает скорость, с которой издатель может отправлять данные.
Я немного читал о сокетах и могу вспомнить два сценария, которые могут вызвать это:
Сеть не достаточно быстра для обработки скорости отправки сообщений. В этом случае я думаю, что исходящий буфер сокета на издателе должен быть заполнен.
Потребитель медленно обрабатывает сообщения, и, следовательно, я ожидаю, что входящий буфер потребителя будет заполнен. Это (как я понимаю) приведет к блокировке метода записи в сокет.
Я все еще изучаю программирование сокетов и не уверен, имеет ли смысл приведенный выше анализ. Если так, что может быть хорошим способом определить, какой это сценарий? Следует отметить, что потребитель находится на компьютере с Linux, а издатель - на компьютере с Windows. Любая помощь будет оценена!