Звездочеты с течением времени | Участники с течением времени |
---|---|
GitHub: opengoofy/hippo4j
Gitee: opengoofy/hippo4j
Полную документацию и более подробную информацию можно найти на странице: Документы.
Пул потоков — это инструмент управления потоками, основанный на идее объединения потоков. Использование пула потоков позволяет снизить затраты на создание и уничтожение потоков и избежать истощения системных ресурсов, вызванного слишком большим количеством потоков. В сценариях обработки задач с высоким уровнем параллелизма и обработки больших объемов использование пулов потоков имеет важное значение.
Если вы действительно используете пул потоков в своем проекте, я считаю, что вы можете столкнуться со следующими болями:
Пул потоков определен произвольно, и имеется слишком много ресурсов потоков, что приводит к высокой нагрузке на сервер.
Параметры пула потоков трудно оценить. По мере увеличения параллелизма бизнес сталкивается с риском неудачи.
Время выполнения задачи пула потоков превышает средний цикл выполнения и незаметно для разработчиков.
Накопление задач пула потоков запускает политику отклонения и влияет на нормальную работу существующего бизнеса.
Когда в бизнесе возникают такие проблемы, как тайм-ауты и автоматические выключатели, из-за отсутствия мониторинга невозможно определить, вызвана ли проблема пулом потоков.
Собственный пул потоков не поддерживает передачу переменных времени выполнения. Например, контекст MDC будет GG при обнаружении пула потоков.
Не удалось выполнить корректное завершение работы, большое количество запущенных задач пула потоков было отменено при закрытии проекта.
Пока пул потоков работает, выполнение задачи прекращается. Есть подозрение, что произошла взаимоблокировка или была выполнена трудоемкая операция, но запустить ее невозможно.
Обеспечивает поддержку следующих функций:
Глобальный контроль — управление экземплярами пула потоков приложения.
Динамические изменения — динамически изменяйте параметры пула потоков во время работы приложения, включая, помимо прочего: ядра, максимальное количество потоков, емкость очереди блокировки, политику отклонения и т. д.
Тревога уведомления — встроенные четыре стратегии уведомления о тревогах, активность пула потоков, уровень воды в емкости, стратегия отклонения и слишком большое время выполнения задачи.
Сбор данных — поддерживает несколько методов сбора данных пула потоков, включая, помимо прочего: журналы, встроенный сбор, Prometheus, InfluxDB, ElasticSearch и т. д.
Мониторинг выполнения. Просматривайте данные времени выполнения пула потоков в режиме реального времени и отображайте данные времени выполнения пула потоков на диаграммах в течение настраиваемого времени.
Расширение функции — поддерживает контекст доставки задачи пула потоков при закрытии проекта, поддерживает ожидание завершения задачи пулом потоков в течение указанного времени.
Несколько режимов. Два встроенных режима использования: зависимость от центра конфигурации и отсутствие зависимости от промежуточного программного обеспечения.
Управление контейнерами — просмотр среды выполнения пула потоков контейнера Tomcat, Jetty, Undertow и изменение количества потоков.
Адаптация платформы — Dubbo, Hystrix, RabbitMQ, RocketMQ и другие пользовательские пулы потоков, просмотр данных во время выполнения и изменение номеров потоков.
Проверка изменений. Предоставляет различные роли пользователей. Изменения параметров пула потоков обычными пользователями требуют проверки со стороны администратора, прежде чем они вступят в силу.
Динамические плагины — встроенные плагины для нескольких пулов потоков, поддерживающие определяемые пользователем плагины и расширения среды выполнения.
Адаптация к нескольким версиям. После фактического тестирования поддерживалась версия клиента SpringBoot 1.5.x => 2.7.5 (более высокие версии не тестировались).
Для локальных демонстрационных целей см. Быстрый старт.
Демо-среда: http://console.hippo4j.cn/index.html.
Более подключенные компании могут зарегистрироваться по адресу регистрации. Регистрация предназначена только для продвижения продукта.
Открытый исходный код – это непросто, нажмите звездочку в правом верхнем углу, чтобы поощрить его!
Если вы хотите следить за обновленными статьями и общей информацией Hippo4j в режиме реального времени, вы можете подписаться на мой официальный аккаунт.
Если у вас возникнут вопросы во время использования или есть предложения по проекту, подпишитесь на официальный аккаунт и ответьте: Присоединяйтесь к группе, чтобы общаться и обсуждать с 1000+
друзьями-единомышленниками.
Если ваша компания не использует сценарии Hippo4j, я также рекомендую ознакомиться с основными принципами проекта, главным образом по следующим причинам:
Чтобы улучшить качество кода и последующее расширение, используются несколько шаблонов проектирования для достижения высокой связности и низкой связанности.
Нижний уровень платформы использует среду Spring для запуска и использует большое количество функций, связанных со Spring, в исходном коде.
Используйте различные инструменты пакета параллелизма JUC, чтобы обеспечить безопасность многопоточных операций и понять параллельное программирование на основе реальных сценариев.
Изучите основные платформы с открытым исходным кодом Nacos и Eureka, чтобы реализовать упрощенные функции центра конфигурации и центра регистрации.
Настройте реализацию инфраструктуры RPC и инкапсулируйте Netty для полной оптимизации сетевого взаимодействия клиент/сервер.
Стандартизируйте написание кода с помощью таких плагинов, как CheckStyle и Spotless, чтобы обеспечить высококачественное поведение и стиль кода.
[Sa-Token]: облегченная структура аутентификации Java-авторитетов, которая делает аутентификацию простой и элегантной!
[HertzBeat]: простая в использовании и дружелюбная система облачного мониторинга, агент не требуется, мощные возможности настраиваемого мониторинга.
[JavaGuide]: руководство, охватывающее основные знания, которыми необходимо овладеть большинству Java-программистов.
[ toBeBetterJavaer ]: простое и юмористическое руководство по изучению Java.
[Jpom]: простое и легкое онлайн-создание с низким уровнем вмешательства, автоматическое развертывание, ежедневная эксплуатация и обслуживание, а также программное обеспечение для мониторинга проекта.
[12306]: Полный набор пользователей 12306 с высоким уровнем имитации + получение билетов + заказ + платежный сервис, помогающий студентам сосредоточиться на проектах трудоустройства.
[CongoMall]: торговый центр корпоративного уровня, разработанный на основе доменно-ориентированной модели DDD, включая бизнес и инфраструктуру торгового центра.
Спасибо всем разработчикам, принявшим участие в проекте. Если вы заинтересованы в том, чтобы внести свой вклад, пожалуйста, обратитесь к хорошему первому выпуску.
Сообщество Hippo4j получило несколько лицензий от Jetbrains и привлекло к проекту активных разработчиков. Мы очень благодарны Jetbrains за поддержку сообщества открытого исходного кода.