предисловие
В настоящее время микросервисы являются основной тенденцией, а реестр — это самый базовый компонент микросервисов, и это задача, поставленная группой ранее, поэтому я поделюсь результатами.В этой статье исследуются самые популярные компоненты микросервисов в отрасли, и делает резюме.
текст
Текущие параметры исследования компонентов микросервисов следующие: экологическая популярность в сообществе, простота использования, производительность, предельные распределенные характеристики, текущий статус обслуживания компонентов, ключевые функции и т. д.
Введение компонента
- eureka: продукт компании netflix, интеграция версии springcloud1.X, последующие версии объявили, что они больше не будут открытым исходным кодом;
- nacos: продукт Ali, интеграция springcloud-alibaba, недавно открытый исходный код, версия 0.9.0, на основе springboot2.X, центр регистрации услуг и центр конфигурации могут быть интегрированы и настроены.
- consul: инструмент с открытым исходным кодом, запущенный HashiCorp.
Использование компонентов
1. eureka
конфигурация сервера
pom引用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
yml配置
eureka:
instance:
hostname: localhost
instance-id: localhost:${server.port}
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
server:
renewalPercentThreshold: 0.49
renewalThresholdUpdateIntervalMs: 180000 # 3mins
#peerEurekaNodesUpdateIntervalMs: 500
Класс запуска springbootapplication добавлен в @EnableEurekaServer
конфигурация клиента
pom引用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
yml配置
eureka:
client:
service-url:
defaultZone: http://localhost:10001/eureka
Класс запуска springbootapplication добавлен в @EnableEurekaServer, и сервер можно запустить напрямую.
2. nacos
Конфигурация сервера:
Скачайте и установите сервер и запустите его, разархивируйте nacos-server-version.tar.gz
cd nacos/bin
sh startup.sh -m standalone
конфигурация клиента:
pom引用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
yml配置
spring:
application:
name: nacos-demo
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
management:
endpoints:
web:
exposure:
include: '*'
Класс запуска приложения Springboot добавляется в @EnableEurekaClient.
3. consul
конфигурация сервера:
Скачайте с официального адреса и начните
Начните с одного узла консульский агент -реклама 127.0.0.1 -data-dir=/tmp/consul -server -bootstrap
конфигурация клиента
pom引用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
yml配置
spring:
application:
name: consul-provider
cloud:
consul:
host: 127.0.0.1
port: 8500
discovery:
register: true
service-name: consul-provider
Класс запуска приложения Springboot добавляется в @EnableEurekaClient.
использовать контраст
измерение | eureka | nacos | consul |
---|---|---|---|
Экология сообщества | высокая популярность сообщества | Низкая популярность в сообществе и много китайских документов | Общественная теплота высока |
представление | 8-ядерный сервер 16G периодически опрашивает обновления запросов, когда количество сервисов слишком велико (8000-10000), давление слишком велико | Когда один узел с 8 ядрами и 16G подключен к более чем 9000 узлам, аппаратная нагрузка будет слишком высокой. | Нет |
кепка распределенная функция | Доступность точки доступа и отказоустойчивость раздела; доступность: нет основного подчиненного узла, один узел зависает, автоматически переключает другие узлы, но может привести к несогласованности списков услуг разных узлов реестра, допустимо | АП или КП | CP: в качестве распределенного кластера это CP |
состояние обслуживания | 1.X прекратить техническое обслуживание, версия 2.0 с закрытым исходным кодом | Открытый исходный код только недавно, только до 0.9.0.release; | Я следил за обслуживанием весеннего облака, и теперь это 2.1.1. |
Ключевые функции, особенности | 1. Сервис SpringCloud-Starter, откройте коробку, используйте 2. Имейте консоль | 1. Поддерживает обнаружение службы Springcloud и управление конфигурацией 2. Имеет веб-консоль пользовательского интерфейса 3. Прошел широкомасштабные тесты производительности 4. Центр регистрации и центр конфигурации | Консоль есть Недостаток: Нет способа настройки консул кластера, то есть сервис не может зарегистрировать несколько нод консула |
Зарегистрируйтесь, чтобы использовать | Когда служба зарегистрирована, она отправляет свою собственную информацию о службе на сервер eureka; служба обновляет службу на сервере eureka каждые 30 секунд; служба извлекает список служб в локальный кеш каждые 30 секунд. | Также необходимо использовать услугу, чтобы сохранить отчетность о состоянии регистрационного центра; открытие услуг. Во-первых, постоянно запрашивайте имеющийся экземпляр обслуживания с сервера. Во-вторых, обновите локальный список сервисов, когда держатель услуг уведомлен от очереди обслуживания переменных услуг. | Кейс поддерживает обе службы проактивной проверки консула, а также поддерживает инициативу по отправке консулу пульса отчета о состоянии их здоровья. |
разное | Поддерживается как интеграция с k8s, так и интеграция с dubbo. |
резюме
Eureka, nacos и consul могут поддерживать самые основные требования регистрации микросервисов и веб-консоли пользовательского интерфейса, но eureka в настоящее время закрыта для открытого исходного кода, а consul пока не поддерживает клиентскую настройку кластеров реестра. Выбирайте по требованию.