zinx框架分析

服务器流程

1、首先调用Server模块的NewServer方法初始化一个Server方法

2、在NewServer方法中会初始化Server模块的

MsgHandler 和 ConnMgr,  

msgHandler是路由管理模块。ConnMgr是管理客户端连接的模块

 

3、注册钩子函数,这两个函数分别是框架留给用户的接口方法,用户处理当有用户连接进来之后和当用户断开链接之前需要处理的业务(比如断开链接我们需要进行一些资源的回收)

s.SetOnConnStart(DoConnectionBegin)
s.SetOnConnStop(DoConnectionStop)

函数原型:

func (IConnection)

4、添加消息路由通过Server模块的AddRouter方法,向模块的MsgHandler中添加路由

5、最后调用Server模块的Serve方法,启动服务器,等待用户连接

在Serve方法中首先调用Server的start方法,启动一个tcp监听的协程,等待用户连接

然后再调用Server模块中msgHandler的StartWorkerPool工作池协程

msgHandler的StartWorkerPool协程主要是把客户端发送来的数据,通过负载均衡算法存放到消息队列中,排队等待处理,

工作池主要是为了防止服务器开辟大量的协程,消耗服务器资源,通过控制服务器协程数量,保证服务器稳定性能

StartWorkerPool方法会根据配置文件启动一定数量的协程

首先初始化消息队列,一个消息队列对应一个工作协程,工作协程里面一个死循环等待从消息队列中取出数据,然后发送给对应的路由进行处理

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值