Nacos — это платформа динамического обнаружения сервисов, управления конфигурациями и управления ими, основанная на облачной архитектуре. Он поддерживает несколько языков программирования и несколько методов развертывания и глубоко интегрирован с основными платформами микросервисов, такими как Spring Cloud.
Управление конфигурацией: информация о конфигурации приложения может храниться в центре конфигурации Nacos, а динамическое управление конфигурацией и выпуск оттенков серого могут быть реализованы через Nacos, тем самым реализуя динамическую настройку и развертывание приложения.
Обнаружение и регистрация служб. Вы можете зарегистрировать службы в центре регистрации Nacos и реализовать автоматическое обнаружение и балансировку нагрузки служб через Nacos, тем самым обеспечивая высокую доступность и эластичное масштабирование служб.
Управление службами: Nacos можно использовать для реализации проверки работоспособности службы, аварийного переключения, ограничения тока службы, снижения производительности автоматического выключателя и других возможностей управления, тем самым повышая надежность и стабильность службы.
Прослушивание и отправка событий: Nacos можно использовать для мониторинга и отправки таких событий, как изменения конфигурации, регистрация и отмена служб, тем самым реализуя автоматическое развертывание и управление приложениями.
Пополнить:Который Служитьбудет использоватьсяnacos
Nacos поддерживает режимы AP и CP.,Вы можете выбирать в соответствии с конкретными сценариями использования. По умолчанию используется режим AP.,Вы можете переключить AP/CP, изменив файл конфигурации nacos.
В режиме AP Nacos гарантирует высокую доступность и масштабируемость, но не гарантирует строгую согласованность. В режиме CP Nacos гарантирует строгую согласованность, но может снизить доступность и масштабируемость.
В реальных приложениях выбор режима следует принимать на основе характеристик и потребностей бизнеса.
Если в распределенной системе согласованность определенных данных предъявляет очень высокие требования к бизнесу, например, финансы, платежи и другие сценарии, то вы можете выбрать режим CP.существоватьCPрежим,При возникновении сетевого раздела или сбоя,Чтобы обеспечить согласованность данных,Nacos автоматически изолирует и восстановит Служить. но,Это приведет к тому, что некоторые части Служить будут недоступны.,Это повлияет на доступность.
Если для некоторых служб, таких как веб-сайты, онлайн-игры и т. д., доступность важнее стабильности, вы можете использовать режим AP.существоватьAPрежим,Nacos будет уделять приоритетное внимание доступности Служить,Если произошел сетевой раздел или сбой,Nacos обеспечит определенную доступность,Обеспечьте максимальную согласованность данных. Хотя это может привести к несогласованности данных,Но наличие Служить гарантировано.,тем самым уменьшая воздействие на бизнес.
Nacos поддерживает режимы AP и CP в одном кластере. Причина такой конструкции заключается в том, что в настоящее время у Nacos есть два основных приложения в отрасли, а именно центр регистрации и центр настройки.
Центру регистрации необходимо предоставить возможности регистрации и обнаружения услуг. Если используется строгий алгоритм согласованности, это окажет определенное влияние на доступность. Если доступность центра регистрации не будет обеспечена, это повлияет на взаимный вызов всех служб. И если согласованность не может достичь строгой согласованности, самое большее возможно, что определенная служба больше не доступна, но она все равно будет вызвана. Теоретически произойдет сбой, и можно попробовать еще раз.
Для центра конфигурации его основная обязанность — обеспечение единообразия конфигурации. Даже потеря доступности (позднее нажатие) допустима, но разные машины получают разные конфигурации.
Поэтому Nacos поддерживает оба режима одновременно. В плане CP он использует JRaft (1.0 — это Raft), а в плане AP — Distro.
То есть,Nacos, чтобы поддерживать как центр регистрации, так и центр конфигурации, реализует режим CP через протокол JRaft и режим AP через протокол Distro, который может переключаться между двумя режимами.
На самом деле существует только два способа взаимодействия данных между клиентом и центром конфигурации: push или pull.
режим нажатияСразуклиенти Служить Создание терминалаTCPдлинная ссылка,Когда меняются данные по окончанию Служить,Немедленно передайте данные клиенту через это уже установленное давно соединение.
Преимущество длинных ссылок заключается в производительности в режиме реального времени. Как только данные изменяются, клиент может сразу это почувствовать. Но недостатком является то, что серверу необходимо поддерживать большое количество TCP-соединений, что отнимает много памяти и ресурсов ЦП, а также подвержено дрожанию сети и другим факторам.
вытащить шаблонСразу是клиентопрос,Проверьте, изменились ли данные, путем непрерывного опроса,Если есть изменения, верните данные обратно.
Преимущество опроса в том, что его относительно просто реализовать, но недостатки также очевидны. Опрос не может гарантировать передачу данных в реальном времени, а метод опроса также оказывает нагрузку на сервер.
Так какой же режим использует Nacos?
В версии Nacos1.x используется длинный опрос. Посмотрите, это не длинное соединение или опрос, а.长опрос(Long Polling)。 В Nacos2.0 используется длинное соединение gRPC.
По сути, это комбинация длинных соединений и опроса. То есть клиент инициирует опрос, но не возвращает его сразу, а удерживает его в течение этого периода времени, он поддерживает валидное соединение, возвращается после. тайм-аут или изменения, а затем снова инициирует опрос.
Длинный опрос:
Общий процесс заключается в том, что клиент инициирует длинный запрос на опрос сервера Nacos. Nacos не возвращает результат немедленно, а приостанавливает запрос до тех пор, пока не произойдет изменение конфигурации или не истечет время ожидания ответа. При изменении конфигурации сервер Nacos ответит клиенту измененной информацией о конфигурации, и клиент снова инициирует новый длинный запрос опроса. Таким образом, клиент может воспринимать изменения конфигурации в режиме реального времени.
Этот метод позволяет избежать давления, вызванного непрерывным опросом сервера клиентом, и избежать необходимости поддерживать соединение в течение длительного времени. Он также может обеспечить конфигурацию в режиме реального времени. Однако недостатком длительного опроса является то, что он требует частых HTTP-запросов, что увеличивает нагрузку на сеть, а также может зависеть от таких факторов, как задержка в сети, в результате чего конфигурация не работает в таком режиме реального времени, как длинные соединения.
Длинный опрос и долгое соединение:
Длинный опрос — это механизм реализации асинхронной передачи сообщений.,Обычно используется, когда клиент запрашивает ресурс с сервера Служить.,Если на стороне сервера Служить немедленно не доступны ответные данные,Запрос клиента будет приостановлен.,Пока на сервере Служить не будут доступны данные ответа.,Затем верните данные клиенту. поэтому,Процесс длительного опроса заключается в том, что клиент активно инициирует запрос, а сервер пассивно отвечает на него.
Длинное соединение означает установление постоянного соединения между клиентом и сервером.,Благодаря этому соединению вы можете поддерживать статус связи в течение определенного периода времени.,Избегайте дополнительных накладных расходов, вызванных частым установлением и отключением клиента. в долгом разговоре,Между клиентом и устройствами Служить будет поддерживаться определенный механизм биения.,Обеспечить эффективность взаимодействия. поэтому,Процесс длительного соединения заключается в том, что сервер активно поддерживает соединение, а клиент пассивно принимает сообщения от сервера.
С точки зрения восприятия изменений данных в режиме реального времени длинные соединения более точны и быстрее, чем длинный опрос. Длинный опрос также может задерживаться.
На уровне протокола длинные соединения реализуются на основе TCP, а длинный опрос — на основе HTTP.
[ps: Некоторые знания взяты из онлайн-материалов]