Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:serveur_tour [2015/08/05 20:36] – [Quelques définition préalables ] Deedfr:serveur_tour [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Serveur Khanat - Tour d'horizon ======+====== Serveur OpenNeL Khanat - Tour d'horizon ======
  
-Note préalable : notre serveur de jeu utilisant « RyzomCore », toute la documentation qui s'y rapporte s'applique également à notre serveur de jeu : www.ryzomcore.org.+Note préalable : notre serveur de jeu utilisant RyzomCore / OpenNeL, toute la documentation qui s'y rapporte s'applique également à notre serveur de jeu : www.ryzomcore.org.
 \\ La page d'index alphabétique de leur wiki permet de trouver bon nombre d'informations utiles, de tutoriels (en anglais exclusivement par contre) : https://ryzomcore.atlassian.net/wiki/display/RC/Reference+Guides \\ La page d'index alphabétique de leur wiki permet de trouver bon nombre d'informations utiles, de tutoriels (en anglais exclusivement par contre) : https://ryzomcore.atlassian.net/wiki/display/RC/Reference+Guides
  
Ligne 9: Ligne 9:
   * **Serveur** :  par //serveur// on se réfère à la machine physique sur laquelle tourne notre univers. Un abus de langage fait qu'on utilise aussi le terme serveur pour parler des programmes/services du jeu tournant dessus.   * **Serveur** :  par //serveur// on se réfère à la machine physique sur laquelle tourne notre univers. Un abus de langage fait qu'on utilise aussi le terme serveur pour parler des programmes/services du jeu tournant dessus.
   * **Shard** :  C'est une instance de l'univers de jeu. Chaque instance est indépendante (ex : Aniro et Aristopole anciennement sur Ryzom) et représente un monde dans lequel circulent les joueurs. (note : on peut faire tourner deux //shards// sur un même serveur)   * **Shard** :  C'est une instance de l'univers de jeu. Chaque instance est indépendante (ex : Aniro et Aristopole anciennement sur Ryzom) et représente un monde dans lequel circulent les joueurs. (note : on peut faire tourner deux //shards// sur un même serveur)
-  * **Service** : Un service est un programme qui s'exécute sur le serveur. L'univers de jeu est géré entièrement par une dizaine  de services qui se partagent des tâches : par exemple le service //AI// gère les mobs tandis que le service //IOS// gère les canaux de Chats. Ces services s'exécutent sur le serveur, mais on peut les distribuer sur plusieurs machines avec même des OS différents (windows+linux par exemple).+  * **Service** : Un service est un programme qui s'exécute sur le serveur. L'univers de jeu est géré entièrement par une dizaine  de services qui se partagent des tâches : par exemple le service //AI// gère les mobs tandis que le service //IOS// gère (entre autres) les canaux de chat. Ces services s'exécutent sur le serveur, mais on peut les distribuer sur plusieurs machines avec même des OS différents (un service sous windows + un autre sous GNU/Linux par exemple).
  
  
-Dans notre cas, notre premier serveur unique, une machine virtuelle dénommée « kh-dev », fonctionnait sous Debian Squezze 7 et installé sur un véritable serveur physique : « ninm.net ». +Dans notre cas, notre premier serveur unique, une machine virtuelle dénommée « kh-dev », fonctionnait sous Debian 6 (Squeeze) et était installée sur un véritable serveur physique : « ninm.net ». 
-Notre deuxième serveur tournera sur debian bientot.+Notre second serveur tourne sous debian 8 (Jessie) et notre troisième est une machine virtuelle sous debian 8 aussi.
  
 ===== Lancement et arrêt des services du jeu ===== ===== Lancement et arrêt des services du jeu =====
Ligne 30: Ligne 30:
 ===== Les services ===== ===== Les services =====
  
-Il y a 23 services comme le montre l'affichage du dossier des binaires de ryzom core. Cependant,ils ne sont pas tous utiles pour faire tourner un jeu +Il y a 23 services comme le montre l'affichage du dossier des binaires de ryzom core. Cependant, ils ne sont pas tous utiles pour faire tourner un jeu :
  
   khanat@kh-dev:~$ ls ryzomcore/code/build/bin/ryzom_*   khanat@kh-dev:~$ ls ryzomcore/code/build/bin/ryzom_*
Ligne 60: Ligne 60:
 Détail des services : Détail des services :
  
-  * **AES** (//Admin Executor Service//) : Ce service permet de lancertuer les autres services et permet également de collecter des informations sur les différents services __de la  machine sur lequel il tourne__.+  * **AES** (//Admin Executor Service//) : Ce service permet de lancer et tuer les autres services ainsi que de collecter des informations sur les différents services __de la machine sur lequel il tourne__.
   * **AS** (//Admin Service//) : Lorsque les services sont répartis sur plusieurs machines, il existe alors un service d'administration unique //AS// qui coordonne tous les //AES// et permet de leur envoyer des commandes.    * **AS** (//Admin Service//) : Lorsque les services sont répartis sur plusieurs machines, il existe alors un service d'administration unique //AS// qui coordonne tous les //AES// et permet de leur envoyer des commandes. 
   * **AIS** (//AI Service//) : Le but de ce service est de gérer les IA du monde (le comportement des mobs). Un service //AIS// est responsable d'une zone géographique. Par exemple sur Ryzom, il y a six services //AIS// qui tournent : un par continent.   * **AIS** (//AI Service//) : Le but de ce service est de gérer les IA du monde (le comportement des mobs). Un service //AIS// est responsable d'une zone géographique. Par exemple sur Ryzom, il y a six services //AIS// qui tournent : un par continent.
-  * **BMS** (//Backup Manager Service//) : Ce service gère le chargement/sauvegarde des données des joueurs. Ces données sont sauvées su le disque dans un format d'archivage. Chaque //shard// a deux services //BMS// : un maitre et un second en mode esclave. +  * **BMS** (//Backup Manager Service//) : Ce service gère le chargement et la sauvegarde des données des joueurs. Ces données sont sauvées sur le disque dans un format d'archivage. Chaque //shard// a deux services //BMS// : un maitre et un esclave. 
-  *  **EGS** (//Entities Game Service//) : raison d'un service //EGS// par //shard//, ce service  gère l'état de chaque avatar, les missions, les items, les guildes, les règles du jeu, etc.  C'est un service central et sans lui le jeu ne peut tourner. +  *  **EGS** (//Entities Game Service//) : À raison d'un service //EGS// par //shard//, ce service  gère l'état de chaque avatar, les missions, les items, les guildes, les règles du jeu (ex: sorts, combat, récolte, craft, etc).  C'est un service central et sans lui le jeu ne peut tourner. 
-  * **GPMS** (//Global Position Manager Service//) : raison d'un par //shard// il connaît la position de chaque entité (avatar, mobs, etc...) et traite les collisions. +  * **GPMS** (//Global Position Manager Service//) : À raison d'un par //shard// il connaît la position de chaque entité (avatar, mobs, etc.), détermine qui voit qui pour donner l'information au //FES//, et traite les collisions. 
-  * **IOS** (//Input Output Service//) : raison d'un par //shard// c'est ce service qui s'occupe des canaux du chats, de tous les textes affichés ainsi que leurs versions locales (traduction).  +  * **IOS** (//Input Output Service//) : À raison d'un par //shard// c'est ce service qui s'occupe des canaux du chat, de tous les textes affichés ainsi que leurs versions locales (traduction).  
-  * **NS** (//Naming Service//) : raison d'un par //shard// c'est un service purement réseau dont le rôle est de coordonner les autres services. Il garde une liste de chaque service lancé, son port, etc. C'est une sorte de "//pages jaunes//", //DNS// dirions-nous dans le jargon informatique. +  * **NS** (//Naming Service//) : À raison d'un par //shard// c'est un service purement réseau dont le rôle est de coordonner les autres services. Il garde une liste de chaque service lancé, le port sur lequel il écoute, etc. C'est une sorte de "//pages jaunes//", //DNS// dirions-nous dans le jargon informatique. 
-  * **WS** (//Welcome Service//) : raison d'un par //shard//, il s'occupe du processus de connexion et d'authentification du joueur avant de le renvoyer vers le service //FES// de son shard. +  * **WS** (//Welcome Service//) : À raison d'un par //shard//, il s'occupe du processus de connexion et d'authentification du joueur avant de le renvoyer vers le service //FES// de son shard. 
-  * **TS** (//Tick Service//) : raison d'unpar //shard// c'est un service très simplee qui gère le temps jeu (date/heure) et permet la synchronisation de tous les services. +  * **TS** (//Tick Service//) : À raison d'un par //shard// c'est un service très simple qui gère le temps jeu (date/heure) et permet la synchronisation de tous les services. 
-  * **MS** (//Mirror Service//) : raison d'un par serveur, ce service utilise la « //mémoire partagée// » et synchronise les données entres tous les __serveurs__ afin que les services puissent accéder aux informations de jeu.+  * **MS** (//Mirror Service//) : À raison d'un par serveur, ce service utilise la « //mémoire partagée// » et synchronise les données entres tous les __serveurs__ afin que les services puissent accéder aux informations de jeu.
   * **SU** (//Shard Unifier Service//) : Service unique, il s'occupe de fonctions non spécifiques à un shard comme la téléportation d'un joueur d'un shard à un autre, et il gère aussi le processus de connexion des joueurs.   * **SU** (//Shard Unifier Service//) : Service unique, il s'occupe de fonctions non spécifiques à un shard comme la téléportation d'un joueur d'un shard à un autre, et il gère aussi le processus de connexion des joueurs.
-  * **FES** (//Front End Service//) : Un ou plusieurs par shard, ce service est celui qui gère le client de jeu. Toutes les communications du client passe par ce service qui route ensuite ces communications vers les bons services. S'il y a plus d'un service //FES// pour un //shard//  alors les connections sont réparties de manière uniforme entres les différents  //FES//(Question : Cela permet donc de répartir la charge entres plusieurs  +  * **FES** (//Front End Service//) : Un ou plusieurs par //shard//, ce service est celui qui gère le client de jeu, en lui envoyant les événements mais aussi en calculant quels changements de propriétés lui envoyer sans saturer la bande-passante. Toutes les communications en provenance du client passent par ce service qui route ensuite ces communications vers les bons services. S'il y a plus d'un service //FES// pour un //shard//  alors les connections sont réparties de manière uniforme entres les différents //FES// (ndmround-robin ?). Cela permet donc de répartir la charge entres plusieurs machines si nécessaire. 
-  * **SBS** (//Session Browser Service//) : Similaire à  //FES//, il gère les sessions Rings.+  * **SBS** (//Session Browser Service//) : Similaire à  //FES//, il gère les sessions Ring.
   * **MFS** (//Mail Forum Service//) : Web IG ?   * **MFS** (//Mail Forum Service//) : Web IG ?
   * **LGS** (//LogGer Service//) : Service de Log ?   * **LGS** (//LogGer Service//) : Service de Log ?
   * **DSS** (//Dynamic Scenario Service//) : Ring ?   * **DSS** (//Dynamic Scenario Service//) : Ring ?
-  * **PDSS** (//Persistent Data Service//) : Ce service crée de archives pour backuper de manière régulière les fichiers contenant les informations des avatars. Il est aussi capable d'extraire certaines inforamtion pour générer des stats sur les joueurs. Non utilisé.+  * **PDSS** (//Persistent Data Service//) : Ce service crée des archives pour sauvegarder de manière régulière les fichiers contenant les informations des avatars. Il est aussi capable d'extraire certaines informations pour générer des stats sur les joueurs. Non utilisé.
   * **MOS** (//MOnitor Service//) (non utilisé)    * **MOS** (//MOnitor Service//) (non utilisé) 
-  * **LAS** (//Log Analyser Service//) (non utilisé) +  * **LAS** (//Log Analyzer Service//) (non utilisé) 
   * **RBS** (//Reference Builder Service//) (non utilisé)    * **RBS** (//Reference Builder Service//) (non utilisé) 
  
 +===== Liste des ports =====
 +
 +  * admin_service.cfg
 +    * WebPort = 49995
 +  * login_service.cfg
 +    * WSPort = 49999
 +    * WebPort = 49998
 +    * ClientsPort = 49997
 +  * admin_executor_service.cfg
 +    * ASPort="46701"
 +  * admin_service.cfg
 +    * ASWebPort="46700"
 +    * ASPort="46701"
 +  * ai_service.cfg
 +    * SUPort = 50505
 +  * backup_service.cfg
 +    * WebPort = 49970
 +    * ListeningPort = 49990
 +    * WebPort = 49898
 +    * L3BSPort = "49950"
 +  * common.cfg
 +    * AESPort="46702"
 +  * dynamic_scenario_service.cfg
 +    * ASWebPort="46700"
 +    * ASPort="46701"
 +    * AESPort="46702"
 +    * SUPort = 50505
 +    * SUGlobalPort = 50503
 +    * L3BSPort = "49950"
 +    * L3SlaveBSPort = "49951"
 +    * L3MasterLGSPort = 49992
 +    * LGSBSPort = 49994
 +    * L3LGSBSPort = 49995
 +    * BasePort = 51400
 +  * entities_game_service.cfg
 +    * AESPort="46702"
 +    * SUPort = 50505
 +    * SUGlobalPort = 50503
 +    * L3MasterLGSPort = 41292
 +    * L3SlaveLGSPort = 49993
 +  * frontend_service.cfg
 +    * FSUDPPort = 47851
 +  * input_output_service.cfg
 +    * AESPort="46702"
 +    * SUPort = 50505
 +    * SUGlobalPort = 50503
 +    * L3MasterLGSPort = 41292
 +    * L3SlaveLGSPort = 49993
 +  * logger_service.cfg
 +    * LGSL3Port = 41292
 +  * naming_service.cfg
 +    * BasePort = 51000
 +  * session_browser_server.cfg
 +    * SBSPort = 48851
 +  * shard_unifier_service.cfg
 +    * SUGlobalPort = 50503
 +  * welcome_service.cfg
 +    * SUPort = 50505
 +
 +<hidden>jeanluc@tomate:~/ryzomcore$ rgrep Port code/*/*/*.cfg
 +code/nelns/admin_service/admin_service.cfg:WebPort = 49995;
 +code/nelns/login_service/login_service.cfg:WSPort = 49999; // port for the welcome service connection (default is 49999)
 +code/nelns/login_service/login_service.cfg:WebPort = 49998; // port for the web server (default 49998)
 +code/nelns/login_service/login_service.cfg:ClientsPort = 49997; // port for the clients connection (default 49997)
 +code/ryzom/server/admin_executor_service.cfg:ASPort="46701";
 +code/ryzom/server/admin_executor_service.cfg: "gw_aes.transportCmd aes_l3c(connect addr="+AESHost+":"+AESPort+")",
 +code/ryzom/server/admin_executor_service.cfg: "asc_gw.transportCmd l3c(connect addr="+ASHost+":"+ASPort+")",
 +code/ryzom/server/admin_executor_service.cfg: "aes_gw.transportCmd l3s(open port="+AESPort+")",
 +code/ryzom/server/admin_service.cfg:ASWebPort="46700";
 +code/ryzom/server/admin_service.cfg:ASPort="46701";
 +code/ryzom/server/admin_service_default.cfg://ASWebPort="46700";
 +code/ryzom/server/admin_service_default.cfg://ASPort="46701";
 +code/ryzom/server/admin_service_default.cfg: "moduleManager.createModule AdminService as webPort="+ASWebPort,
 +code/ryzom/server/admin_service_default.cfg: "as_gw.transportCmd l3s(open port="+ASPort+")",
 +code/ryzom/server/ai_service.cfg:SUPort = 50505;
 +code/ryzom/server/ai_service.cfg:SUAddress = SUHost+":"+SUPort;
 +code/ryzom/server/backup_service.cfg:WebPort = 49970;
 +code/ryzom/server/backup_service_default.cfg:ListeningPort = 49990;
 +code/ryzom/server/backup_service_default.cfg:WebPort = 49898;
 +code/ryzom/server/backup_service_default.cfg:// Port for the Layer 3 interface of the backup service
 +code/ryzom/server/backup_service_default.cfg:L3ListeningPort = 49950;
 +code/ryzom/server/backup_service_interface.cfg:L3BSPort = "49950";
 +code/ryzom/server/common.cfg:AESPort="46702";
 +code/ryzom/server/common.cfg: "gw_aes.transportCmd aes_l3c(connect addr="+AESHost+":"+AESPort+")",
 +code/ryzom/server/dynamic_scenario_service.cfg:ASWebPort="46700";
 +code/ryzom/server/dynamic_scenario_service.cfg:ASPort="46701";
 +code/ryzom/server/dynamic_scenario_service.cfg:AESPort="46702";
 +code/ryzom/server/dynamic_scenario_service.cfg:SUPort = 50505;
 +code/ryzom/server/dynamic_scenario_service.cfg:SUGlobalPort = 50503;
 +code/ryzom/server/dynamic_scenario_service.cfg:L3BSPort = "49950";
 +code/ryzom/server/dynamic_scenario_service.cfg:L3SlaveBSPort = "49951";
 +code/ryzom/server/dynamic_scenario_service.cfg:L3MasterLGSPort = 49992;
 +code/ryzom/server/dynamic_scenario_service.cfg:LGSBSPort = 49994;
 +code/ryzom/server/dynamic_scenario_service.cfg:L3LGSBSPort = 49995;
 +code/ryzom/server/dynamic_scenario_service.cfg:"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
 +code/ryzom/server/dynamic_scenario_service.cfg:SUAddress = SUHost+":"+SUPort;
 +code/ryzom/server/dynamic_scenario_service.cfg:BasePort = 51400;
 +code/ryzom/server/entities_game_service.cfg:AESPort="46702";
 +code/ryzom/server/entities_game_service.cfg:SUPort = 50505;
 +code/ryzom/server/entities_game_service.cfg:SUGlobalPort = 50503;
 +code/ryzom/server/entities_game_service.cfg:L3MasterLGSPort = 41292;
 +code/ryzom/server/entities_game_service.cfg:L3SlaveLGSPort = 49993;
 +code/ryzom/server/entities_game_service.cfg:SUAddress = SUHost+":"+SUPort;
 +code/ryzom/server/entities_game_service_default.cfg: "glob_gw.transportCmd l3c(connect addr="+SUHost+":"+SUGlobalPort+")",
 +code/ryzom/server/entities_game_service_default.cfg: "lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
 +code/ryzom/server/entities_game_service_default.cfg: "lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")",
 +code/ryzom/server/frontend_service.cfg:FSUDPPort = 47851;
 +code/ryzom/server/frontend_service_default.cfg://FrontendPort = 47851;
 +code/ryzom/server/frontend_service_default.cfg:ListenAddress = FSListenHost+":"+FSUDPPort;
 +code/ryzom/server/input_output_service.cfg:AESPort="46702";
 +code/ryzom/server/input_output_service.cfg:SUPort = 50505;
 +code/ryzom/server/input_output_service.cfg:SUGlobalPort = 50503;
 +code/ryzom/server/input_output_service.cfg:L3MasterLGSPort = 41292;
 +code/ryzom/server/input_output_service.cfg:L3SlaveLGSPort = 49993;
 +code/ryzom/server/input_output_service.cfg:SUAddress = SUHost+":"+SUPort;
 +code/ryzom/server/input_output_service_default.cfg: "glob_gw.transportCmd l3c(connect addr="+SUHost+":"+SUGlobalPort+")",
 +code/ryzom/server/input_output_service_default.cfg: "lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
 +code/ryzom/server/input_output_service_default.cfg: "lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")",
 +code/ryzom/server/logger_service.cfg:LGSL3Port = 41292;
 +code/ryzom/server/logger_service.cfg:"lgs_gw.transportCmd l3s(open port="+ LGSL3Port +")",
 +code/ryzom/server/naming_service.cfg:BasePort = 51000;
 +code/ryzom/server/session_browser_server.cfg:SBSPort = 48851;
 +code/ryzom/server/session_browser_server.cfg:"moduleManager.createModule SessionBrowserServerMod sbs suAddr="+SUHost+":49999 listenPort="+SBSPort+" ring_db(host="+DBHost+" user="+DBRingUser+" password="+DBRingPass+" base="+DBRingName+")",
 +code/ryzom/server/shard_unifier_service.cfg:SUGlobalPort = 50503;
 +code/ryzom/server/shard_unifier_service_default.cfg:    "glob_gw.transportCmd l3s(open port="+SUGlobalPort+")",
 +code/ryzom/server/welcome_service.cfg:SUPort = 50505;
 +code/ryzom/server/welcome_service.cfg:SUAddress = SUHost+":"+SUPort;
 +</hidden>
  
 {{tag>Outils}} {{tag>Outils}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/serveur_tour.1438799775.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact