O Lotou é uma estrutura leve para o servidor de jogos implementado em Golang. Ele utiliza a comunicação entre nós, abstraindo trocas de mensagens para que os vários nodos e os serviços múltiplos possam ser facilmente alcançados.
O LOTOU é inspirado pela estrutura Skynet escrita por Cloudwu. Dentro dessa estrutura, todos os serviços se comunicam por mensagens. As funções fornecidas pelos serviços não são expostas pela chamada da API. Na versão atual, o Module Core é responsável pela roteamento de mensagens e todo serviço tem sua própria mensagem Chan para receber e enviar.
O núcleo fornece a comunicação entre serviços. Todos os serviços são registrados no core e enviam mensagem a outros por Core.send.
binary codifica dados no fluxo binário para comunicação entre servidores e clientes. O uso desta convenção de codificação é um pouco como o uso do JSON Marshalling.
GOB (não GOB na própria libra de Golang) A codificação GOB visa sustentar a comunicação dos nós. A comunicação de serviços pode ser trans, para que as mensagens de codificação no fluxo binário sejam necessárias. A troca de mensagens dentro dos nós não precisa ser codificada para melhor desempenho.
Todos os tipos primitivos em Golang podem ser codificados. Qualquer combinação de parâmetros é facilmente suportada desde que o remetente e o receptor cumpram a mesma assinatura
A estrutura autodefinida também pode ser suportada, mas a estrutura deve ser registrada no avançado. Se os nós diferentes precisarem usar a mesma estrutura, o registro dessas estruturas deve ser registrado em uma sequência fixa e única.
Atualmente, a codificação de performances para fatia e mapa não é tão boa. Para codificar o tipo de []interface{} , cada um dos quais são codificados separadamente. Para ser mais específico, as informações de tipo para cada elementos são todas organizadas. Portanto, se houver elementos de um certo mesmo tipo, as informações do tipo são marechadas de forma redundante.
O marechaling de GOB (LOTOU) é alcançado por refletir.
O módulo de log é para imprimir informações de depuração e erro. Atualmente, o log é o modo sincronizado, se tivermos muitos logs que precisam ser arquivados para arquivar, ele pode bloquear a lógica principal. (pode ser alterado para o modo assincronizado algum dia)
A rede implementa as rotas entre nós no TCP. Funções do server e client funcionam como chamadas. Os batimentos cardíacos ainda não foram implementados. client estabelece conexão com seu server na primeira vez em envio de mensagem.
Servidores de vários nó são baseados no Topoloy. Existem dois tipos de nós em Lotou e diferentes tipos de nós são atingidos pela mesma rede. Dentro de uma determinada rede, há apenas um nó principal e nós de escravos servidores. Os serviços podem ser executados em qualquer tipo de nó e existem dois tipos de serviços: serviço local e serviço global. O serviço local é o mesmo no mesmo nó conhecido um pelo outro pelo nome. O Serviço Global é executado por nós diferentes e são expostos a todos os serviços de todos os nós, sendo registrados para dominar.
Se você estiver interessado em desenvolver Lotou, não hesite em entrar em contato comigo via
QQ 157621271
WECHAT ID DAIJUN_1234.
O QQ Group também está disponível 362112175. (Mensagem de verificação de preenchimento com Lotou )
Twitter @sydnash1
Conselhos e geeks são sempre bem -vindos.
Use etcd como serviço de serviço.
Use nats como diliver de mensagem do nó.