Я разбиваю большое приложение на несколько процессов, и каждый процесс должен связываться друг с другом.Связь между процессами: tcp vs unix sockets, ipc vs nats
пока что он будет на том же сервере, но позже несколько серверов в одной локальной сети будут иметь несколько процессов, которые должны будут взаимодействовать друг с другом. (означает сервис на одном сервере, с сервисом на другом сервере на том же vpc)
так что мои необработанные опции: tcp
или unix sockets
. Я знаю, что сокеты Unix могут быть полезны, только если вы на одном сервере. но мы думаем о написании нашей собственной реализации, что на тех же серверах процессы будут взаимодействовать в UNIX-сокетах и между серверами, которые будут обмениваться данными с помощью tcp.
Стоит ли это? конечно, сокеты tcp медленнее, чем сокеты UNIX. Потому что он не проходит через сеть и не обертывается данными, связанными с tcp. вопрос в том, сколько? Я не смог найти онлайн-доказательство бенчмаркинга между сокетами tcp и unix. если tcp добавляет 3% -5% накладных расходов, это круто, но может быть, это больше? Я хотел бы учиться на опыте больших проектов ... других людей на протяжении многих лет, но не нашел ничего подходящего.
... Следующая
наш проект является NodejS
проект.
некоторые люди могут сказать, что я могу использовать брокера для сообщений, так что я попытался с помощью nats.io
по сравнению с узлом-IPC (https://www.npmjs.com/package/node-ipc), и я обнаружил, что узел-IPC в 4 раза быстрее, но Nats имеет прохладное публикация-подписка особенность ... но производительность важна.
поэтому у меня есть тонны вариантов, нет конкретного решения.
вся информация относительно выпуска была бы принята с благодарностью.