完美国际私服面向世界科技前沿,面向国家重大需求,面向国民经济主战场,率先实现完美国际私服科学技术跨越发展,率先建成国家创新人才高地,率先建成国家高水平科技智库,率先建设国际一流完美国际私服科研机构。 ——「武汉加油 中国加油」
您所在的位置:首页 > 完美世界 > 正文

完美世界服务端大概介绍

作者:admin 来源: 日期:2017-5-19 12:47:32 人气:46 加入收藏 标签:

一.AU服务器的安装配置


1.Java环境安装配置

    AU的 manager和auth机器需要安装java环境。

    将java.tar.gz解压至/usr/目录下编辑/root/.bash_profile(参见bash_profile)加入以下几行:


    PATH=$PATH:/usr/java/jdk1.5.0_05/bin

    export CLASSPATH=.:/usr/java/jdk1.5.0_05/lib/dt.jar:/usr/java/jdk1.5.0_05/lib/tools.jar

    export JAVA_HOME=/usr/java/jdk1.5.0_05

    

    安装au database需要的JDBC库并将库文件加入到/root/.bash_profile中的CLASSPATH配置项中。


2.CA认证配置和hostname-ip配置

    将ssl.tar.gz 解压至manager:/etc/目录下。

    

    在/etc/hosts文件加入一行:

    aumanager_ipaddress        aumanager

    其中aumanager_ipaddress为aumanager的内部IP地址。

    

    修改manager:/export/auth/etc/hosts和auth:/etc/hosts加入一行:

    aumanager_ipaddress        manager

    其中aumanager_ipaddress为aumanager的内部IP地址。


3.帐号数据库的创建

    创建帐号数据库根据mssql_table.sql和mssql_storeprocedure.sql示例文件创建数据库表和存储过程。


4.配置文件修改

    修改好table.xml文件中关于帐号数据库连接的部分。将修改好的table.xml复制到manager:/etc/目录/export/auth/etc/目录和auth:/etc/目录下。

    修改gmopgen.xml文件中关于各游戏服务器的属性。将修改好的gmopgen.xml复制到manager:/etc/目录下。    (/etc/gmopgen.xml是服务器列表配置文件该文件需要根据游戏服务器的增添来添加和修改XML中的zone项必须准确填写id(服务器ID唯一标识该服务器与游戏服务器中gdeliveryd的相应设置要一样),aid(计费区ID与游戏服务器中gdeliveryd的相应设置要一样一般情况下免费版所有服务器都使用同一个计费区ID),name(服务器名称),url(访问游戏服务器对外接口的webservice url)四个属性。)

    将authd.conf文件复制到/export/auth/etc/目录和auth:/etc/目录下。

    将GMServer.conf文件修改相应IP配置信息和密钥配置信息后复制到manager:/etc/目录下。


5.Authd服务安装启动

    解压cauthd.tar.gz至auth:/root/目录进入cauthd/build目录确认java环境配置正常后台运行

    #./authd &

    如果工作正常不会有Exception输出到屏幕。常见的错误可能是找不到JDBC类文件或者未正常连接数据库。然后按Ctrl+D退出会话authd在后台继续运行。

    authd是一个脚本它会启动一个java进程并监视该java进程如果java进程被杀掉10秒后会自动再起一个。

    所以重起Authd服务只需在auth机器上执行killall -9 java。

    如果要彻底关闭Authd服务则先执行killall -9 authd再执行killall -9 java。


6.Tomcat安装配置及GMServer安装

    将jakarta-tomcat-5.5.9.aumanager.tar.gz解压至/usr/local/目录

    运行/usr/local/jakarta-tomcat-5.5.9/bin/startup.sh启动tomcat。

    在aumanager上运行killall -9 java可以关掉tomcat进程。

    

    将/usr/local/jakarta-tomcat-5.5.9/webapps/目录下内容清空将GMServer.war和monitor.war文件复制到/usr/local/jakarta-tomcat-5.5.9/webapps/目录下重起tomcat。这时可以访问https://aumanager-ipaddress/monitor页面。

    查看tomcat的输出文件/usr/local/jakarta-tomcat-5.5.9/logs/catalina.out看是否正常工作。


7.检测Au是否正常工作

    在auth机器上启动authd在manager机器上启动tomcat。然后检测以下项目是否正常工作。

    1)在auth机器上执行netstat –antp命令查看java进程是否在LISTEN 29200端口该端口会接收来自各游戏服务器delivery的连接。查看java进程是否有到数据库机器的连接示例中对于MSSQL Server的缺省配置应该有1433端口的连接。

    2)在manager机器上查看/export/logs/world2.syslog该文件为auth机器上的authd的日志输出。正常工作时如果该文件没有变动说明日志没有传输过来需要检查cauthd/build/log4j.properties配置文件auth机器能否解析manager的ipauth和manager的syslog是否工作正常。

    3)查看tomcat的输出文件/usr/local/jakarta-tomcat-5.5.9/logs/catalina.out看是否正常工作tomcat中工程重要的日志信息会被同时输出到/export/logs/world2.java文件中。查看该日志文件是否工作正常。

    4)访问https://aumanager-ipaddress/monitor页面测试各项功能是否正常。

    5)配置logrotate。编辑manager:/etc/logrotate.d/syslog文件可以配置/export/logs/world2.java和/export/logs/world2.syslog文件的滚动。建议world2.syslog每日滚动一次保存1周;world2.java每周滚动一次保存一年。Tomcat的日志文件catalina.out也会变大建议每周滚动一次。保存3周。

    6)定期检查manager的硬盘空间使用情况。


二.游戏服务器配置和管理


1.服务结构图


2.游戏配置发布和管理

    1)游戏配置在/home/super/update/config目录下配置好相应的xml文件(xml配置文件在c.xml基础上修改即可)后修改link1机器IP和使用的xml配置文件对应表/home/super/update/config/ip_xml.conf在发布时发布程序package可以根据link1机器IP自动找到本组服务器对应的xml文件。

    2)游戏发布:

    #/home/super/update/cpackage/package –-gameinstall

或者指定xml配置文件:

    #/home/super/update/cpackage/package ../config/c.xml gameinstall

游戏发布完后已经启动好。

    3)游戏启动(同iweb管理页面中的“修复启动”):

    #servicerun –start

    过一会后即可将servicerun进程杀掉#killall -9 servicerun

    4)游戏关闭:

    #servicerun –stop

    过一会后即可将servicerun进程杀掉#killall -9 servicerun


3.检测游戏服务器是否正常工作

    1)database机器:ps aux命令检查gamedbd进程是否存在;netstat –antp命令检查gamedbd是否在监听29400端口;检查/dbf/目录下是否有dbhome目录或者dbhomewdb目录。

    2)link机器:ps aux命令检查glinkd进程是否存在;netstat –antp命令检查glinkd是否在监听29000端口检查glinkd与delivery机器和各台game机器是否有连接。

    3)delivery机器:ps aux命令检查gdeliveryd和gacd进程是否存在;netstat –antp命令检查与au是否正常连接(29200)端口与角色数据库是否正常连接(29400端口)与唯一名服务器是否正常连接(29401端口)。如果与au和唯一名服务器未连接(SYN_SENT状态)检查delivery的防火墙(iptables –L -nv)以及au唯一名服务器是否正常启动。

    4)game机器:ps aux命令检查gs进程是否存在。

    5)backup机器:如果在该服启动了唯一名服务则ps aux命令检查uniquenamed进程是否存在查看/export/目录下是否有uname目录。检查数据备份是否正常backup:/export/backup目录和backup:/export/unamebackup目录正常情况下每小时一个备份。

    6)定期检查managerdatabasebackup的硬盘空间使用情况。


4.数据备份

    角色数据库备份在backup:/export/backup目录下每个备份一个目录目录名即是备份时间每小时一个该备份为全备份可以定期复制到其他机器做容灾备份。唯一名服务的数据备份在backup:/export/unamebackup/目录下每个备份一个目录目录名即是备份时间每小时一个也是全备份。


三.管理页面


1.访问管理页面的人员需要安装个人证书安装在windows机器上双击world2_ca.cer安装 安装时选择安装到 “受信任的根证书颁发机构”里。(这个证书可以不安装如果不安装每次访问页面会弹出信任确认的对话框)。


    双击world2_iwebmanage.p12 安装密码: wanmeishikong 。安装该证书可以访问

https://gamemanager/iweb/manage 页面和 https://gamemanager/cricket 页面执行管理和监控。


    双击world2_iwebrole.p12 安装密码: wanmeishikong 。安装该证书可以访问

https://gamemanager/iweb/role 页面可以修改角色信息等。也可以访问https://aumanager/monitor页面可以简易创建帐号充值。


四.编程接口


1.GMServer提供的 webservice接口说明


    接口类UserServiceInterface(url是http://aumanager/GMServer/userservice)和接口类ServiceInterface(url是http://aumanager/GMServer/gmservice)提供的接口详细说明参见文件cGMServer/src/common/interface.xml。


    (高级功能:如果要增加或者修改接口可以修改cGMServer/src/common/interface.xml文件然后运行cGMServer/src/common目录下的gen脚本生成相应接口类并完成在cGMServer/src/service目录下的实现类代码。)


    (高级功能:协议描述文件cGMServer/src/config.xml定义了GMServer和Authd之间通信的协议主要包括踢用户下线修改密码划拨金元宝几个接口。接口实现文件在cGMServer/src/protocal目录下。)


    数据库描述文件/etc/table.xml定义了数据库表查询存储过程以及数据库服务器连接配置。


    权限和服务器列表/etc/gmopgen.xml配置文件也是GMServer.war来读取的。


    GMServer项目文件修改后需在cGMServer/目录下执行ant命令编译发布到cGMServer/dist目录下生成GMServer.war文件。


2.划拨金元宝接口方案一


    玩家充值时直接调用web service接口useCash。注意每次调用该接口都会直接怎增加玩家的金元宝不管返回值是多少。如果某笔充值调用后没有返回或者返回-1,-2需要中止全部充值服务进行检查。返回-1和-2是不应该出现的如果出现很可能是数据库连接已断开充值服务需要中止。


    接口如下所示:

    /**

    * method useCash

    * 划拨金元宝调用该接口即为帐号划拨金元宝返回0表示已经划拨完毕返回其他值表示正在划拨队列中其中返回-1或-2表示可能有错误需要人工检查原因。每笔划拨该接口不管返回何值都不需要重复调用否则会重复划拨。

    *

    * @param username : 用户名

    * @param zoneid : 服务器ID

    * @param aid : 计费区ID

    * @param cash : 划拨的金元宝个数乘以100

    * @param loginfo : 调用者信息

    */

    public int useCash( String username, Integer zoneid, Integer aid, Integer cash,

                LogInfo loginfo);


3.划拨金元宝接口方案二

    

    使用webservice 接口useCashInform。该方案过程是充值时先调用存储过程将每笔金元宝划拨放入队列中然后调用useCashInform接口将该笔充值迅速划拨(如果不调用useCashInform该笔划拨会在5分钟后自动处理)。

    步骤一:存储过程调用


    // 调用存储过程adduserpoint成功调用后继续执行否则中止划拨失败。

    adduserpoint userid, aid, cash*90


    //调用存储过程 usecash调用被执行后(不管参数中返回的error代码是多少)则金元宝已在划拨队列中。

    //该队列每5分钟会被自动处理。

    //usecash存储过程被执行后如果参数中返回的error为0时则调用web service接口useCashInform参数必须一致。

    usecash userid, zoneid, 0, aid, cash*90, cash, 1


    步骤二:useCashInfrom调用

    useCashInform接口如下所示:

    /**

    * method useCashInform

    * 划拨金元宝通知。返回结果含义同useCash。该接口为useCash接口的备选方案。使用useCashInform会使系统更健壮降低出错概率。调用该接口前需要调用adduserpoint存储过程和usecash存储过程。调用完adduserpoint和usecash存储过程之后金元宝划拨已经放入队列调用useCashInform只是为了更快的将队列中的该笔信息划拨每笔划拨useCashInform只能调用一次调用多次会出现错误。

    *

    * @param userid : 用户ID

    * @param zoneid : 服务器ID

    * @param aid : 计费区ID

    * @param cash : 划拨的金元宝个数乘以100

    * @param loginfo : 调用者信息

    */

    public int useCashInform( Integer userid, Integer zoneid, Integer aid, Integer cash,

                LogInfo loginfo);


4.Iweb webservice接口


    iweb webservice接口是游戏服务器对外提供的控制游戏和设定参数的编程接口接口在类ciweb/src/com/goldhuman/service/interfaces/GMService.java中定义。提供的接口详细说明参见文件ciweb/src/com/goldhuman/service/interfaces/interface.xml。

    

    (高级功能:如果需要增加新接口或者修改现有接口参数和返回值可以修改接口定义文件ciweb/src/com/goldhuman/service/interfaces/interface.xml然后运行同一目录下的gen脚本生成相应接口类并完成在ciweb/src/com/goldhuman/service/GMServiceImpl.java文件中的实现类代码。)

    

    Iweb项目文件修改后需在ciweb/目录下执行ant命令编译发布到ciweb/dist目录下生成iweb.war文件


转自其他论坛,真实性有待考察,但是好象架设起来应该没有这么难,看起来挺复杂的,什么东西都是看着难,做起来容易看着容易,做起来难,希望大家多动动手和脑


    本文网址:http://www.lzddgc.com/ji/wanmeisf/186.html
    读完这篇文章后,您心情如何?
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0