1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/justtoplay-xxl-job-plus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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

Особая благодарность

Сюй Сюэли / xxl-job

Введение

После перехода проекта от распределённой системы к микросервисной системе контроль за состоянием сервисов стал особенно важным. В Spring Cloud можно использовать как Nacos, так и Eureka для мониторинга и управления состоянием онлайн и офлайн сервисов. Иногда может потребоваться временно добавить новый сервисный узел, и в этом случае неудобно изменять конфигурацию вызовов IP для каждого существующего сервиса. Xxl-Job — это компонент распределённого планирования задач, который значительно упрощает управление задачами различных сервисных модулей. Однако перед использованием необходимо настроить список адресов xxl-job-admin. Если мы временно отключим определённый сервис в центре регистрации, этот сервис всё равно будет отображаться как активный в списке исполнителей xxl-job-admin, что не способствует единообразию управления. Чтобы решить эту проблему конфигурации и проблему онлайн-офлайн сервисов, появился xxl-job-plus, который лучше подходит для обслуживания SpringCloud.

Описание

Xxl-job-plus — это расширение xxl-job, которое позволяет интегрироваться с центром регистрации без изменения исходного кода xxl-job. Оно поддерживает мониторинг состояния онлайн и офлайн служб xxl-job-admin и исполнителей, а также обеспечивает автоматическое включение, обновление и остановку исполнителей в соответствии с изменениями в xxl-job-admin. Больше не нужно настраивать отдельные IP и порты для исполнителей (IP и порт берутся из центра регистрации), а также не требуется настраивать адрес администратора (динамически извлекается из центра регистрации). Также нет необходимости настраивать XxlJobExecutor, пакет автоматически регистрирует его. На данный момент поддерживается Nacos Discovery, поддержка Eureka появится в следующей версии.

Архитектура программного обеспечения

Архитектура.png

Xxl-job-plus использует технологию расширения интерфейса и динамического отражения для модификации и внедрения конфигураций в существующую систему xxl-job-core. Сильная зависимость от версии xxl-job-core означает, что рекомендуется использовать соответствующую версию.

Требования к среде

jdk 1.8+

nacos-discovery-spring-boot-starter:0.2.8+ | spring-cloud-starter-alibaba-nacos-discovery:2.2.5.RELEASE +

xxl-job-core:2.3.1+

Загрузка

<dependency>
    <groupId>com.justtoplay</groupId>
    <artifactId>xxl-job-plus</artifactId>
    <version>${соответствующая версия xxl-job-core}</version>
</dependency>

Быстрый старт

Сервер xxl-job-admin

Способ 1: использование существующего проекта

Эта часть, за исключением интеграции с Nacos, следует инструкциям xxl-job.

  1. Загрузите исходный код xxl-job: http://gitee.com/xuxueli0323/xxl-job

  2. Создайте базу данных: /xxl-job/doc/db/tables_xxl_job.sql

  3. Добавьте зависимость xxl-job-admin в проект pom, убедитесь, что версия nacos-client соответствует версии сервера nacos.

    <dependency>
       <groupId>com.alibaba.boot</groupId>
       <artifactId>nacos-discovery-spring-boot-starter</artifactId>
       <version>${номер версии}</version>
    </dependency>
  4. Измените файл application.properties проекта xxl-job-admin:

    a. Измените конфигурацию базы данных:

    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=123456

    b. Добавьте конфигурацию центра регистрации:

    spring.application.name=xxl-job-admin
    nacos.discovery.server-addr=127.0.0.1:8848
    nacos.discovery.register.ip=127.0.0.1
    nacos.discovery.register.port=${server.port}
    nacos.discovery.namespace=
    nacos.discovery.auto-register=true
  5. Измените logback-файл проекта xxl-job-admin:

    <property name="log.path" value="./logs/xxl-job/xxl-job-admin.log"/>
  6. Запустите проект.

  7. Проверьте, успешно ли он зарегистрирован в центре регистрации.

  8. Посетите центр управления:

Способ 2: образ Docker

  1. Скачайте образ (рекомендуется указать номер версии):

    docker pull justtoplay/xxl-job-admin:{указать номер версии}
  2. Создайте контейнер и запустите его:

    docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root --spring.application.name=xxl-job-admin --nacos.discovery.server-addr=127.0.0.1:8848 --nacos.discovery.register.ip=127.0.0.1 --nacos.discovery.register.port=8080 --nacos.discovery.namespace= --nacos.discovery.auto-register=true" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d justtoplay/xxl-job-admin:{указать номер версии}
  3. Проверьте успешность регистрации и возможность доступа к центру управления.

Исполнитель

  1. Добавьте зависимости в pom бизнес-проекта:

    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-job-core</artifactId>
        <version>${версия xxl-job-core}</version>
    </dependency>
    
    <dependency>
        <groupId>com.justtoplay</groupId>
        <artifactId>xxl-job-plus</artifactId>
        <version>${версия xxl-job-core}</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  2. Интегрируйте Nacos Discovery:

    • Для Spring Boot проекта:

      a. Измените pom:

      <dependency>
          <groupId>com.alibaba.boot</groupId>
          <artifactId>nacos-discovery-spring-boot-starter</artifactId>
          <version>${совместимая с сервером версия клиента nacos}</version> **2. Модификация файла конфигурации application.properties в бизнес-проекте**
      
spring.application.name=executor-sample
nacos.discovery.server-addr=127.0.0.1:8848
nacos.discovery.namespace=
nacos.discovery.auto-register=true

Проект Spring Cloud

1. Модификация POM

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${и соответствующая версия клиента сервера Nacos}</version>
</dependency>

2. Модификация файла конфигурации application.properties в бизнес-проекте

spring.application.name=executor-sample
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.namespace=
  1. Модификация файла конфигурации application.properties в бизнес-проекте
# xxl-job-admin регистрируется в центре регистрации с именем, по умолчанию xxl-job-admin, настраивать не нужно. Если имя регистрации xxl-job-admin изменено, пожалуйста, измените его синхронно.
xxl.job.plus.admin.service-name=xxl-job-admin

# executor регистрируется в списке исполнителей xxl-job-admin с именем, по умолчанию таким же, как spring.application.name, настраивать не требуется.
xxl.job.plus.executor.service-name=

# Используйте значение по умолчанию, настраивать не обязательно.
xxl.job.plus.admin.access-token=
xxl.job.plus.admin.context-path=
xxl.job.plus.executor.log-path=
xxl.job.plus.executor.log-retention-days=
  1. Запустите проект.

  2. Проверьте, зарегистрировался ли сервис в центре регистрации.

  3. Войдите в xxl-job-admin и вручную добавьте исполнителя, введите имя исполнителя, выберите автоматическую регистрацию и сохраните. Вы увидите, что машина в сети появится в списке.

Центр регистрации отключает службы xxl-job-admin онлайн, служба executor автоматически обновляет локальный кэш, больше не отправляет пульс отключённому xxl-job-admin. Когда новый xxl-job-admin подключится к сети, он автоматически отправит пульс. Из-за задержки подписки на состояние nacos и задержки пульса xxl-job-core, в xxl-job-admin будет определённая задержка в состоянии online службы executor.

Когда центр регистрации отключает службу executor онлайн, служба executor на сервере автоматически запустит или остановит состояние службы executor в xxl-job-admin. Из-за задержки подписки на состояние nacos и задержки пульса xxl-job-core в xxl-job-admin будет определённая задержка в состоянии службы executor online.

Вклад участников

Приглашаем внести свой вклад в проект! Например, отправьте PR для исправления ошибки или создайте Issue для обсуждения новой функции или изменения.

Поддержка

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

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/justtoplay-xxl-job-plus.git
git@api.gitlife.ru:oschina-mirror/justtoplay-xxl-job-plus.git
oschina-mirror
justtoplay-xxl-job-plus
justtoplay-xxl-job-plus
master