Сравнение реестра микросервисов

Микросервисы

предисловие

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

текст

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

Введение компонента

  1. eureka: продукт компании netflix, интеграция версии springcloud1.X, последующие версии объявили, что они больше не будут открытым исходным кодом;
  2. nacos: продукт Ali, интеграция springcloud-alibaba, недавно открытый исходный код, версия 0.9.0, на основе springboot2.X, центр регистрации услуг и центр конфигурации могут быть интегрированы и настроены.
  3. 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.zip 或者 tar -xvf 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 пока не поддерживает клиентскую настройку кластеров реестра. Выбирайте по требованию.