使用XML轻量级数据库进行服务器开发(Unity项目C#服务器)

3回答

使用XML轻量级数据库进行服务器开发(Unity项目C#服务器)

提问者 低头/再也看不见... 2017-12-07 673浏览
现在我知道了C#服务器使用的是C#缓存池技术,我新的疑问就是使用缓存池技术是减少从数据库获取数据的次数,那就得使用XML文件来存储数据嘛
-----------------------------------------
1、xml的局限性,使得它能作为商业项目的服务器嘛
2、C#服务器之前还有一层Java服务器,用来做数据采集,数据传递采取的模式为,Java服务器隔一段时间,采集一次数据,c#服务器隔一段时间向java服务器请求一层数据,客户端同样是间隔请求,既然采取这种模式的话,那是不是把中间的C#服务器去掉更好,由Java服务器采集数据,并处理客户端请求,这样子数据更新是不是更快,C#服务器从Java取得数据写入XML,再从XML文本读出传递给客户端
3、使用XML存储数据,那么是不是对运维的后端很。。。目前控制端也是新建了一个Unity项目,通过像服务器发送请求获取数据来进行控制。XML的性能那么差,扛得住??我担心崩溃
4、我对后端的设计深表怀疑

快来消灭0回答吧

{{ dataList.answer_count | view-format }}回答
  • 酸辣酸辣 2017-12-07 14:03
    看你的描述可能是双层服务器?
    java的是数据库服务器,C#的是游戏服务器,为了数据库和逻辑的分离?
    保持高并发?虽然这种设计有,但。。。为何用xml
    另一位打住说的对,如果只是为了xml传递数据方便,还不如直接上json

    2评论
  • Tsai 2017-12-07 13:26
    从你的描述看,大致的需求是客户端(unity)向服务器请求数据。而数据格式目前以xml的方式保存。而且还是unity请->C#->java->DB这样的形式,我想说这个做法完全不能理解。
    首先不知道为何用xml作为数据保存的形式,难道服务器运行起来后会在内存中直接加载所有的xml数据?然后定时写入xml文件中?这样的话如果突然断电或者crash数据不就完蛋了。如果是实时的读写xml文件,那么高并发下IO是问题。
    说实话你这个方案替代办法挺多的,比如数据库的话MySQL或者一些开源的都可以替换,而且数据传输也不是必须xml。xml中有很多无用的数据内容,比如attribute啊、node信息啊。完全可以用json或者protobuf来替换。
    还有就是从你的描述看更像是一个客户端纯粹请求的场景,那么直接用http即可,这样的话直接做一个webapi就可以了,java或者c#均可,没必要搞两层。
    5评论
  • TigerSu 2017-12-13 14:47
           我大概明白了。
           服务器分两部分,一部分负责处理数据(JAVA),一部分负责跟前端交互 (C#)。
           相信负责交互的部分(C#)应该是有在内存中做缓存的,如果做了读的效率问题不大, 而java每个一段时间才写一次数据,说明数据写不频繁。用xml做一个中介应该问题不大。
           采用哪种方案还是要看具体的业务需求。如果你们把中介改成数据库或者内存数据库比如redis应该也是可以的。但是,性能能不能扛得住最好写机器人做压力测试。
    1评论
  • {{ answer.user.NickName }} {{ answer.profession }} {{ answer.created_at | time-format }}
    专家回答
    {{{ answer.answer }}}
    {{ answer.answer_count | view-format }}评论
加载中... 查看更多回答