Для разработки любого программного проекта мы следуем некоторой архитектуре, такой как
- Монолитная архитектура
- Микросервисная архитектура
- Архитектура, управляемая событиями
- Архитектура клиент-сервер
- Сервис-Ориентированная Архитектура
Из этих вышеупомянутых архитектур в интервью наиболее часто упоминается архитектура Microservices. Поскольку сейчас большинство компаний, таких как Netflix, Uber, Amazon, используют эту архитектуру. Микросервисы — это своего рода распределенная система.
Если вы ищете старшую роль, вам необходимо иметь представление о микросервисах и различных связанных с ними концепциях.
В этом посте я делюсь наиболее часто задаваемыми вопросами о микросервисах, с которыми мне приходилось сталкиваться, когда я проходил собеседования в PayTm, PineLabs, HaloDoc, InfoEdge, Cisco.
- Что такое микросервисная архитектура и для чего она используется?
- Разница между микросервисной и монолитной архитектурой? Преимущества и недостатки обоих?
- В каком сценарии мы должны использовать микросервисную или монолитную архитектуру?
- Что такое слабая связь?
- Разница между микросервисной и сервис-ориентированной архитектурой?
- Что такое оркестровка workFlow?
- Базовое понимание Docker и K8s.
- Шаблоны проектирования распределенных систем?
- Что такое 12-факторный подход к микросервисам?
- Разница между различными базами данных, такими как mongo и cassandra, mysql и cassandra?
- Что такое CAP-теорема?
- Изучение лучших практик микросервисов.
- Как работают балансировщики нагрузки и серверы и как они обрабатывают параллельные запросы?
- Что такое проблема идемпотентности?
- Что такое окончательная согласованность?
- Что такое распределенная транзакция?
- Что такое двухфазный и трехфазный коммит?
- Чем Saga лучше, чем 2 PC Commit?
- Что такое реестр служб и обнаружение служб?
- Как масштабировать приложение? Что такое масштабный куб?
- Что такое шлюз API? каковы преимущества шлюза API?
- Разница между http и gRPC?
- Как сделать синхронные и асинхронные вызовы? Разница между ними?
- Что такое шаблон прерывателя цепи?
- Что такое распределенная трассировка?
- Что такое доступность, производительность и надежность?
- Что такое сервисная сетка?
- Что такое прокси-шаблон?
- Что такое тестирование хаоса?
- Разбираемся в обмене сообщениями и кэшировании, как мы можем использовать их в микросервисах?
- Узнайте о различных библиотеках, таких как сервер Eureka, Hystrix, Ribbon, Feign, RestTemplate, Spring Cloud.
Ответы на эти вопросы я опубликую в следующих статьях. Пожалуйста, подпишитесь и свяжитесь со мной в LinkedIn.
Спасибо за прочтение !! Удачного интервью!!