hellodudu86 最近的时间轴更新
hellodudu86

hellodudu86

V2EX 第 261996 号会员,加入于 2017-10-24 15:29:10 +08:00
今日活跃度排名 10959
hellodudu86 最近回复了
28 天前
回复了 partystart 创建的主题 程序员 纯吐槽帖 关于 go 的 err 和重载
建议上 boss 搜一下哪个语言工资高选哪个,光喷是没用的
74 天前
回复了 goforwardv2 创建的主题 程序员 游戏服务器和中间件
@goforwardv2 我用的 gRPC ,想自定义负载均衡算法的话可以参考下官方的文档 https://github.com/grpc/grpc-go/tree/master/examples/features/load_balancing
74 天前
回复了 goforwardv2 创建的主题 程序员 游戏服务器和中间件
个人觉得没必要存在这个 proxy 服务,尤其是是单点的情况,十分危险。

rpc 的 load balance 有很多种算法,一般调用的时候选择作为参数就行,或者有需求可以自定义一个负载均衡算法。

GameSvr 无状态的话可以 roundrobin 。有状态的话应该是要保证同一个用户 id 数据转发到同一个 GameSvr 节点上,用一致性哈希或者自己定义一套用户 id 映射 GameSvr 节点 id 的算法。
75 天前
回复了 goforwardv2 创建的主题 程序员 游戏服务器和中间件
如果我没理解错的话,楼主说的 AccessSvr 和 proxy 是一个类似具有负载均衡的网关服务,主要功能是转发客户端请求到对应的 GameSvr 、并且返回 GameSvr 的结果给客户端?

这种情况下用 MQ 确实是不合适的,因为你的用户所在 AccessSvr 和 GameSvr 是一一对应的,MQ 并不能保证消费者是哪一个节点。如果没有延迟返回结果或者持久化用户请求的需求的话可以考虑用 rpc 替代 proxy 服务。

至于你所说的网关存在单点故障的问题,我不觉得这个和分布式部署有何矛盾之处,AccessSvr+proxy 的本质就是建立一条客户端和 GameSvr 的连接并且转发双方的数据,这条连接应该是没有状态的,就算挂掉了一个 AccessSvr 服务,客户端重连后在另一台 AccessSvr 重新建立连接即可,对于用户来说几乎是无感知的。唯一需要处理的是同一个用户 id 只能在 AccessSvr 集群上有一条连接,这个用一致性哈希可以保证。引入 MQ 并不能解决这个问题
另外 vim 和 terminal 调试确实很麻烦,不如 vscode 调试来的方便
在终端里面用了好几年的 vim,近一年切换到 vscode+vim 插件了,虽然没有以前在终端里面各种快捷键切换 vim 和 terminal 来的方便,但是确实省心,建议楼主可以试一试。
186 天前
回复了 Turkestan 创建的主题 职场话题 上个班真累,动不动就被老员工摆一道
@gBurnX 别和他们争了兄弟,他们只是想喷领导傻逼,社会傻逼,zf 傻逼而已。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2659 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 09:04 · PVG 17:04 · LAX 01:04 · JFK 04:04
♥ Do have faith in what you're doing.