HMX-Server C++ 分步式服务器大版本更新了(有源码)
原文地址:http://www.cnblogs.com/hellohuang/p/6294763.html
# HMX-Server
HMX-Server分步式服务器框架,主要分为网关、登录、世界、场景、数据服务器,适用于大中小型项目
# 安装步骤
1. 下载后,将Source/dependence/下的boost,protobuf里面的lib.rar解压到当前目录
2. 安装Cmake-3.4 x64以上版本,vs2015 x64 ,mysql5.6 x64
3. 用Cmake进行创建方案然后并整个解决方案编译
4. 导入Source/sql/下的hmx-data.sql数据,数据密码配置在Source/WorldServer/serices.xml文件中
5. 在vs中按顺序启动WorldServer.exe、BServer.exe、GameServer.exe、LoginServer.exe、GatewayServer.exe或在Bin/Debug/中双击RunServers.bat启动服务器
5. 在vs中启动Client.exe或在Bin/Debug/双击Client.exe启动客户端进行测试
***
# 运行示例图
**世界服启动**

**数据服**

**场景服**

**登录服**

**网关服**

**客户端**

# 目录介绍
1. Bin/Debug/ 编译存放目录
2. Resource/ 配置及资源目录
3. Source/ 源代码文件
- 1. Client/ 测试客户端
- 2. DBServer/ 数据库处理服
- 3. dependence/ 第三方依赖库
- 4. FlatServer/ 平台方案服(跨平台转发协议用,暂未实现)
- 5. GameServer/ 场景服务器
- 6. GatewayServer/ 网关服务器
- 7. HelpTools/ 工具项目(用于生成数据、处理数据辅助开发用)
- 8. Include/ 共用引入文件
- 9. LibNetMysql/ Mysql数据库封装类库
- 10. LibNetSocket/ Socket封装类库
- 11. LibProtocol/ Protocol协议类目录
- 12. LibSrvcore/ 本项目共用类库
- 13. LoginServer/ 登录服务器
- 14. LogServer/ 日志服务器(数据库日志、暂未实现)
- 15. MQServer/ 消息队列服务器(处理外部可延时事件,持久例事件处理,如充值、后台调用等;暂未实现)
- 16. ShiftServer/ 区域管理服务器(暂未实现)
- 17. sql/ 数据库更新记录目录
- 18. WorldServer/ 世界服务器
4. vc14/ 这个是用cmake 生成的文件目录(名字自定)
# 服务器层级介绍
平台服 <-----------平台服-------->Mysql(管理后台数据库)
|
/ \
区域服1 区域服2
|
/ \ 世界服、数据服、登录服
世界服1 世界服N <------------------------>Mysql(游戏数据库)
/ | \ \
/ | \ | \
/ | \ | \
场景服1 场景服N \ <-> 数据服 <-> 登录服
\ \ | --- /
\ |(世界服) /
\ | /
网关服1 网关服N
# NetSerivce.cpp 总管理器文件
1. 聚合了大部分该服务器的管理类,所有资源都需要从NetSerivce中获得,这样做的目的是将资源都聚合在一起,提供统一接口,方便记忆与管理,比如:你所找要的资源->NetSerivces实例对象->get各个资源类->get所需要的资源
2. NetSerivce也包括了main函数,启动程序的入口
3. serivces.xml配置文件以WorldServer/目录下的为准,当重新编译WorldServer时,会自动将它拷贝到Bin/Debug和vs项目调度目录下
[github]https://github.com/huangzuduan/HMX-Server
HMX-Server C++ 分步式服务器大版本更新了(有源码)的更多相关文章
- 基于Zookeeper的分步式队列系统集成案例
基于Zookeeper的分步式队列系统集成案例 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, ...
- Apple公司Darwin流式服务器源代码分析
当前,伴随着Internet的飞速发展,计算机网络已经进入到每一个普通人的家庭.在这个过程中,一个值得我们关注的现象是:Internet中存储和传输内容的构成已经发生了本质的改变,从传统的基于文本或少 ...
- 10Java Server Pages 隐式对象
Java Server Pages 隐式对象 JSP隐式对象是Web容器加载的一组类的实例,它不像一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象.JSP提供的隐式对象 ...
- Windows Server 2003搭建邮件服务器
Windows Server 2003搭建邮件服务器 由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1 ...
- 转】Mahout分步式程序开发 聚类Kmeans
原博文出自于: http://blog.fens.me/hadoop-mahout-kmeans/ 感谢! Mahout分步式程序开发 聚类Kmeans Hadoop家族系列文章,主要介绍Hadoop ...
- 转】Mahout分步式程序开发 基于物品的协同过滤ItemCF
原博文出自于: http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/ 感谢! Posted: Oct 14, 2013 Tags: Hadoopite ...
- Mahout分步式程序开发 聚类Kmeans(转)
Posted: Oct 14, 2013 Tags: clusterHadoopkmeansMahoutR聚类 Comments: 13 Comments Mahout分步式程序开发 聚类Kmeans ...
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...
- Mahout分步式程序开发 基于物品的协同过滤ItemCF
http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...
随机推荐
- HDU 4006 The kth great number 优先队列、平衡树模板题(SBT)
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
- php script 的生命周期
原文地址:https://support.cloud.engineyard.com/hc/en-us/articles/205411888-PHP-Performance-I-Everything-Y ...
- Ibatis教程
Ibatis教程 |字号 转自:http://blog.csdn.net/lhminjava/article/details/1871136 ibatis 开发指南ibatis Quick S ...
- PAT 天梯赛 L2-1 紧急救援
Dijkstra算法扩展 题目链接 解题代码如下: #include<cstdio> #include<iostream> #include<algorithm> ...
- python 一遍式四则运算
#!/usr/bin/python #coding: utf-8 INTEGER = 'INTEGER' PLUS = '+' MINUS = '-' MUL = '*' DIV = '/' LC = ...
- PHP 删除非法UTF-8字符
//reject overly long 2 byte sequences, as well as characters above U+10000 and replace with ? $some_ ...
- /bin/sh 与 /bin/bash 的区别
/bin/sh 与 /bin/bash 的区别,用 : 截取字符串不是POSIX 标准的. 区别 sh 一般设成 bash 的软链 (symlink) ls -l /bin/sh lrwxrwxrwx ...
- Mysql基本操作整理
1.登录数据库 格式: mysql -h主机地址 -u用户名 -p用户密码 –P端口 –D数据库 –e “SQL 内容”>mysql -uroot -p 数据库名称~~~~~~~~~~~~~~~ ...
- Jsp页面获取项目名称
方式一: ${pageContext.request.contextPath} 方式二: <%= this.getServletContext().getContextPath() %>
- jascript基础教程学习总结(2)
摘自:javascript基础教程 用链接对用户进行重定向: js001.html 这个HTML页面基于链接对用户进行重定向 <!DOCTYPE html PUBLIC "-//W3C ...