常用游戏服务架构(http,golang技术版)
1 从服务器是否需要主动推送消息到客户端,我们可以简单分为http服务和tcp/websocket服务。(虽然大多数时候是混合使用),后面一篇会讲长连服务架构。
对于http服务游戏,注定是延迟较高的。单个消息处理时间为RTT+业务处理时间。
http3(quick),http2和http1在延迟上基本不会有区别,毕竟http本质上是一个文本协议,是为了获取资源设计的。
较高延迟,无法推送,玩家之间弱交互。能选择的游戏类型就较少。比如放置类,挂机类等。本质上就是一个单机游戏+商业化的外壳。(可以http轮询,实现弱交互)。
优势:
开发快速,postman就可以支持大多数测试。功能测试友好。golang框架可选beego,gin等。
api服务比长连服务的社区基础更好。现成的技术方案多。在游戏运营迭代更新阶段。我们更需要关注的是如何让项目稳定运行,提供数据收集分析平台给运营等。
bug是一定会出现的,我们需要做的是降低出现bug的风险。
需要网关来做细粒度业务的拆分。可选的有云服务商提供的网关(比如某里的alb)。或者部署kong,zuul等。
gin内部集成熔断和限流。(提供有限的服务比不提供服务要好很多,在突发情况下,甚至可以考虑放弃部分没有价值的用户)
用户数量达到一定量级,或者灰度发布需求等,需要搭建负载均衡(云厂商也有)。
日志可选elk。
服务监控以及细粒度的业务监控可选prometheus。
动态实时配置可选nacos。
服务拆分到一定数量,层级2层以上可选go-micro重建整个服务,或者基于gin等集合插件,go-kit是个不错的插件库;同时需要整个数据流的监控,可选zipkin,jeager等。
附git链接:
基础服务:
GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. - GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.https://github.com/gin-gonic/ginhttps://github.com/beego/beego
https://github.com/beego/beego
微服务:
需要的一些熔断限流器客户端服务均衡请求追踪等,可以从micro里面直接找到
https://github.com/asim/go-microhttps://github.com/asim/go-micro日志(格式化j的日志更好处理):
https://github.com/uber-go/zaphttps://github.com/uber-go/zap
附:(完整架构图)
常用游戏服务架构(http,golang技术版)相关推荐
- python微服务框架_微服务架构框架有哪些?常用微服务架构介绍
小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧. 一.Dubbo Dubbo框架是由阿里巴巴开发的开源式的分布式服 ...
- 五年Java架构师深入剖析微服务架构设计理念与技术体系(值得一看!)
内容提要: 本书内容主要包含实施微服务架构的些方法论和工程实践,首先,通过对微服务架构的基本概念.服务建模.服务拆分和集成的介绍,帮助读者全面理解微服务架构中的设计理念,然后从微服务架构的基础组件.关 ...
- AI TALK | 云原生时代的微服务架构与关键技术
随着云原生与微服务技术的逐步发展,业界也逐步构建出一整套比较完整的微服务技术体系. 面向云原生时代,微服务架构是从业人员绕不开的一个话题,腾讯云AI&腾讯优图的内容风控安全审核能力也与微服务技 ...
- mess-cli : 一个前端微服务架构脚手架(beta版)
阅读本文需要较长的时间,本文介绍了微服务的概念.笔者心中的前端微服务,以及基于mess-cli脚手架,如何快速生成一个前端微服务架构项目 什么是微服务? 相信了解过spring cloud的同学都知道 ...
- 在微服务架构中管理技术债务
什么是技术债务? 从广义上讲,技术债务是在软件开发过程中的一系列决策,这些决策会导致团队通过构建特性以创造价值的能力受损. 大家应该对下面的交流十分熟悉:产品经理描述了他们想要添加到产品中的下一个功能 ...
- 端游及手游,游戏服务端架构,游戏研发流程
转载:https://blog.csdn.net/shareus/article/details/54588633 > 游戏框架,游戏架构, Lua和C# 游戏的策略(规则 交互等),游戏的算法 ...
- 某游戏服务运维架构进化史(上云方案)
某游戏服务运维架构进化史(上云方案) 星锅说事2020-10-13 17:28:05 什么是网站架构 网站架构百度百科:网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架 ...
- 微服务架构下的核心话题 (三):微服务架构的技术选型
前期回顾: 微服务架构下的核心话题 (一):微服务架构下各类项目的顺势崛起 微服务架构下的核心话题 (二):微服务架构的设计原则和核心话题 一.前言 为了实现基于微服务开发的产品,或者说为了将单体应用 ...
- 分布式微服务架构的技术体系
微服务架构的演变 微服务是一种服务间松耦合的.每个服务之间高度自治并且使用轻量级协议进行通信的可持续集成部署的分布式架构体系.这一句包含了微服务的特点,微服务架构和其他架构有什么区别?以下对比一些常见 ...
最新文章
- android studio下载插件时出现的read time out问题
- 自家主机建云服务器_如何创建一台Linux云主机?
- 20200702:最长公共子序列(leetcode1143)
- 【学习笔记】RecyclerView的使用
- 深度 | EB级规模大数据平台核心技术揭秘(上)
- duilib 添加自定义list一例
- roslyn c#脚本_使用ScriptCS和Roslyn的无项目脚本C#
- Hibernate 映射关系 ---One2One 主键关联
- _CRT_SECURE_NO_DEPRECATE
- FineReport 爬坑之路
- 我认得embdedding
- 城市规划计算机辅助设计综合实践,城市规划计算机辅助设计综合实践:AutoCAD2015/ArcGIS/PS/SU...
- 趣图:多线程的残酷真相(柯基版)
- MATLAB元胞数组与结构体
- 学前教育试题库及答案_(完整版)《学前教育学》试题及答案
- 生化分析基本原理及 怎么看生化反应曲线?
- php 检测gif文件,识别gif文件,判断gif文件
- 惠普服务器ipmi配置方法
- 雪碧你变了!喝了20多年的雪碧不仅换包装了,连logo也换了
- 前端打印流响应_前端开发-餐饮小票自主打印应用开发
热门文章
- P2669 金币,国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十
- Chrome浏览器插件网址
- mysql生成饼状图_ECharts制作饼状图
- 【观察】智能运维从拓荒走向深耕,云智慧领跑的升势和胜势
- HECKTOR2020第二名 Combining CNN and Hybrid Active Contours for Head and Neck Tumor Segmentation in CT a
- 毕业论文查重的降重心得
- 不要学习“网红”编程语言
- 躬身入局,干货分享,2023年春招后端技术岗(Python)面试实战教程,Offer今始为君发
- java cohesion_[Java][概念]Higher cohesion(高凝聚性)_Looser coupling(低相依性)
- 将四个整数按照升序排序