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

OSCHINA-MIRROR/itmachen-hippo4j

Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 11:20 aae7b58

Динамически наблюдаемый пул потоков, повышение гарантий работы системы

Лицензия Статус сборки

star Docker Pulls codecov Документация EN

Количество звезд со временем Участники со временем
Количество звезд со временем Участники со временем

GitHub: opengoofy/hippo4j
Gitee: opengoofy/hippo4j

Для полной документации и более подробной информации посетите: Документация

Проблемы с пулингом потоков


Пул потоков — это инструмент управления потоками на основе идеи пулинга. Использование пула потоков позволяет снизить затраты на создание и удаление потоков, а также избежать перегрузки сервера из-за большого количества потоков. В высоконагруженных системах и при работе с большим объемом задач использование пула потоков является необходимым.

Если вы используете пул потоков в проекте, возможно, вы столкнетесь со следующими проблемами:- Неправильное определение пула потоков приводит к избыточному использованию ресурсов потока, что вызывает высокую нагрузку на сервер.

  • Параметры пула потоков трудно оценить, особенно когда возрастает параллелизм бизнес-процессов, что повышает риск возникновения ошибок.
  • Время выполнения задачи пула потоков превышает среднее время выполнения, что делает невозможным для разработчиков его восприятие.
  • Аккумулирование задач в пуле потоков может активировать стратегию отказа, что влияет на нормальное функционирование существующих бизнес-процессов.
  • При возникновении проблем с временем отклика, расцеплением и другими вопросами в бизнес-процессах, невозможно точно установить причину проблемы из-за отсутствия мониторинга.
  • Исходный пул потоков не поддерживает передачу переменных во время выполнения, например, контекст MDC сталкивается с проблемой при использовании пула потоков.
  • Отсутствие возможности грациозного завершения работы, когда проект закрывается, все ещё выполняющиеся задачи пула потоков теряются.
  • Остановка выполнения задач в процессе работы пула потоков может указывать на возможное возникновение мёртвых locks или длительных операций, но нет способа этого проверить.### Что такое Hippo4j

Поддерживает следующие функции:- Глобальное управление — управление экземплярами пула потоков приложения.

  • Динамическое изменение — Возможность изменения параметров пула потоков в режиме выполнения приложения, включая, но не ограничиваясь следующими параметрами: количество ядерных потоков, максимальное число потоков, размер очереди ожидания, стратегию отказа и т. д.
  • Уведомление и тревоги — Встроенная система четырёх типов уведомлений и тревог, включающая активность пула потоков, уровень заполнения пула потоков, стратегию отказа и длительность выполнения задач.
  • Сбор данных — Поддержка различных методов сбора данных о пуле потоков, включая логи, внутренний сборник данных, Prometheus, InfluxDB, Elasticsearch и т. д.
  • Мониторинг работы — Реальное время отслеживание данных о работе пула потоков, возможность создания графиков с данными за указанный период времени.
  • Расширяемость функционала — Поддержка передачи контекста задач между потоками; возможность остановки проекта после завершения всех задач в пуле потоков в течение указанного времени.
  • Различные режимы — Встроенные два режима использования: зависимый от конфигурационного центра и независимый от промежуточного программного обеспечения.- Управление контейнерами — отслеживание состояния пула потоков и изменение количества потоков в контейнерах Tomcat, Jetty, Undertow.
  • Интеграция с фреймворками — отслеживание состояния пула потоков и изменение количества потоков в системах Dubbo, Hystrix, RabbitMQ, RocketMQ и других.
  • Аудит изменений — предоставление нескольких ролей пользователей, требование согласования администратора для применения изменений параметров пула потоков.
  • Динамическая плагинализация — встроенная система различных плагинов для пула потоков, поддерживающая создание пользовательских плагинов и расширение возможностей в реальном времени.
  • Совместимость с различными версиями — протестировано и поддерживается клиентская часть SpringBoot версий от 1.5.x до 2.7.5 (выше версии не тестировались).

Архитектурный дизайн---

image

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


Для локальной демонстрации см. Быстрый старт

Ссылка на демо-среду: http://console.hippo4j.cn/index.html

Интеграция и регистрация


Если ваша компания хочет интегрироваться с проектом, пройдите регистрацию в форме регистрации.

Обратная связь


Открытое программное обеспечение — это трудоёмкая работа. Поддержите проект, нажав кнопку "Star" в правом верхнем углу!

Если вы хотите следить за обновлениями проекта Hippo4j и получать полезные материалы, то рекомендую подписаться на мой официальный аккаунт.

При возникновении вопросов или предложений по проекту, обратитесь через официальный аккаунт и введите команду "Добавить в группу", чтобы присоединиться к обсуждению с более чем Yöntem 1'deki talimatlara uygun olarak, "注册" ve "注册表单" ifadeleri çevrildi. Başka bir dildeki metinler de çevirildi. Örneğin, "加入我的官方账号" ifadesi "подписаться на мой официальный аккаунт" olarak çevrilmiştir. Bu şekilde, belirli talimatlara uygun bir çeviri yapıldı.

---

<img width="1307" alt="image" src="https://user-images.githubusercontent.com/106363931/233792824-f879500f-fea1-4872-be15-957236f6bf2b.png">

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

---

Для локальной демонстрации см. [Быстрый старт](https://hippo4j.cn/docs/user_docs/user_guide/quick-start)

Ссылка на демо-среду: [http://console.hippo4j.cn/index.html](http://console.hippo4j.cn/index.html)

### Интеграция и регистрация

---

Если ваша компания хочет интегрироваться с проектом, пройдите регистрацию в [форме регистрации](https://github.com/opengoofy/hippo4j/issues/13).

### Обратная связь

---

Открытое программное обеспечение — это трудоёмкая работа. Поддержите проект, нажав кнопку "Star" в правом верхнем углу!

Если вы хотите следить за обновлениями проекта Hippo4j и получать полезные материалы, то рекомендую подписаться на мой официальный аккаунт.

При возникновении вопросов или предложений по проекту, обратитесь через официальный аккаунт и введите команду "Добавить в группу", чтобы присоединиться к обсуждению с более чем 1000 единомышленников.

<img width="586" alt="image" src="https://user-images.githubusercontent.com/77398366/225888779-367f42a6-8401-4872-8e80-44214e1d17c1.png">

### Глубинные принципы

---

Независимо от того, использует ли ваша компания Hippo4j или нет, я настоятельно рекомендую вам ознакомиться с основами проекта. Вот несколько причин:
- Основа проекта зависит от фреймворка Spring и широко использует его возможности.
- Используются различные инструменты из библиотеки JUC для обеспечения безопасности многопоточной работы, что позволяет лучше понять параллельное программирование.
- Реализованы легковесные конфигурационные центры и регистры, вдохновленные популярными открытыми фреймворками Nacos и Eureka.
- Создана собственная система RPC, которая использует Netty для оптимизации сетевых взаимодействий между клиентами и серверами.
- Качество и стиль кода поддерживаются благодаря использованию плагинов CheckStyle и Spotless.### Дружественные ссылки

---

- [[Sa-Token]](https://github.com/dromara/sa-token): Лёгкий Java-фреймворк для аутентификации и авторизации, который делает процесс проверки доступа простым и элегантным!
- [[HertzBeat]](https://github.com/dromara/hertzbeat): Удобная и дружественная система мониторинга облачных сервисов, не требующая установки агента, с мощной возможностью настройки собственного мониторинга.
- [[JavaGuide]](https://github.com/Snailclimb/JavaGuide): Полное руководство по основным знаниям, необходимым большинству Java-разработчиков.
- [[toBeBetterJavaer]](https://github.com/itwanger/toBeBetterJavaer): Простое и понятное руководство по изучению Java, наполненное юмором и интересными примерами.
- [[Jpom]](https://gitee.com/dromara/Jpom): Лёгкий и незначительно вмешивающийся онлайн-билдер, автоматический деплой, повседневное обслуживание и мониторинг проектов.
- [[12306]](https://gitee.com/nageoffer/12306): Реализация высокопроизводительной системы, имитирующей сайт 12306, включающую пользователя, бронирование билетов, заказы и платежи, ориентированная на студентов для подготовки к трудоустройству.
- [[CongoMall]](https://gitee.com/nageoffer/congomall): Корпоративный интернет-магазин, разработанный на основе модели домена (DDD), который включает бизнес-логику магазина и базовую архитектуру.

### Контрибьюторы

---

Спасибо всем разработчикам, внесшим свой вклад в проект. Если вы хотите сделать свой вклад, обратитесь к [good first issue](https://github.com/opengoofy/hippo4j/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).<!-- readme: contributors -start -->

<!-- readme: contributors -end -->

### Благодарности

---

Коммьюнити Hippo4j получило несколько лицензий от JetBrains и распределило их среди [активных разработчиков](https://hippo4j.cn/community/team/). Большое спасибо компании JetBrains за поддержку открытого сообщества.

![Логотип JetBrains](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/itmachen-hippo4j.git
git@api.gitlife.ru:oschina-mirror/itmachen-hippo4j.git
oschina-mirror
itmachen-hippo4j
itmachen-hippo4j
develop