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

OSCHINA-MIRROR/pengminghua-shockweb

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

ShockWeb

ShockWeb — это микросервисная архитектура, которая является эффективной, простой в использовании и управляемой. Она предоставляет возможность разработки без вмешательства и зависимостей, а также легко интегрируется с основными промежуточными программными продуктами. Поддерживает как модели с состоянием, так и без него, а также нативные IOC и Spring IOC контейнеры. Концепция дизайна схожа с Spring Cloud и Dubbo, при этом производительность ShockWeb более чем в 10 раз выше, чем у Spring Cloud.

В основе архитектуры лежат Netty и высокоэффективный двоичный инструмент сериализации. Архитектура состоит из пяти основных частей:

  • центр регистрации;
  • микросервисы;
  • клиент микросервисов;
  • сервисный прокси;
  • центр конфигурации.

Каждая часть может быть развёрнута и запущена отдельно или через Java-методы. Это делает архитектуру легко расширяемой и масштабируемой.

Основные технологии

  • Коммуникационные технологии:
    • использование Netty для коммуникации, основанной на протоколе TCP;
    • точка-точка и широковещательная коммуникация, где клиенты напрямую взаимодействуют с сервисами без посредников;
    • мультиплексирование каналов связи для поддержания длительных соединений.
  • Технологии сериализации:
    • двоичная сериализация для уменьшения размера данных после сериализации (включая точную битовую информацию о заголовках и управляющих маркерах);
    • кодирование имён методов и классов для дальнейшего уменьшения размера сериализованных данных;
    • отсутствие необходимости указывать класс при десериализации, что обеспечивает истинную инкапсуляцию кода.

Состав микросервисной архитектуры

  1. Центр регистрации:
    • предоставление нескольких spaceName для регистрации различных категорий микросервисов;
    • поддержка кластеризации центров регистрации, что повышает надёжность системы и снижает требования к ресурсам;
    • управление сервисами, когда задачи достигают предела обработки, они распределяются между другими микросервисами.
  2. Центр конфигурации:
    • распределённый центр конфигурации;
    • обеспечение унифицированных конфигурационных услуг для всех компонентов ShockWeb.
  3. Микросервисы:
    • автономные и контейнерные способы запуска, не зависящие от конкретных контейнеров;
    • интеграция со Spring для реализации вызовов на уровне сервисов и использования возможностей Spring;
    • упрощённый IOC и прямая передача данных для повышения эффективности передачи;
    • ограничение потока и динамическое регулирование для каждого микросервиса во время выполнения;
    • асинхронная поддержка микросервисов для обеспечения их приёма и обработки на стороне сервера, иначе возвращается исключение;
    • передача контекста вызова по цепочке микросервисов и поддержка полного журнала вызовов;
    • маршрутизация микросервисов с функциями маршрутизации и балансировки нагрузки.
  4. Клиенты:
    • интеграция с Spring для декларативных вызовов сервисов и динамических вызовов API;
    • прямая передача данных и высокая эффективность передачи больших объёмов данных;
    • широковещательные вызовы для совместного выполнения задач несколькими микросервисами;
    • поддержка прерывания, ошибок и повторных попыток;
    • поддержка широковещательных вызовов микросервисов.

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

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

Введение

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

Обновления

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

Участники

все

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

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