Философия UNIX предполагает, что мы создали много простых программ, которые хорошо выполняют одну задачу и выполняют их с помощью текстовых потоков. То есть стандартные каналы ввода / вывода являются достаточным средством обмена сообщениями.

Консольные программы могут быть переданы не только вместе, они также могут быть направлены в файл. При этом вы можете поставить сообщения (текст в файлы) в очередь для последующей обработки. Это похоже на модель, аналогичную очередям сообщений, но без изощренности.

Ричард П. Габриэль предполагает, что ключевым преимуществом Unix было то, что он воплощал философию дизайна, которую он назвал «хуже, тем лучше», в которой простота как интерфейса, так и реализации важнее любых других атрибутов системы, включая правильность, последовательность и полнота.

С моей точки зрения, текстовые потоки обеспечивают максимально простой канал связи. Казалось бы, это следует философии «хуже - лучше». Не могли бы мы, таким образом, использовать консольные приложения и файлы, записанные в файловую систему, в качестве очереди сообщений бедняков? И если так, кто-нибудь успешно принял и предпочел этот подход? Мне просто интересно, насколько практично / выполнимо заменить обработку текстового потока очередями сообщений.

1 ответ1

1

Многие почтовые серверы используют файлы на диске для своей очереди. Exim хранит каждое письмо в файле вместе с другим файлом метаданных. Основным преимуществом этого является устойчивость к сбоям: очередь переживает сбой и перезагружается.

Файлы обычно работают медленнее, чем при использовании системы очередей сообщений, такой как 0MQ, и существуют проблемы с эффективностью (как вы узнаете, когда новое сообщение вошло в очередь?), Но для небольших приложений или тех, для которых вы хотите создать постоянную очередь может хорошо работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .