minhasapov_ruslan_lab_8

This commit is contained in:
Safgerd 2024-11-18 07:39:36 +04:00
parent 729994bd69
commit 1b7e6aaa75

View File

@ -11,8 +11,6 @@
Чаще всего для взаимодействия между сервисами используют сообщения. Сервисы обмениваются сообщениями, которые могут представлять собой практически что угодно - запросы, уведомления, данные и т.д. Очедери действуют как буфер и "развязывают" сервисы друг от друга, это повышает надежность и позволяет сервисам работать асинхронно, даже если один из них... "упал" (временно недступен). Чаще всего для взаимодействия между сервисами используют сообщения. Сервисы обмениваются сообщениями, которые могут представлять собой практически что угодно - запросы, уведомления, данные и т.д. Очедери действуют как буфер и "развязывают" сервисы друг от друга, это повышает надежность и позволяет сервисам работать асинхронно, даже если один из них... "упал" (временно недступен).
Хотя распределенные системы масштабируемы, отказоустойчивы и позволяют разделить работу между командами разработчиков, но и они имеют свои недостатки. Распределенные системы куда сложнее в разработке и отладке, нежели монолитные приложения. Хотя распределенные системы масштабируемы, отказоустойчивы и позволяют разделить работу между командами разработчиков, но и они имеют свои недостатки. Распределенные системы куда сложнее в разработке и отладке, нежели монолитные приложения. Например, если один сервис обновил информацию, а другой еще не получил обновление, то возникает несогласованность данных. Как пример, вспомним Вконтакте, допустим, мы изменили свою аватарку, но на некоторых страницах до сих пор отображается старая фотография, это и есть проблема консистентности. Также, общение между сервисами по сети занимает время, что приводит к задержкам в работе приложения.
Распределенные системы масштабируемы, отказоустойчивы и позволяют разделять работу между разными командами. Но у них есть и недостатки. Они сложнее в разработке и отладке, чем монолитные приложения. Например, если один сервис обновил информацию, а другой еще не получил обновление, то возникает несогласованность данных. Как пример, вспомним Вконтакте, допустим, мы изменили свою аватарку, но на некоторых страницах до сих пор отображается старая фотография, это и есть проблема консистентности. Также, общение между сервисами по сети занимает время, что приводит к задержкам в работе приложения.
Затрагивая тему параллельных вычислений, то их целесообразно использовать внутри отдельных сервисов, когда требуется выполнить ресурсоемкую задачу, например обработка изображения или машинное обучение. Однако не всегда стоит распараллеливать все и вся. Если задача простая, то накладные расходы на организацию параллелизма могут превысить выгоду от ускорения, что можно было увидеть в последних лабораторных работах. Приводя пример, можно рассмотреть обработку простого текстого запроса или транзакции в банковской системе, тут нет необходимости в распараллеливании, так как это может нарушить целостность данных. Затрагивая тему параллельных вычислений, то их целесообразно использовать внутри отдельных сервисов, когда требуется выполнить ресурсоемкую задачу, например обработка изображения или машинное обучение. Однако не всегда стоит распараллеливать все и вся. Если задача простая, то накладные расходы на организацию параллелизма могут превысить выгоду от ускорения, что можно было увидеть в последних лабораторных работах. Приводя пример, можно рассмотреть обработку простого текстого запроса или транзакции в банковской системе, тут нет необходимости в распараллеливании, так как это может нарушить целостность данных.