[叁]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 ...
随机推荐
- Possible multiple enumeration of IEnumerable
https://www.jetbrains.com/help/resharper/2016.1/PossibleMultipleEnumeration.html Consider the follow ...
- hdoj--1258--Sum It Up(dfs)
Sum It Up Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 【撸码caffe 二】 blob.hpp
Blob类是caffe中对处理和传递的实际数据的封装,是caffe中基本的数据存储单元,包括前向传播中的图像数据,反向传播中的梯度数据以及网络层间的中间数据变量(包括权值,偏置等),训练模型的参数等等 ...
- c#为程序添加全局热键的方法
在程序失去焦点或者在后台运行时,可以通过使用全局热键的方式,进行一些快捷的操作,如QQ默认操作中ctrl+alt+A调出截图功能. 在Windows中实现热键功能需要使用win32的Api函数Regi ...
- 2014.9.20Hashtable概述
hashtable叫哈希表,用于表示键值的集合,这些键值对根据键的哈希代码进行组织,其每个元素都存储于DictionaryEntry对象中的键值对.键不能为空引用. count:获取包含在hashta ...
- UVA-1335(UVALive-3177) Beijing Guards 贪心 二分
题面 题意:有n个人为成一个圈,其中第i个人想要r[i]种不同的礼物,相邻的两个人可以聊天,炫耀自己的礼物.如果两个相邻的人拥有同一种礼物,则双方都会很不高兴,问最少需要多少种不同的礼物才能满足所有人 ...
- 对JVM还有什么不懂的?一文章带你深入浅出JVM!
本文跟大家聊聊JVM的内部结构,从组件中的多线程处理,JVM系统线程,局部变量数组等方面进行解析 JVM JVM = 类加载器(classloader) + 执行引擎(execution engine ...
- springboot整合ActiveMQ 2(主备模式,负载均衡)
基本使用,https://www.tapme.top/blog/detail/2018-09-05-10-38 主备模式,https://www.tapme.top/blog/detail/2018- ...
- golang二维码
package main import ( "github.com/boombuler/barcode" "github.com/boombuler/barcode/qr ...
- swi prolog 与c#
最近,玩了一下prolog语言,感觉还是很有意思.由于我是学c#的,所以就不禁想看看c#如何与prolog进行结合,在网上找了一下,发现有个swi prolog对c#的dll,下载官网:http:// ...