Методы изоляции для реактивных микросервисов

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

В этой статье мы рассмотрим, как можно добиться свойства изоляции в системе реактивных микросервисов. Существует не несколько, а множество техник, используемых разработчиками для изоляции своих сервисов. В этой статье мы рассмотрим некоторые из наиболее распространенных и общепринятых техник изоляции для реактивных микросервисов.

Техники изоляции

В этой статье мы рассмотрим различные техники изоляции для реактивных микросервисов. Эти техники изоляции нужны нам для того, чтобы сделать наши микросервисы более отзывчивыми, устойчивыми, надежными и эластичными.

1. Переборка

В этой технике мы пытаемся создать зоны отказа в нашем приложении. Таким образом, когда происходит сбой, мы можем изолировать его в этой зоне, и он не распространится на другие сервисы. Если у нас есть микросервис, который может действовать как зона отказа, то это означает, что микросервис выйдет из строя, но другие сервисы смогут продолжать работать. Идея здесь заключается в том, что общая система может оставаться работоспособной даже перед лицом достаточно значительных отказов, хотя она может работать в ухудшенном состоянии.

Этот метод вдохновлен разделенными частями корпуса корабля. Переборка — это перегородка, возведенная между различными грузовыми отсеками корабля. В случае разрушения какой-либо из секций корабля переборки препятствуют попаданию воды в другие секции. Это позволяет судну продолжать работать после того, что в противном случае могло бы привести к катастрофической поломке.

2. Автоматический выключатель

Автоматический выключатель — это способ избежать перегрузки в работе. Они обеспечивают карантин для отказавшей службы, чтобы она могла быстро выйти из строя и быстро восстановиться. Поэтому у нас есть три состояния для работы автоматических выключателей:-

Замкнутое состояние: При нормальной работе наш автоматический выключатель работает в закрытом состоянии. Это зеленый круг на диаграмме. В закрытом состоянии любой запрос, который посылается, просто проходит через внешнюю цепь, и все работает как обычно.

Открытое состояние: В открытом состоянии все вызовы сразу же терпят неудачу, не связываясь с внешней службой. Это означает, что у внешней службы теперь есть шанс восстановиться. Мы не собираемся продолжать давать на нее все большую и большую нагрузку. Красный круг на приведенной выше диаграмме представляет это состояние.

Полуоткрытое состояние: В период времени, когда автоматический выключатель пытается сбросить себя. В этот момент он переходит в полуоткрытое состояние.

3. Архитектура, управляемая сообщениями

В архитектуре, управляемой сообщениями, микросервисы используют асинхронные и неблокирующие сообщения. Таким образом, они не зависят от ответа друг друга. Асинхронный обмен сообщениями позволяет нам освободить такие вещи, как ресурсы памяти. Это позволяет нам освободить ресурсы процессора. Мы не занимаем потоки. Мы можем использовать все эти ресурсы для других задач.

В результате мы становимся более изолированными как по времени, так и по сбоям. Наши сервисы с меньшей вероятностью выйдут из строя. Они становятся менее хрупкими и не зависят от того, что произойдет немедленно. Это приводит к тому, что системы становятся более надежными. Так, если запрос к микросервису не сработает, то сбои не будут распространяться.

4. Автономный микросервис

Микросервисы могут гарантировать только свое собственное поведение. Они общаются через свой API. Они не могут гарантировать, что будут делать другие микросервисы. Автономность обеспечивает более высокую масштабируемость и доступность. Кроме того, полностью автономные микросервисы можно масштабировать неограниченно. У них нет зависимостей, поэтому ничто не мешает вам масштабироваться бесконечно. Полностью автономная система — это довольно редкая вещь, возможно, несуществующая, но чем ближе мы сможем приблизиться к полной автономности, тем в лучшую ситуацию мы себя поставим. Полностью автономный сервис может продолжать работать, даже если он является единственной частью системы, которая все еще работает.

Мы можем достичь автономности, используя конечную согласованность и взаимодействуя только через асинхронный обмен сообщениями. Кроме того, создание автономных сервисов помогает избежать любых прямых синхронных зависимостей от внешних сервисов. В конце концов, все дело в том, чтобы найти способы изолировать ваши микросервисы. Чем больше изоляции вы сможете обеспечить, тем более автономными будут ваши микросервисы.

5. Служба шлюзов API

Одним из недостатков реактивных микросервисов является то, что они могут создавать сложности, особенно в вашем клиентском приложении. Такое увеличение сложности является проблематичным. Если мы хотим снять с эксплуатации микросервис, переместить его или добавить дополнительный микросервис, мы не сможем этого сделать, пока не убедимся, что все клиенты находятся в актуальном состоянии.

Для управления этими сложностями мы используем службу API Gateway Service. Эта служба API Gateway Service помещена между нашими отдельными микросервисами и нашим клиентом. Теперь наш клиент делает запрос к службе шлюза, а служба шлюза знает обо всех отдельных службах, с которыми ей нужно связаться, чтобы выполнить этот запрос. Поэтому он посылает запросы отдельным микросервисам и объединяет ответы.

Затем, если в одной из отдельных микрослужб происходит сбой, служба шлюза отвечает за выяснение того, как справиться с этим сбоем. Таким образом, мы создаем дополнительный уровень изоляции между нашим клиентом и отдельными реактивными микросервисами.

Заключение

Индустрия постепенно переходит к реактивным системам от традиционных монолитов. Хотя это дает ряд преимуществ, это также создает некоторые проблемы для разработчиков. Одной из таких проблем является изоляция микросервисов, чтобы сделать их более устойчивыми к отказам и масштабируемыми, а также обеспечить другие преимущества. Различные техники изоляции обеспечивают изоляцию по одному или нескольким принципам изоляции. Важно знать, какая техника обеспечивает изоляцию по какому принципу, чтобы выбрать правильную технику для ваших нужд. Мы надеемся, что смогли дать вам достаточно информации о техниках, рассмотренных в этой статье, чтобы помочь вам достичь поставленной цели.

Оцените статью
cdelat.ru
Добавить комментарий