Go游戏服务器开发的一些思考(十九):服务器架构之服务发现

背景

在端游时代,通常是按区开服。每个区内服务器数量有限。后端程序员,可以简单的在配置文件中,填写相关服务器信息。服务器通过配置文件来知晓其他服务器信息,然后互连。

到了手游时代,特别是大区大服类型的手游出现。有了不间断提供服务的需求。后台管理的服务器数量规模不定,需要支持动态缩减。像腾讯的不少游戏,都是上千台物理服务器组成。

为了应对上述的变化,服务发现的概念开始在服务器架构中流行起来。

作用

  • 简化配置,架构内只需要知晓发现服务的地址
  • 通过发现服务了解架构内所有服务的运行状态
  • 让架构方便的对接目前流行的运维工具。如Docker Swarm

实现

市面上有不少相关产品,这里列举几个比较有名的:

  • zookeepr
  • etcd
  • consul

上面的都有很多人在用,自然都各有优点。这边讲的Go服务器。而etcd就是使用go来写的。因此下面着重对etcd做下介绍。

etcd介绍

etcd的github地址:

https://github.com/coreos/etcd

etcd自身的服务发现,github地址:

你可能感兴趣的:(Go游戏服务器开发的一些思考,服务器,架构,游戏,服务发现,etcd)