Nepxion Thunder — это распределённая RPC-вызывающая структура, основанная на Netty, Hessian, Kafka, ActiveMQ, Tibco, Zookeeper (Curator Framework), Redis, FST, Spring, Spring Web MVC и Spring Boot.
Архитектура Nepxion Thunder в основном вдохновлена структурой Dubbo от Alibaba, но она более легковесна и проста в развёртывании.
Технические особенности:
- Поддержка Message Queue (очередь сообщений).
- Возможность локальных цепочечных вызовов без блокировки.
- Поддержка межпроцессных вызовов.
- Балансировка мягкой нагрузки как для сервера, так и для клиента.
- Удалённые настройки и оптимизация.
- Разнообразные средства мониторинга, включая Redis, Splunk и настраиваемые веб-сервисы.
- Богатые возможности управления сервисами, включая графическое управление, уведомления о сбоях и событиях.
- Сериализация с использованием сжатия QuickLz для повышения пропускной способности при передаче больших объёмов данных.
- Упрощённая конфигурация Spring с возможностью сочетания глобальных и локальных настроек.
- Интеграция с микросервисными фреймворками, такими как Spring Boot.
В отличие от Dubbo, Nepxion Thunder не поддерживает некоторые функции, такие как сложные алгоритмы балансировки нагрузки и расширенные правила доступа.
Netty — асинхронная и событийно-управляемая сетевая среда разработки приложений и инструментов от JBoss, основанная на TCP и UDP. В Nepxion Thunder используется для реализации асинхронных, синхронных и широковещательных вызовов, а также многопоточности.
Hessian — облегчённая среда удалённого взаимодействия HTTP, предоставляющая синхронные вызовы. Она основана на двоичном протоколе RPC. В Nepxion Thunder Hessian используется для реализации асинхронных, синхронных и широковещательных вызовов, а также многопоточности.
Kafka — высокопроизводительная распределённая система обмена сообщениями, не соответствующая стандарту JMS. В Nepxion Thunder Kafka используется для реализации асинхронных, синхронных и широковещательных вызовов, а также многопоточности.
ActiveMQ — популярная и мощная открытая очередь сообщений от Apache, поддерживающая JMS 1.1 и J2EE 1.4. В Nepxion Thunder ActiveMQ используется для реализации асинхронных, синхронных и широковещательных вызовов, а также многопоточности. ТИБКО (NASDAQ: TIBX) — это компания-разработчик промежуточного программного обеспечения с 20-летней историей. Она специализируется на интеграции корпоративных приложений и предлагает решения в этой области.
Thunder — это продукт компании, который позволяет осуществлять асинхронные, синхронные и широковещательные вызовы. Поскольку это коммерческое программное обеспечение, оно не предоставляет пакеты для разработки. Чтобы получить бесплатный пакет разработки, посетите веб-сайт компании.
Основные функции Thunder:
- Процессы фреймворка могут быть как серверными, так и клиентскими, и оба процесса являются частью одного целого. Они выступают в роли сервера или клиента после регистрации в центре регистрации. Независимо от того, является ли клиент или сервер узлом балансировки нагрузки, они будут сбалансированы по нагрузке. На основе этой конструкции поддерживается многоуровневая цепочка вызовов: чисто асинхронный многоуровневый вызов, чисто синхронный многоуровневый вызов, асинхронный, а затем синхронный многоуровневый вызов и синхронный, а затем асинхронный многоуровневый вызов. Поддерживаются многоуровневые обратные вызовы.
- Поддерживает TCP NIO framework (Netty), TCP MQ message queue framework (Kafka, ActiveMQ, Tibco), HTTP (Hessian) передачу данных, многопоточные вызовы.
- Поддерживает синхронные вызовы, асинхронные обратные вызовы, широковещательное уведомление (модель публикации/подписки точка-точка), синхронные и асинхронные механизмы тайм-аута.
- Поддержка простого локального вызова на основе Spring (явный вызов) для достижения цели удалённого вызова, RPC-вызова.
- Автоматическое обнаружение сервисов и клиентов без перезапуска клиентских приложений.
- Механизм сердцебиения и автоматического переподключения.
- Переподключение к Zookeeper при сбое соединения с центром регистрации.
- Балансировка нагрузки центра регистрации: переключение на нездоровый серверный процесс и предоставление настроек количества попыток переключения.
- Алгоритмы балансировки нагрузки центра регистрации включают согласованный хэш (Consistent Hash), алгоритм взвешенного циклического перебора (Round Robin) и случайный циклический перебор (Random).
- Авторизация на основе ключей для безопасного доступа к сервисам, интегрированная с Hessian. Используется двустороннее сопоставление ключей.
- Контроль версий для вызовов API, двусторонний механизм сопоставления версий.
- Ограничение скорости с использованием механизма обновления токенов для контроля количества вызовов интерфейса за единицу времени.
- Обработка обновлений: сохранение объектов центра регистрации после обновления и повторное создание при обнаружении несоответствия версий.
- Удалённая конфигурация и оптимизация: администраторы могут настраивать и оптимизировать распределённые сервисы и клиентские приложения через удалённые инструменты конфигурации. Конечно, эти приложения также могут использовать локальные конфигурации или удалённые конфигурации. Бизнес-пользователи могут создавать внешние параметры для хранения данных через SPI.
- Мониторинг зависимостей сервисов (SOA Governance): просмотр адресов и портов интерфейсов серверных процессов, используемых протоколов, приложений, групп и методов, а также их состояния (запуск или остановка). Динамическое обновление информации. Просмотр адресов, протоколов, приложений и групп клиентских процессов, а также состояния подключения (подключено или нет). Динамическое обновление.
- Централизованный мониторинг всех вызовов методов (время выполнения, количество вызовов, исключения и т. д.). Интеграция с Redis (режим сторожевого таймера и кластерный режим) или Splunk для динамического мониторинга журналов. Распределённый доступ через сторонние WebServices для сбора данных. Широковещательная передача данных всем подключённым WebServices.
- Графический интерфейс управления сервисами, включая распределённое управление серверными процессами и клиентами, динамическое обновление при подключении и отключении, управление токенами и ключами, контроль версий и другие функции.
- Визуализация сетевой топологии развёртывания.
- Отслеживание и анализ цепочек вызовов и исключений на основе интегрированных файлов журналов, кэша Redis и других источников данных.
- Оптимизация производительности для пяти основных коммуникационных промежуточных программ с помощью отдельных файлов конфигурации. Локальная и глобальная конфигурация. Локальные настройки имеют приоритет над глобальными настройками.
- MQ (Message Queue) поддерживает использование разных серверов MQ для сервисов и клиентских процессов в одном процессе.
- MQ (Message Queue) поддерживает три способа кэширования соединений или сеансов (SingleConnectionFactory, CachingConnectionFactory, PooledConnectionFactory).
- MQ (Message Queue) поддерживает два метода инициализации (JNDI и не JNDI).
- Публикация событий с асинхронным управлением событиями, повторная обработка и компенсация, уведомления об исключениях (электронная почта или SMS).
- Цепочка вызовов.
- Выбор различных типов очередей для разных пулов потоков, настройка пяти режимов отклонения для пула потоков. Многопоточная изоляция для предотвращения влияния одного сервиса на другой при использовании нескольких сервисов на одной JVM. Бизнес-пользователи могут решить, следует ли включать изоляцию потоков в зависимости от конкретных сценариев.
- Привязка потоков. Добавление конфигурации affinityThread = true и запуск с параметром -Daffinity.reserved={cpu-mark-in-hex} в командной строке позволяют указать, какой процессор будет использоваться процессом.
Для получения дополнительной информации о продукте и его поддержке посетите веб-сайт разработчика.
Комментарии ( 0 )