Lotou - это легкая структура для игрового сервера, реализованного в Golang. Он использует связь между узлами путем абстрагирования обменов сообщений, чтобы легко можно было достичь мульти-узлов и мультисервисов.
Lotou вдохновлен Framework Skynet, написанным Cloudwu. В рамках этой структуры все службы общаются друг с другом. Функции, предоставленные услугами, не подвергаются вызовам API. В текущей версии Module Core отвечает за маршрутизацию сообщений, и у каждой службы есть свое собственное сообщение Chan для получения и отправки.
Основной поставляет связь между услугами. Все услуги зарегистрированы в core и отправляют сообщение другим по core.send.
binary кодируют данные в двоичный поток для связи между серверами и клиентами. Использование этой конвенции кодирования в некоторой степени похоже на использование JSON Marshalling.
GOB (не GOB в собственной LIB) GOLANG, Кодирование GOB стремится поддерживать общение узлов. Связь с услугами может быть транс-узлами, поэтому необходимы кодирующие сообщения в двоичный поток. Переключение сообщений в узлах не нужно кодировать для лучшей производительности.
Все примитивные типы в Голанге могут быть закодированы. Любая комбинация параметров легко поддерживается до тех пор, пока отправитель и приемник соответствует той же подписи
Самоопределенная структура также может быть поддержана, но структура должна быть зарегистрирована в Advanced. Если различные узлы должны использовать одну и ту же структуру, регистрация этих структур должна быть зарегистрирована в фиксированной и уникальной последовательности.
В настоящее время кодирование характеристик для среза и карты не так хороша. Чтобы кодировать тип []interface{} , каждый элементы которого кодируются отдельно. Чтобы быть более конкретным, тип информации для каждого элементов все обозначена. Поэтому, если есть элементы одного определенного типа, информация о типе является избыточным.
Marshalling of gob (lotou) достигается по отражению.
Модуль журнала предназначен для печати отладки и информации об ошибках. В настоящее время журнал является синхронизированным режимом, если у нас слишком много журнала, которое нужно для файла, он может заблокировать основную логику. (Это может быть изменено на асинхронизированный режим когда -нибудь)
Сеть реализует маршруты между узлами в TCP. Роли работы server и client работают как то, что они называют. Сердцебиение еще не внедрено. client устанавливает соединение со своим server в первый раз после отправки сообщения.
Multi-Node Servers основаны на тополое. Есть два типа узлов в Lotou, и разные типы узлов вносятся в одну и ту же сеть. В определенной сети есть только один мастер -узел и серверные подчиненные узлы. Услуги могут быть запущены в любом типе узла, а есть два типа услуг: локальный сервис и глобальный сервис. Локальный сервис - это те же узлы, известные друг другу по имени. Глобальный сервис - это те, которые управляются разными узлами, и они подвергаются воздействию всех услуг всех узлов, зарегистрированных для магистра.
Если вы заинтересованы в разработке Lotou, не стесняйтесь обращаться ко мне через
QQ 157621271
WeChat Id Daijun_1234.
QQ Group также доступна 362112175. (Заполнение проверки с Lotou )
Twitter @sydnash1
Советы и фанаты всегда приветствуются.
Используйте etcd В качестве услуги обнаружение.
Используйте nats как узловое сообщение Diliver.