1)笔记
1)通用服务器
(1)网关服务器
(2)用户服务器
2)系统服务器
3)游戏服务器
4)多服务器启动部署
(1)因为服务器是c++ lua,因此build出来一个exe用于启动lua脚本即可启动
不同的服务器
(2)搜索路径的设置: 共用Stype和Ctype,因此搜索路径设置为scripts/ 下,
因此即使是当前目录,也要加上 "gateway/gw_service" 这样
5)网关服务器的功能
(1)最大的功能是转发: 客户端消息-->服务器 服务器消息-->客户端
(2)网关服务器的优点
a.将整个系统的运算和负载分到不同服务器上,方便扩展
b.千锤百炼的进程不容易挂掉,后面开发的业务进程经常改变,容易出问题,
业务进程挂掉了,玩家还和网关连接着,不会感知的到
c.独立的网关服务器可以分散业务进程的压力,让服务器容纳更多的人;
如果玩家直接去连接业务服务器,只能连接一个,而有网关,则可以转发到
不同的服务器上,提升一组服务器的负载
d.负载均衡和广播消息的负载均衡,因为网关知道哪个服务器有负载等
6)目录调整:
(1)进程架构目录:
gateway
auth_server 或者 account_server
talkroom
(2)Stype.lua: 标记都有哪些服务器
Auth = 1
System = 2
Logic = 3
(3)Cmd.lua 或 Ctype: 标记所有命令的值 和 protobuf的enum对应,复制过去即可
(4)game_config.lua: 服务器配置文件
gateway
tcp的ip、port: 对外给客户端使用的tcp端口
websocket的ip、port: 对外给客户端使用的websocket端口
remote_server:
gateway与业务进程之间只采用tcp连接, ws只提供给客户端即可
网关启动后,就会去连接remote配置的这些server
我们一个个服务来写,写一个加一个就ok了
遍历servers列表,在网关注册好这些网关转发模块对应的这些服务,只要到了网关后,
检测是这个命令,则会走进转发模块,转到对应的ip地址和端口
7)注册网关转发模块
(1)key: 对应的服务号
value: 直接搞一个gw_service
(2)on_gw_recv_cmd: 当收到客户端对应的命令后,就会进入,转给其它服务器
(3)on_gw_session_disconnect: 当客户端断开连接后,我们将客户端断开的消息
转给其它服务器
(4)gw_service:也叫作转发服务, 直接转给对应的stype即可
8)业务逻辑开发人员需要做些什么?
(1)复制一个service,在main里面注册好对应的类型,当有属于这个service的业务请求进来的时候,
这样就独立出来了人与人之间的相互交叉
(2)整个框架就在做事件分发
9)整体架构
(1)协议
(2)脚本
脚本下面有各个服务器
配置文件
每个服务器里面有个入口 + service
(3)业务逻辑独立于service进行开发,方便进行分布式的部署 和 业务拆分
(4)有其它service挂到这个进程下,则在main.lua注册即可
来源:https://blog.csdn.net/themagickeyjianan/article/details/100862373