横山县 南岸区 昔阳县 大姚县 伊春市 浠水县 观塘区 抚顺县 望江县 嵊州市 镇平县 兴义市 安顺市 融水 静宁县 子长县

庆余年_游戏服务器框架之网关

标签:丁基 航讯中国象棋

当用户在大厅登陆成功之后,大厅会分配一个网关的地址给客户端。客户端与这个网关建立长连接,负责与服务器的通信。网关的主要功能有:

一般的功能都可以随便添加。这里主要说一下消息转发。对于客户端和业务服务来说,网关是一个承上启下的作用。首先客户端与网关建立连接,第二,网关收到客户端的一请求请,得知道把这条请求发送到哪个业务服务上面,第三,业务服务处理完一个请求,如何把消息返回给网关,网关再如何把消息发给客户端。

一,客户端与网关建立连接

  网关作为一个单独的对外服务,而且是长连接,一般使用Netty作为服务的网络通信框架。它的异步高性能是公认的,这没什么可说的。在游戏服务器的网关中,建立连接一般分为两个步骤:

  1,客户端通过socket连接到服务器

  2,连接的认证

  连接到服务器之后,客户端和服务器就会建立起一个socket通信通道,但是一个服务器的socket连接数量是有限的,如果客户端与服务器大量建立socket连接,而不通信,就会造成大量的socket资源被占用,增加服务器的压力,影响正常用户的使用,所以要有连接的认证,当连接建立成功之后,要在一段时间之内进行认证,如何认证呢?就是让用户请求token验证,如果一段时间内没有认证,则服务器主动断开连接。这样也可以保证之后用户的通信是有效的,不用每次都验证token.用户验证成功之后,保证用户id与连接的映射,方便根据用户id给此用户的客户端返回消息。

二,网关与业务服务间的通信

  一个网关后面可能有n个业务服务,所以是一个一对多的关系。所以增加一个业务服务都需要与网关建立一条连接。如果直接建立连接,管理起来比较麻烦。既然是一对多的关系,我们自然想到一种模式:发布-订阅。这种模式可以解耦发布者和订阅者。而目前很多消息队列框架都支持这种模式。比如rabbitmq,rocketmq,kafka等。推荐使用rocketmq。这里阿里的消息中间件。

  

  要实现网关和业务服务的数据交互,大消息传输中需要几个公共参数:

    fromServerId 消息的发送服务器id,即消息的来源服务id

 巴巴爸爸_2018年最新新闻网   toServerId   消息要到害的服务Id

  在网关与业务服务交互的消息中必须带有这两个参数

  1,网关收到的消息如何转发到业务服务器

    既然是使用发布-订阅模式,那网关就是发布者,业务服务就是订阅者,即消息消费者。在网关处,首先是根据用户id选择用户到过的业务服务id,可以根据用户id和业务服务数量求余,这样同一个用户id都会被分配到同一台业务服务器上面。为了可以保证动态添加新的服务,每次给用户分配好到达的业务服务id之后,可以缓存起来,有缓存的话就使用缓存中的,这样动态添加一台新的业务服务之后,已分配的用户不用重新分配,当网关重启之后清空缓存,再重新分配。获得的业务服务id即魔法少女奈叶_2018年最新新闻网toServerId,网关收到消息之后,发送消息的topic可以使用toServerId组合,例如:“GameGate” + toServerId ,这样同一个业务服务的消息都会发送到同一个消息主题里面。而在业务服务端,则需要监听网关的消息,监听topic就是“GameGate” +本业务服务的id,这样就可以收到网关发送过来的消息了。

  2,业务服华裔女演员改姓氏_2018年最新新闻网务如何返回消息给网关

    同样的道理,业务服务要发消息给网关,那么业务服务就是发送者,发送的消息topic可以是“GameServe藏地密码_2018年最新新闻网r” +网关服务的id,即从接收消息中获取的fromServerId。而网关那边则需要监听topic:"GameServer" +本网关的服务Id.

 

  这样就完成了网关和业务服务之间的消息交互。网关的其它职能可以根据需要增加。


   

Q桃花债_2018年最新新闻网Q群交流:66728073,更多文章:http://www.coc88.com.zaostockmarket.cn;公众号:

  

当前文章:http://kd8ou2b-shouwei168-com.zaostockmarket.cn/l3guf/d8886_152570.html

发布时间:2019-08-20 00:20:40

银河娱乐在线官方网址  澳门银河手机网站  银河娱乐手机版yh163am.com中国女留学生在西班牙被辱骂攻击,多次反抗无效  澳门银河官网手机app  澳门银河官网yh163am.com  澳门银河手机网站  澳门银河官网手机app  银河国际中心游戏厅  919银河优越会  澳门银河真人yh163am.com