Я думаю, что сами термины могут неправильно использоваться и семантически пересекаться, но из моего опыта распределенная система - это система, в которой все машины общаются друг с другом; кластер, где машины могут быть независимыми (но не всегда).
Взять, к примеру, MMORPG. Самые сложные и высокопроизводительные архитектуры распределены таким образом, что парень, стоящий рядом с вами и с которым вы разговариваете, фактически подключен к другому физическому серверу. Он работает, когда каждый «сервер симуляции» общается с различными сервисами (такими как сервис «чат», сервис «товар» и т. Д.) Через служебную шину. Это то, что считается распределенной архитектурой - машины работают вместе для достижения одной и той же цели
И наоборот, кластерные серверы могут выполнять свой собственный, отдельный набор работы, полностью независимый от других машин в кластере. Посмотрите на проект SETI, например ... или даже на простой кластер с балансировкой нагрузки ASP.NET ... В обоих случаях эти кластеры выполняют свой собственный независимый набор работы и не общаются друг с другом - они просто выполняют разные задания (SETI) или страницы (ASP.NET) своим клиентам ..