开篇
随着go语言学习的深入,包括实际中自己的需求,决定从头实现一套自己的微服务架构的游戏服务器。其中会融入很多我对于微服务的理解,以及对于整体架构设计思想的表达。
全部文章不涉及到具体的代码实现,只包含结构设计、程序设计、表设计、缓存设计,力求按照文中内容无论使用任何语言均能快速搭建出设计的服务。
我理解的微服务
按照我对于微服务的理解,微服务应该符合的标准:
- 独立性 ,一个服务提供一个功能。例如日志服务,只提供将请求的数据写入到日志文件中。
- 通用性,服务提供的功能能尽可能的支持各类需求。依然拿日志服务举例,日志有很多种格式化方式,那么这些差异内容交给服务调用方去决定,日志服务只提供将调用方请求的字符串写入到日志中。
- 扩展性,现代的互联网公司越来越看重大数据下的服务器表现,以及如果一开始没有做好对大规模请求的处理,后面再来进行重构将是非常痛苦的一件事情。因此最好能实现水平扩展。
- 平衡性,最理想话的服务,是只提供一个单一的服务,如果有其他需求,则通过调用另一个提供该服务的服务来解决。但是服务越多,耦合越大,越不利于维护,因此服务的功能与独立要充分考虑权衡。
服务列表
- 用户服务器
- 逻辑服务器
- 排行榜服务器
- 邮件服务器
- 日志服务器
- 战斗服务器
- web服务器
- 聊天服务器