[叁]Pomelo游戏server编程分享 之 server结构与配置分析
网络部署结构
我们先看一下Pomeloserver网络部署情况,直接上图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3RiaW56aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
Pomeloserver端框架简单地可分为两层。即链接层(Connector、Gate)和服务层(Logic、Master),也叫前端server(frontend server)和后端server(backend server)。
链接层直接与client进行网络通信,client的请求通过链接层转发到服务层的Logic进行处理,处理完后将结果交由Connector转发给client。
这种结构能够方便我们进行server扩展,特别是负责均衡。
须要特殊说明的是Gate和Master。client第一次请求是发到Gateserver,然后由Gateserver为client分配一个Connectorserver,详细的分配策略是程序可控的。Master主要负责server管理,如新开server、关闭server。
因为Logicserver能够有多个,client发送请求时就须要告诉Connector消息须要发送到哪个Logicserver上。为此Pomelo引入了路由(Route)机制。即client全部的消息须要指定路由信息。一边消息正确投递。
Logicserver按功能可划分为不同的server。如场景server、聊天server、用户信息管理server等,那么不同server之间难免须要进行通信,为此Pomelo引入了RPC机制。即全部逻辑server之间的通信能够通过RPC调用来完毕,这样就非常方便了。
文件夹结构及其配置文件
./game-server/app/servers/服务类型名称/handler 用于放置处理用户请求(基于Route的用户请求,服务器名称和handeler文件夹下的js文件名都将作为Route的一部分)的代码文件
./game-server/app/servers/服务类型名称/remote 用于放置处理服务器间调用(RPC调用)的代码文件
./game-server/app/servers/服务类型名称/filter 用于放置处理filter逻辑(包含before和after)的代码文件
./game-server/logs 用于存放日志文件
./game-server/app.js 服务器程序启动入口文件,能够在这个文件中面对Pomelo框架进行对应的配置设置,详细方法參见下一节介绍。
./game-server/config 用于放置配置文件,包含Pomelo框架的配置文件,第三方插件的配置文件。以及用户自己定义的配置文件(建议在该文件夹下将对应文件夹来存储用户自己定义配置文件。这样不至于太乱)
./game-server/config/master.json Master服务器使用的配置文件
./game-server/config/servers.json 也是给Master用的,用于定义server集群开启,如某某硬件server上开启某某游戏server
./game-server/config/log4js.json 日志配置
./game-server/config/serverProtos.json 待研究
./game-server/config/adminUser.json 待研究
./game-server/config/dictionary.json 用于定义Route压缩的字典配置文件
Pomelo框架设置
參考资料:
Pomelo框架概述 https://github.com/NetEase/pomelo/wiki/pomelo%E6%A1%86%E6%9E%B6%E6%A6%82%E8%BF%B0
Pomelo消息压缩 https://github.com/NetEase/pomelo/wiki/%E6%B6%88%E6%81%AF%E5%8E%8B%E7%BC%A9
[叁]Pomelo游戏server编程分享 之 server结构与配置分析的更多相关文章
- SQL Server编程系列(1):SMO介绍
原文:SQL Server编程系列(1):SMO介绍 续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己 ...
- (转) SQL Server编程系列(1):SMO介绍
最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...
- [转]SQL Server编程:SMO介绍
转自:周公 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文 ...
- Oracle与SQL SERVER编程差异分析(入门)
网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...
- 分享Windows Server 2012 R2的获取正版密钥方法
然后使用“我有ISIC卡”验证,目前可用号码:S420546009858. 分享Windows Server 2012 R2的获取正版密钥方法. 首先登陆dreamspark注册一个账号https:/ ...
- 跨平台网络通信与server编程框架库(acl库)介绍
一.描写叙述 acl project是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及server编程框架,同一时候提供很多其它的有用功能库.通过该库 ...
- SQL Server编程系列(2):SMO常用对象的有关操作
原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...
- .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)
原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...
- SQL Server 编程入门
一.T—SQL 的组成 1.DML(数据操作语言 Data Manipulation Language) 查询.插入.删除和修改数据库中的数据.SELECT.INSERT.UPDATE.DELETE ...
随机推荐
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- 2017-3-8 leetcode 380 381 532
l两周以来,第一次睡了个爽,开心! ================================= leetcode380 https://leetcode.com/problems/insert ...
- [转载]Windows Server 2008 R2 之二十五AD RMS信任策略
原文地址:Windows Server 2008 R2 之二十五AD RMS信任策略作者:从心开始 可以通过添加信任策略,让 AD RMS 可以处理由不同的 AD RMS 群集进行权限保护的内容的授权 ...
- [HTML] 微信wap开发---页面自适应大小
<meta name="viewport" content="width=device-width, initial-scale=0.5, minimum-scal ...
- Angular2之路由学习笔记
目前工作中项目的主要技术栈是Angular2 在这里简单记录一下遇到的问题以及解决方案. 这篇笔记主要记录Angular2 的路由. 官方文档链接:https://angular.cn/docs/ts ...
- 修改织梦data目录名
1.修改include目录下的common.inc.php这个文件.打开文件,找到第24行: define('DEDEDATA', DEDEROOT.'/data'); 把data修改成为您要改的目录 ...
- dotnetnuke 调用第三方dll出错 System.Security.Permissions.SecurityPermission,型的权限已失败。
在dnn下调用第三方dll的微信sdk ,代码如下: WebClient wc = new WebClient(); wc.Encoding = encoding ?? Encoding.UTF8; ...
- ubuntu 安装 OpenCV-CUDA
参考链接:http://www.cnblogs.com/platero/p/3993877.html 官方指导:https://help.ubuntu.com/community/OpenCV 0.这 ...
- QT4.8界面设计(MSVC2010X)
1.C++ IDE设计 MFC这种半死不活的windows C++平台已经被抛弃,很无奈.转向Qt的C++还是不错的选择. QT的QML才是最新的亮点,可惜没有时间经历这些东西了. 2.程序代码 2. ...
- 00-- 关于C++ const 的全面总结
转:关于C++ const 的全面总结 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C ...