微服务热点知识回顾

根据什么来划分微服务

首先,根据业务职责解耦,然后看数据交互的频率(数据交互的频率比较低,且存在CPU、内存等资源竞争,就需要考虑划分出单独的服务)

单服集群与微服务集群的区别(为什么需要微服务?)

微服务集群的核心在与提升负载与负载均衡。主要实现方法是通过业务解耦的方式,将不同模块的业务分离出去成为单独的服务。每个模块可以单独部署。

比较重要的模块一个是网关,用来隔离客户端连接,将网络IO的压力分散出去,避免突发高流量对业务的冲击。同时,网关可以做消息转发节点,减少服务器之间的连接数量,服务器不再是两两直连。

然后是战斗、聊天等其他高频指令的解耦。让大厅模块的业务更加不容易受到其他模块业务的影响。比如将聊天和大厅业务集合在一起,那么过量的聊天消息会占据大量CPU和临时内存,对玩家持久化数据的处理产生影响,降低业务的处理效率。

单服集群,每个服能够容纳的玩家数量有上限,对于突发的高负载,无法分流,玩家的社交也存在较大的局限性。而微服务可以通过水平扩展的方式进行负载均衡。

微服务优化结构

战斗服定时每秒向Redis上报战斗负载(挂掉自动超时),方便游戏服根据负载分配战斗;

游戏服定时每秒向Redis上报玩家负载(挂掉自动超时),方便登录服根据负载分配加载者;

网关服记录给每个玩家的服务器路由表,定时同步到Redis,玩家下线后延迟一定时间删除,发生变化时更新;同时上报自己的玩家负载;

微服务为什么需要网关?

用于隔离客户端连接,客户端Session管理。简化后端链接架构,承担消息转发的职责。

微服务如何新增服务器?

战斗服:直接起服,读取网关配置,并向所有网关注册。

游戏服:直接起服,读取网关配置,并向所有网关注册。

网关服:起服,然后全服热更新配置文件,向新网关注册。

微服务服务器挂掉如何处理?

战斗服:挂掉自动掉线,战斗不会再分配;

游戏服:挂掉自动掉线,玩家重登陆。

网关服:挂掉会导致玩家掉线,重新登录会另外分配网关服。

微服务框架下客户端的断线重连


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com

文章标题: 微服务热点知识回顾

文章字数: 721

本文作者: Jun

发布时间: 2022-03-14, 15:20:00

最后更新: 2022-04-25, 14:50:11

原始链接: http://yoursite.com/2022/03/14/微服务热点知识回顾/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏