Friday, November 21, 2014

Jogos online MMORPG arquitetura de servidor

1, estrutura de servidor MMORPG jogos online como um todo, incluindo precoce, médio, alguma arquitetura mainstream atual; Rede de protocolo de rede IO sincronização de transmissão de mensagens de cluster de balanceamento de carga TCP / UDP IP CS distribuído O servidor gateway GateServer pulsação multithreading / pool de threads open source quadro de comunicações de rede / modelo Bloqueio / non-blocking / síncrona / assíncrona Proactor / Reactor / Ator Select / Poll / Epoll / iocp / kqueue Padrões de desenvolvimento de jogos e design / estrutura de dados Curto e longo conexão para conectar o jogo mensagem esconderijo seguro linguagem de script protocolo de codificação Tomada Nagle embalagem stick / truncar / TCP_NODELAY AI / cena sub-line / min mapa servidor MMORPG / open source Três estrutura principal quadro de texto   1. No início arquitetura de servidor MMORPG   Cliente <-> GameServer <-> DB todos os negócios, processamento de dados centralizado     Vantagens: rápido desenvolvimento simples, desvantagens:      1. Todos os negócios em conjunto, aumentando carga no sistema. Um erro pode causar todo o servidor a falhar, resultando em sérias conseqüências para todos os jogadores caiu ainda perdido e assim por diante.      2. O serviço do momento de abertura, todos os jogadores todos empilhados em um Xinshoucun .- >>>> card, cartão de cliente (mesma tela tornando excessivo número / broadcast storm) placa do servidor (o processamento de um grande número de / broadcast storm mesma notícia cena) 2. A médio prazo - Usuário cluster separado                      GameServe1 Cliente | DB                  GameServer2   Jogadores aumentando -> splitter -> Programas de seleção automática ou manual de jogadores para entrar Contras: Operações para a tarde, com a redução de cada linha de jogadores, interativo bastante reduzido. 3. Tarde dados cluster separado       Dividida pelo servidor de mapas, o mainstream atual      Xinshoucun pergunta: "Dragão" fez uma solução melhor, o estabelecimento de uma pluralidade de mapa Xinshoucun paralelo, um mestre multi-par, ao abrir simultaneamente serviço, tanto quanto possível para acomodar o afluxo de novos usuários, de jogadores de alto nível outro mapa Voltar Xinshoucun pode chegar a Xinshoucun principal.   4. A atual arquitetura tradicional jogo online              Nota: Entre GateServer e CenterServer é uma conexão TCP. A conexão entre GameServer e LogServer pode UDP conexões. Este é um diagrama áspero, muitos lugares exigem refinamento.   GateServer: servidor gateway, AgentServer, ProxyServer     vantagens:      (1) Como um ponto de trânsito para as comunicações de rede, responsáveis pela manutenção da rede interna ea rede externa isolada do exterior não podem acessar diretamente o servidor interno, para proteger a segurança, até certo ponto, no servidor de intranet ligar menos ataques.      (2) servidor gateway é responsável por pacotes de análise, criptografia e descriptografia, manipulação de tempo de espera e um certo processamento lógico, para que possa filtrar maus pacotes de antecedência e pacotes ilegais.      (3) programa cliente simplesmente estabelecer uma conexão com o servidor de gateway para entrar no jogo, nenhum outro servidor do jogo para estabelecer múltiplas conexões ao mesmo tempo, economizando programas cliente e servidor sobrecarga de recursos de rede.      (4) Quando os jogadores saltar servidor não precisa se desconectar do servidor gateway, e dados dos jogadores alternar entre diferentes servidores de jogos dentro do comutador de rede, mudar instantânea pediu para completar o trabalho, o jogador é quase imperceptível, o que garante o jogo fluência e boa experiência do usuário.       desvantagens: 1. servidor Gateway torna-se o problema de gargalo de comunicação em caso de elevada carga 2 devido a uma falha de nó único faz com que todo o conjunto de servidor gateway não pode fornecer serviços problemas       Resolução: a tecnologia multi-gateway. Como o nome indica, "multi-porta de entrada" é a presença simultânea de múltiplos servidores de gateway, como um grupo de servidores podem ser configurados três GameGme. Quando a carga é grande, o servidor gateway pode ser aumentada pelo aumento do caudal do gateway de comunicação global, o gateway quando um servidor cair, ele só irá afetar os clientes que se conectam a esse servidor, outros clientes não serão afetados de alguma forma.   DCServer: servidores do data center. A principal função é armazenar em cache os dados de caráter do jogador, para garantir que o papel de dados podem ser lidos rapidamente e salvar CenterServer: servidor servidor / hub global, também chamado WorldServer o principal responsável pela manutenção e dados transmitidos dados de expedição entre o GameServer. Outros sistemas de jogo também pode ser colocado no centro de processamento, tais como o sistema amigo, o sistema de clã.        Melhoria: O servidor de gateway e uma pluralidade de refinamento para LogingateServer GameGateServer.   5. Pressione Negócios clusters separados Porque há um monte de serviços de jogos online, tais como bate-papo, luta, caminhada, NPC, etc., podem ser atribuídos a determinados negócios em um servidor separado. Tais procedimentos vão agilizar muitos de cada servidor. E alguns grande fluxo isolado do negócio, pode efetivamente melhorar o número máximo de servidores de jogos.         vantagens:        1. O negócio de fazer programa separado para cada servidor torna-se fácil, para que você possa reduzir a chance de erros. Até mesmo erros, que não afeta o comportamento de cada uma o jogo inteiro, e substituir o servidor que falhou através rápido iniciar outro servidor de backup.       2. Separação de tráfego tomada de negócios tem sido dispersa, e depois acelerar volta a ser levantada em conformidade.       3. A maioria das empresas são separadas tornou-se um servidor separado, assim você pode adicionar dinamicamente, aumentando assim o número máximo.   Melhor: Você pode até mesmo refinar a função de servidor de destino construção de divisão, selecione o servidor de papel   A arquitetura de servidor de jogo em rede simples e prático   Cada caixa na figura representa um separado componentes processo APP, cada serviço interrupções ocorrer se o processo vai afetar alguns usuários, mas não toda a interrupção do serviço em geral. Após o tempo de inatividade processo de reinicialização, eles podem ser incorporados como um todo, todos os serviços para continuar.         gls: jogo servidor de login, log jogo no servidor, em alguns programas, não é um componente central, gls chamar uma interface externa para nome de usuário básica e autenticação de senha. Além da necessidade de alcançar um número de funções subsidiárias: fila de login (off roupas muito útil), GM Super canal login (GM pode se alinham para entrar no jogo), é ativado durante os usuários beta para controlar, restringir o login do usuário, o controle de versão do cliente e assim por diante. db: essencialmente buffer de memória grande fundo sql, isolando a operações de banco de dados, memória de comparação de dados, apenas a alteração da temporização de dados batch gravação sql. Algoritmo a estabilidade do sistema de desenvolvimento são muito elevados. Centro: Todos os componentes devem se registrar aqui os jogadores online estados de sessão são armazenados centralmente aqui, e cada componente tem uma conexão de pulsação. Todas as interfaces externas estão todos por aqui. Selecione os atores logon após o jogo: a entrada de função gs: servidor do jogo, os principais componentes de um mesmo mapa, todo o jogo funções lógicas relacionadas são feitas aqui. portão: o estabelecimento e os usuários muitas vezes ligar, principalmente para Sockt forwarding, bloqueando pacotes maliciosos, para a proteção gs. Criptografia do protocolo e das funções de decodificação, um portão compartilhando vários gs, reduzir o risco de saltar sobre o mapa não está conectado. IM, relacionamentos, Consignação: que outros componentes responsáveis pela ocorrência do-mapa cruz lógica do jogo global correspondente.   7. Outro gráfico            1- Este é um oleoduto WebService, o usuário ativa a conta do distrito, ou modificar a senha da conta, através deste canal para inserir e atualizar as informações da conta do usuário.      2- É também um WebService tubos, usados para controlar o acesso de usuário para e do papel da informação dentro do grupo, bem como as operações de atualização de pagar tokens de shopping e similares.      3- Este é um local TCP / IP, esta conexão é usado principalmente para o grupo de servidores depois de servidor de registro de login e servidor de login para verificar sua conta, faça o login para o servidor de informações de registro de usuário, bem como uma conta já conseguiu papéis operações de informação (tais arrancou os papéis de pouso atuais), bem como atualização de grupo de servidores da informação (o número atual de jogadores on-line, etc.).      4- É também uma conexão TCP / IP local, essa conexão é usado para se conectar ao cliente GameServer para autenticação, bem como o papel da aquisição de dados, bem como informações muda de volta para os dados sobre o papel GameServer.      5- Esta conexão é também uma conexão TCP / IP local, que é usado para levar a cabo os servidores de informação públicos e entre os servidores de jogos interativos, em troca de algumas informações de classe mundial do jogo (como informações de guild, informações da equipe cruz-service canais de chat inter-serviços, etc.).      6- duas conexões aqui, quero dizer é, UserServer e Agente de GameServer podem ser usados alternadamente, ou seja, após o jogador no grupo, você não precisa mudar Agent. Se você não tem medo de inferno começou, ele também pode contar com servidor de login de agente, para que os usuários não precisam de todo o processo e, em seguida, substituir o agente, reduzir o número de conexões duplicadas, mas também melhorar a estabilidade. (Afinal, menos conexões, e também reduz as chances aparecem servidor Rom) Nesta arquitetura interior, GameServer é realmente uma lógica de jogo complexo, que pode ir para expandir em vários servidores lógicos diferentes para a troca de dados via comum PublicServer.      UserServer ServerGroup realmente desempenhou o papel de um líder, que é responsável pelo registro e informação atualidades grupo LoginServer servidor (o nome, o número atual), ea programação do agente, a escolha dos jogadores do grupo para fornecer uma quantidade mínima de usuários agente. Entretanto, ele também é um papel e as funções do servidor de gerenciamento e envia-lo para a lista atual do cliente de papéis, criar funções, excluir, selecionar outras operações de gestão são realizadas aqui. Além disso, é uma informação do usuário do servidor de validação, GameServer precisar dele para verificar a legitimidade do cliente, bem como atores de aquisição de dados selecionado. Com esta estrutura do jogo, geralmente sob a seguinte expressão.      1- O usuário deve ativar uma grande área, a fim de registrar em suas contas na grande área.      2- quando o usuário inicia o cliente, aparecer uma lander, escolha uma grande área.      3- usuário inicia um verdadeiro cliente quando o início digitar a senha da conta.      Após 4 conta de verificação está completa, área de seleção do servidor.      Após 5- servidor selecção estiver concluída, para o papel de gestão. Enquanto isso, o papel não pode ser compartilhado entre diferentes servidores dentro.

jogos mmorpg