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

OSCHINA-MIRROR/xueshiqing-PiggyMetrics

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

Демонстрация поведения многокомпонентного распределённого приложения

Основная информация

Лицензионное соглашение: GPL
Операционная система: CentOS
Язык разработки: JAVA
Разработчик: Пекинский университет авиации и космонавтики
Сайт проекта: https://xueshiqing.github.io/
Загрузка исходного кода: https://gitee.com/xueshiqing/PiggyMetrics

Описание проекта

Демонстрация поведения многокомпонентного распределённого приложения основана на системе PiggyMetrics, представляющей собой распределённый микросервисный онлайн-учёт. Проект разработан Пекинским университетом авиации и космонавтики.

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

Техническая архитектура

  1. Бэкенд:
    • Базовая структура: SpringCloud, Docker, ZUUL, ELK.
    • Постоянная структура слоя: mongoDB.
    • Очередь сообщений: rabbitmq.
    • Структура кэша: redis.
    • Ведение журнала: log4j.
    • Прочее: fastjson, quartz и др.
  2. Среда разработки:
    • Язык: JAVA.
    • IDE: IDEA.
    • Управление зависимостями: Maven.
    • База данных: mongoDB.
    • Кэш: redis.

Функциональные модули

  • Отслеживание цепочки запросов.
  • Построение диаграммы компонентов запроса.
  • Анализ ключевых путей.
  • Оценка ключевых компонентов.

Бэкенд-разработка и зависимости

  • Java.
  • Maven.
  • JDK8.
  • SpringCloud.
  • Docker.
  • mongoDB.

Загрузка и запуск проекта

  • Извлечение кода проекта:
git clone url
  • Компиляция:
mvn clean;
mvn package;
  • Запуск:
    • Создание образа:
gateway                latest              a532a250efa1        6 weeks ago         349 MB
monitoring             latest              1d4485f6c5ed        6 weeks ago         352 MB
notification-service   latest              a7b696ecf66a        6 недель назад         355 MB
statistics-service     latest              2464eaa4a1d7        6 недель назад         354 MB
account-service        latest              fb3dcff48ff4        6 недель назад         354 MB
auth-service           latest              1bbbc17418ff        6 недель назад         350 MB
account-mongo-service            latest              2b0b84d3d8a1        6 недель назад         642 MB
registry               latest              216c1f736617        6 недель назад         348 MB
config                 latest              c3e41d5ae3c7        6 недель назад         333 MB
rabbitmq               latest              5a8b7f36d59f        7 недель назад         151 MB
docker-base            latest              17a1ba013238        2 месяца назад        100 MB
redis                  3                   1200574c8af9        2 месяца назад        366 MB
rabbitmq               3-management        6cb6e2f951a8        2 месяца назад        151 MB
statistics-mongo-service            latest              17a1ba013238        2 месяца назад        100 MB
notification-mongo-service            latest              17a1ba013238        2 месяца назад        100 MB
  • Запуск образа: Обратите внимание: все IP, начинающиеся с 192, должны быть заменены на ваш собственный IP.
  1. Запустите Redis:
docker run -d --name redis -p 6379:6379 redis
  1. Запустите RabbitMQ:
docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3-management

Через ip:15672/ проверьте, успешно ли запущен. Имя пользователя — user, пароль — root. 2. Запустите Config — сервер конфигурации:

docker run -d -p 8888:8888 -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWOR} --name=config config

Через ip:8888/gateway/default проверьте, удалось ли прочитать файл конфигурации. 3. Запустите Eureka — реестр служб:

docker run -d -p 8761:8761 -e REGISTRY_PORT=8761 -e CONFIG_PORT=8888 -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSSWORD} --add-host config:192.168.1.191 --add-host registry:192.168.1.191 --name=registry registry

Через ip:8761 подтвердите успешность запуска. 4. Запустите Auth-Service:

docker run -d -p 5000:5000  -e SERVICE_PORT=5000 -e AUTH_SERVICE_PORT=5000 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e NOTIFICATION_SERVICE_PASSWORD=${NOTIFICATION_SERVICE_PASSWORD} -e STATISTICS_SERVICE_PASSWORD=${STATISTICS_SERVICE_PASSWORD} -e ACCOUNT_SERVICE_PASSWORD=${ACCOUNT_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --name=auth-service auth-service

Проверьте через MongoDB по адресу mongo 192.168.4.201/piggymetrics -u user -p root. 5. Запустите Account-Mongo-Service:

docker run -d -p 7777:7777 -e SERVICE_PORT=7777 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e INIT_DUMP=/account-service-dump.js  -e NOTIFICATION_SERVICE_PASSWORD=${NOTIFICATION_SERVICE_PASSWORD} -e STATISTICS_SERVICE_PASSWORD=${STATISTICS_SERVICE_PASSWORD} -e ACCOUNT_SERVICE_PASSWORD=${ACCOUNT_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 **REGISTRY_PORT=8761** --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --name=account-mongo-service account-mongo-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

6. Запустить account-service.
docker run -d -p 6000:6000 -e SERVICE_PORT=6000 -e HOST_IP=192.168.1.191  -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e ACCOUNT_SERVICE_PASSWORD=${ACCOUNT_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --name=account-service account-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

12. Запустить gateway.
docker run -d -p 4000:4000 -e SERVICE_PORT=4000 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --name=gateway gateway
<br>Доступ через ip:4000.

7. Запустить statistics-mongo-service.
docker run -d -p 7778:7778 -e SERVICE_PORT=7778 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e NOTIFICATION_SERVICE_PASSWORD=${NOTIFICATION_SERVICE_PASSWORD} -e STATISTICS_SERVICE_PASSWORD=${STATISTICS_SERVICE_PASSWOR$ -e ACCOUNT_SERVICE_PASSWORD=${ACCOUNT_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --name=statistics-mongo-service statistics-mongo-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

8. Запустить statistics-service.
docker run -d -p 7000:7000 -e SERVICE_PORT=7000 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e STATISTICS_SERVICE_PASSWORD=${STATISTICS_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672  --name=statistics-service statistics-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

9. Запустить notification-mongo-service.
docker run -d -p 7779:7779 -e SERVICE_PORT=7779 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e NOTIFICATION_SERVICE_PASSWORD=${NOTIFICATION_SERVICE_PASSWORD} -e STATISTICS_SERVICE_PASSWORD=${STATISTICS_SERVICE_PASSWORD} -e ACCOUNT_SERVICE_PASSWORD=${ACCOUNT_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --name=notification-mongo-service notification-mongo-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

10. Запустить notification-service.
docker run -d -p 8000:8000 -e SERVICE_PORT=8000 -e HOST_IP=192.168.1.191 -e REDIS_IP=${REDIS_IP} -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} -e NOTIFICATION_SERVICE_PASSWORD=${NOTIFICATION_SERVICE_PASSWORD} -e MONGODB_PASSWORD=${MONGODB_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888 --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host auth-service:192.168.1.191 -e AUTH_SERVICE_PORT=5000 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672 --name=notification-service notification-service
<br>Можно проверить регистрацию сервиса через панель Eureka.

11. Запустить monitoring.
docker run -d -p 8989:8989 -p 8080:8080 -e HOST_IP=192.168.1.191 -e CONFIG_SERVICE_PASSWORD=${CONFIG_SERVICE_PASSWORD} --add-host config:192.168.1.191 -e CONFIG_PORT=8888  --add-host registry:192.168.1.191 -e REGISTRY_PORT=8761 --add-host rabbitmq:192.168.1.191 -e RABBITMQ_PORT=5672

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

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

Введение

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

Обновления

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

Участники

все

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

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