melnikov_igor_lab_8_fix #324

Closed
Igor-Melnikov wants to merge 3 commits from melnikov_igor_lab_8 into main
6 changed files with 6 additions and 29 deletions

6
.idea/.gitignore vendored
View File

@ -1,6 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
/DAS_2024_1.iml
/modules.xml
/vcs.xml

View File

@ -1 +0,0 @@
main.py

View File

@ -1,12 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="str.__pos__" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -1,6 +0,0 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (tukaeva_alfiya_lab_4)" project-jdk-type="Python SDK" />
</project>

View File

@ -0,0 +1,6 @@
## Устройство распределенных систем
Современные сложные системы, такие как социальная сеть ВКонтакте, создаются в "распределенном" стиле для повышения гибкости, масштабируемости и надежности. В таком подходе каждое приложение или сервис выполняет ограниченный спектр задач, что позволяет командам разработки сосредоточиться на конкретных функциях и улучшать их без влияния на другие компоненты системы. Это также облегчает масштабирование: при увеличении нагрузки можно добавить дополнительные экземпляры определенного сервиса, не затрагивая всю систему в целом. Таким образом, распределенные системы обеспечивают более эффективное использование ресурсов и позволяют легко адаптироваться к изменяющимся требованиям пользователей.
Системы оркестрации приложений, такие как Kubernetes, были созданы для управления сложными распределенными системами. Они автоматизируют развертывание, масштабирование и управление контейнерами, что значительно упрощает разработку и сопровождение приложений. Тем не менее, внедрение таких систем может добавить уровень сложности, требуя от разработчиков понимания новых инструментов и подходов. Важно находить баланс между упрощением процессов и увеличением их сложности.
Очереди обработки сообщений играют ключевую роль в распределенных системах, обеспечивая асинхронное взаимодействие между компонентами. Сообщения могут представлять собой любые данные, которые передаются между сервисами, включая запросы на выполнение задач, уведомления о событиях или результаты операций. Использование очередей позволяет избежать потери данных и гарантировать обработку сообщений даже в случае временных сбоев или перегрузок системы.
Преимущества распределенных приложений включают масштабируемость, отказоустойчивость и возможность параллельной обработки задач. Однако они также имеют недостатки: сложность архитектуры, необходимость в управлении сетевыми взаимодействиями и потенциальные проблемы с согласованностью данных. Важно учитывать эти аспекты при проектировании системы.
Внедрение параллельных вычислений в сложные распределенные системы может быть целесообразным в случаях, когда требуется обрабатывать большие объемы данных или выполнять ресурсоемкие операции. Например, в системах обработки больших данных или машинного обучения параллельные вычисления позволяют значительно ускорить обработку информации. Однако в ситуациях, когда задачи требуют строгой последовательности выполнения или связаны с частыми обменами данными между компонентами, параллелизм может привести к усложнению архитектуры и снижению производительности. Поэтому необходимо тщательно анализировать требования к системе и выбирать подходящие решения в зависимости от конкретных условий.