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

OSCHINA-MIRROR/Bwar-Nebula

Клонировать/Скачать
how_nebula_works.md 3.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 22:21 646366b

Nebula основана на событийном управлении с помощью libev и может быть сравнима с Java-фреймворком Netty.

Labor — это обработчик процессов, который включает два класса сущностей: Manager и Worker. Ресурсы на уровне процесса управляются и распределяются Labor.

Actor обрабатывает события (сообщения). Вся бизнес-логика абстрагируется в виде событий и их обработки. Actor делится на разные типы: Cmd, Module, Step, Session и т. д. Бизнес-логику реализуют через создание подклассов от четырёх типов обработчиков. При этом не нужно заботиться о чём-либо, кроме бизнес-логики.

Channel представляет собой канал связи. Все сообщения передаются через Channel. Они являются неблокирующими и используются для отправки и получения сообщений по методам, вызываемым Labor. Кодирование и декодирование сообщений выполняется Codec. Каждый раз при создании Channel синхронно создаётся Codec, который привязывается к нему. Если изменяется коммуникационный протокол прикладного уровня, то используется переключение Codec для одного и того же канала для обеспечения разного кодирования и декодирования.

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

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

Рабочие процессы отвечают за передачу и обработку данных.

Между управляющим и рабочими процессами происходит обмен данными через два UnixSocket, которые разделяют потоки управления и данных.

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

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

1
https://api.gitlife.ru/oschina-mirror/Bwar-Nebula.git
git@api.gitlife.ru:oschina-mirror/Bwar-Nebula.git
oschina-mirror
Bwar-Nebula
Bwar-Nebula
master