The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
timers in the socket communications, !*! handler2006, 22-Мрт-12, 13:41  [смотреть все]
Здравствуйте!
Имеем два приложения, взаимодействующие друг с другом посредством сокетов.
Оба приложения могут быть многопоточными и находиться как на одной так и на разных машинах, а так же использовать как прямые функции управления сокетами, так и посредством сторонних библиотек.
Так же оба приложения могут выступать как в роли клиента, так и в роли сервера.
Одно приложение  посылает другому сообщение и принимает от него ответ на это сообщение. В данный момент для взаимодействия приложений используются таймеры: если в течении таймаута не получен ответ - сообщение считается невалидным и весь запрос отбрасывается.
Таким образом, от значения таймаута зависит производительность и работоспособность всей системы в целом.
Как можно еще реализовать сетевое взаимодействие приложений с максимальной доставкой сообщений и минимальным таймаутом?

  • timers in the socket communications, !*! svn, 00:57 , 23-Мрт-12 (1)
    Так или иначе.

    Какой используется протокол запросов (stateless или statefull)?
    Размер запроса и ответа?

    Что такое "максимальной доставкой сообщений" и "минимальным таймаутом"? Доставляй все сообщения максимально, делай таймаут нулевым, разрешаю. Дальше что?

    • timers in the socket communications, !*! handler2006, 11:30 , 23-Мрт-12 (2)
      Протокол используется простой: устанавливается сокет на хост и порт и слушаются все входящие сообщения.
      Максимальная доставка сообщений - максимальное количество сообщений, которое может быть доставлено.
      Минимальный таймаут - минимальное значение времени, необходимое на отправку, обработку и доставку сообщения.
      Предположим, мы установили значение таймера равным одной единице:  если за эту единицу времени ответ не получен, сервис считается недоступным.
      Если это значение слишком мало, мы отбрасываем валидные ответы и наоборот, если значение слишком велико, мы ждем ответов от недоступных сервисов.
      Думаю, модель взаимодействия приложений в сети достаточно распространенная.
      Как же мне добиться производительности ответов хотя бы 100 тыс. запросов в секунду?
      • timers in the socket communications, !*! svn, 23:20 , 24-Мрт-12 (5)
        > Максимальная доставка сообщений - максимальное количество сообщений, которое может быть
        > доставлено.

        Уменьшай заголовки. Это достигается упрощением протокола, например отказом от tcp или ip. То что ты написал про "слушается сокет" означает что ты даже не рассматривал вариант отказа от TCP.

        >  минимальное значение времени, необходимое на отправку, обработку
        > и доставку сообщения.

        Минимальный таймаут - это бредятина. Таймаут это настройка. То что ты сказал называется задержкой передачи сообщения. И зависит она от устройства сети больше чем от протокола. Хотя протокол может её увеличить повторной посылкой потерянных при передаче данных.


        > Как же мне добиться производительности ответов хотя бы 100 тыс. запросов в
        > секунду?

        Проблема реализовать такой сервис, который обработает столько запросов, а не в сети.

        PS: Вы не отвечаете на мой ответ. stateless и размер запроса/ответа?

        • timers in the socket communications, !*! handler2006, 12:11 , 25-Мрт-12 (6)

          > Уменьшай заголовки. Это достигается упрощением протокола, например отказом от tcp или ip.

          Вы шутите?!
          А как же слать пакеты по сети?
          Или Вы думаете, что все на одной машине крутится?
          К сожалению, у меня нет mainframe

          • timers in the socket communications, !*! svn, 18:44 , 31-Мрт-12 (7)
            > Вы шутите?!
            > А как же слать пакеты по сети?

            Кроме tcp есть уйма протоколов. Например столь же популярный, но намного более простой UDP, который идеально подходит для общения вида запрос-ответ.
            Если всё работает в одной локальной сети можно использовать ethernet без обёртки ip.

  • timers in the socket communications, !*! тень_pavel_simple, 11:50 , 23-Мрт-12 (3) +1
    >[оверквотинг удален]
    > Так же оба приложения могут выступать как в роли клиента, так и
    > в роли сервера.
    > Одно приложение  посылает другому сообщение и принимает от него ответ на
    > это сообщение. В данный момент для взаимодействия приложений используются таймеры: если
    > в течении таймаута не получен ответ - сообщение считается невалидным и
    > весь запрос отбрасывается.
    > Таким образом, от значения таймаута зависит производительность и работоспособность всей
    > системы в целом.
    > Как можно еще реализовать сетевое взаимодействие приложений с максимальной доставкой сообщений
    > и минимальным таймаутом?

    не придумывать велосипед
    http://www.zeromq.org/




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру