Logo Khaganat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:serveur_tour [2016/12/28 17:59] – [The services] Domperssen:serveur_tour [2021/12/03 19:19] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Khanat server - Overview ======+====== OpenNel Khanat Server - Overview ======
  
-Prerequisite: Our game server uses "RyzomCore", and all related documentation also applies to our game server: www.ryzomcore.org. +Prerequisite: Our game server uses RyzomCore / OpenNeL, and all related documentation also applies to our game server: www.ryzomcore.org. 
-\\ The alphabetical index page of their "wiki's" makes it possible to find a lot of useful information, tutorials(in English exclusively cons): https://ryzomcore.atlassian.net/wiki/display/RC/Reference+Guides+\\ The alphabetical index page of their "wiki's" makes it possible to find a lot of useful information, tutorials: https://ryzomcore.atlassian.net/wiki/display/RC/Reference+Guides
  
 ===== Some previous definitions ===== ===== Some previous definitions =====
  
  
-   * **Server**: by //server// we refer to the physical machine on which our universe rotates. As(an abuse of the languagewe can one also use the term server for talking about the programs/services of the game running it.+   * **Server**: by //server// we refer to the physical machine on which our universe is running. As an abuse of the language we can one also use the term server for talking about the programs/services of the game running it.
    * **Shard**: It is an instance of the game universe. Each instance is independent(ex: Aniro and Aristopole formerly on Ryzom) and represents the world in which players circulate.(Note: you can run two //shards// on the same server)    * **Shard**: It is an instance of the game universe. Each instance is independent(ex: Aniro and Aristopole formerly on Ryzom) and represents the world in which players circulate.(Note: you can run two //shards// on the same server)
    * **Service**: A service is a program that runs on the server. The game universe is managed entirely by a dozen services that share different tasks, for example: the service //AI// manages the mobs while the service //IOS// manages the "chat channels". These services are run on the server, but can be distributed on several machines with even different OS(windows + linux for example).    * **Service**: A service is a program that runs on the server. The game universe is managed entirely by a dozen services that share different tasks, for example: the service //AI// manages the mobs while the service //IOS// manages the "chat channels". These services are run on the server, but can be distributed on several machines with even different OS(windows + linux for example).
  
  
-In our case, (as our first single serve), a virtual machine named "kh-dev" was running Debian Squeeze 7 and installed on a real physical server: "ninm.net". +In our case, (as our first single serve), a virtual machine named "kh-dev" was running Debian Squeeze 7 and installed on a real physical server: "ninm.net". Our second server run on Debian Jessie 8 and our third is a virtual machine also under Debian Jessie 8.
-Our second server __will__ run on debian soon.+
  
 ===== Starting and stopping game services ===== ===== Starting and stopping game services =====
Line 60: Line 59:
 __Details of the services:__ __Details of the services:__
  
-  * **AES** (//Admin Executor Service//): This service allows to launch AND kill the other services, and also to collect information about the various services of the machine(on which it runs).+  * **AES** (//Admin Executor Service//): This service allows to launch and kill the other services, and also to collect information about the various services of the machine where it runs.
  
-  * **AS** (//Admin Service//): When services are spread over several machines, then there's a unique administration service called //AS// which coordinates all //AES// tasks for correct order sending.+  * **AS** (//Admin Service//): When services are spread over several machines, there's a unique administration service called //AS// which coordinates all //AES// tasks for correct order sending.
  
-  * **AIS** (//AI Service//): The purpose of this service is to manage the RN's of the world(mob behavior). An //AIS// service is responsible for a specific geographical area, as for example on Ryzom, there are six //AIS// services running(one for every continent).+  * **AIS** (//AI Service//): The purpose of this service is to manage the AI's of the world(mob behavior). An //AIS// service is responsible for a specific geographical area, as for example on Ryzom, there are six //AIS// services runningone for every continent.
  
   * **BMS** (//Backup Manager Service//): This service manages the loading/saving of the "player data". This data is saved(to the disk) in an special "archive format". Each //shard// has two //BMS// services: one master and one second in slave mode.   * **BMS** (//Backup Manager Service//): This service manages the loading/saving of the "player data". This data is saved(to the disk) in an special "archive format". Each //shard// has two //BMS// services: one master and one second in slave mode.
  
-  * **EGS** (//Entities Game Service//): One //EGS// service per //shard//, this service manages the status of each avatar, missions, items, Guilds, rules of the game(eg, spells, combat, harvest, craft, etc.), etc. It is a central/vital service and without it... the game can NOT RUN!!+  * **EGS** (//Entities Game Service//): One //EGS// service per //shard//, this service manages the status of each avatar, missions, items, Guilds, rules of the game(eg, spells, combat, harvest, craft, etc.), etc. It is a central service and without it the game can't run.
  
-  * **GPMS** (//Global Position Manager Service//): One per //shard//,  it knows the position of each entity(avatar, mobs, etc ...), determines who sees who, and then gives the information to //FES//, it ALSO handles collisions.+  * **GPMS** (//Global Position Manager Service//): One per //shard//,  it knows the position of each entity(avatar, mobs, etc ...), determines who sees who, and then gives the information to //FES//, it also handles collisions.
  
   * **IOS** (//Input Output Service//): One per //shard//, this service takes care of the chat channels, all the texts displayed as well as their different versions(Translation).   * **IOS** (//Input Output Service//): One per //shard//, this service takes care of the chat channels, all the texts displayed as well as their different versions(Translation).
Line 76: Line 75:
   * **NS** (//Naming Service//): One per //shard//, it's a pure "network service" whose role is to coordinate the other services. It keeps a list of each service launched, it's ports, etc.. It's a kind of "//translation page//", //DNS // as we say in computer slang.   * **NS** (//Naming Service//): One per //shard//, it's a pure "network service" whose role is to coordinate the other services. It keeps a list of each service launched, it's ports, etc.. It's a kind of "//translation page//", //DNS // as we say in computer slang.
  
-  * **WS** (//Welcome Service//): One per //shard//, it takes care of the connection process and authentication of the player before returning it to the service //FES//(of the shard).+  * **WS** (//Welcome Service//): One per //shard//, it takes care of the connection process and authentication of the player before returning it to the service //FES//(of his shard).
  
   * **TS** (//Tick Service//): One per //shard//, it is a very simple service that manages the game time(date/time) and allows the synchronization of all services.   * **TS** (//Tick Service//): One per //shard//, it is a very simple service that manages the game time(date/time) and allows the synchronization of all services.
Line 84: Line 83:
   * **SU** (//Shard Unifier Service//): Unique service, it handles functions not specific to the shard, like the teleportation of a player from one shard to another, it also manages the process of player connections.   * **SU** (//Shard Unifier Service//): Unique service, it handles functions not specific to the shard, like the teleportation of a player from one shard to another, it also manages the process of player connections.
  
-  * **FES** //Front End Service//: One or more per shard, this service is the one that manages the game client, sending it the different events but also by calculating properties changes to send to it __without saturating bandwidth.__ All communications from the customer go through this service which then routes those calls to the right services. If there is more than one //FES// service for a //shard//, then the connections are distributed uniformly between the different //FES//. This makes it possible to distribute the load between several machines(if necessary).+  * **FES** (//Front End Service//): One or more per shard, this service is the one that manages the game client, sending it the different events but also by calculating properties changes to send to it __without saturating bandwidth.__ All communications from the customer go through this service which then routes those calls to the right services. If there is more than one //FES// service for a //shard//, then the connections are distributed uniformly between the different //FES//. This makes it possible to distribute the load between several machines if necessary.
  
   * **SBS** (//Session Browser Service//): Similar to //FES//, it handles Rings sessions.   * **SBS** (//Session Browser Service//): Similar to //FES//, it handles Rings sessions.
Line 94: Line 93:
   * **DSS** (//Dynamic Scenario Service//): Ring?   * **DSS** (//Dynamic Scenario Service//): Ring?
  
-  * **PDSS** (//Persistent Data Service//): This service creates archives for regularly do backups of files containing information about avatars. It is also able to extract some information to generate "player stats". Not used!!+  * **PDSS** (//Persistent Data Service//): This service creates archives for regularly do backups of files containing information about avatars. It is also able to extract some information to generate "player stats". Not used.
  
-  * **MOS** (//Monitor Service//) (not used!!)+  * **MOS** (//Monitor Service//)(not used)
  
-  * **LAS** (//Log Analyzer Service//) (not used!!)+  * **LAS** (//Log Analyzer Service//)(not used)
  
-  * **RBS** (//Reference Builder Service//) (not used!!)+  * **RBS** (//Reference Builder Service//)(not used) 
 + 
 +===== 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}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
en/serveur_tour.1482944356.txt.gz · Last modified: 2021/12/03 19:18 (external edit)

Licences Mentions légales Accueil du site Contact