随笔分类 -  技术总结

摘要:https://segmentfault.com/a/1190000041783756?utm_source=sf-similar-article 一、基础架构 框架与架构 框架关注的是“规范”,架构关注的是“结构”。 框架是一整套开发规范。 软件架构指软件系统的“基础结构”,创造这些基础结构的准则 阅读全文
posted @ 2022-10-13 10:09 天下太平 阅读(149) 评论(0) 推荐(0) 编辑
摘要:在游戏服务端架构中online server,有些也叫center server。 主要承载以下功能: 存储玩家的在线信息,处理上线和下线消息。 转发消息给特定玩家。 online server在架构图中的位置 online server集群内部架构图,以3个实例为例: 特点: svr之间相互连接, 阅读全文
posted @ 2022-10-09 11:34 天下太平 阅读(51) 评论(0) 推荐(0) 编辑
摘要:如何发现问题 服务端开发实践分享 引入 过去,我们常常讨论:如何解决问题? 往往一个项目上线前,反馈很好,稳定性很高。 但是,上线后,卡顿、炸服、宕机,常有的事。 问题还是有的,只是我们没有发现。 没有问题,才是最大的问题。 换个思考方向:如何发现问题? 铺垫 问题被发现的来源:以bug为例 测试提 阅读全文
posted @ 2022-08-26 10:22 天下太平 阅读(837) 评论(0) 推荐(1) 编辑
摘要:REST名称 REST -- REpresentational State Transfer 全称是 Resource Representational State Transfer,第一个单词被省略了。 通俗来讲就是:资源在网络中以某种表现形式进行状态转移。 Resource:资源,即数据。 Re 阅读全文
posted @ 2022-08-18 14:18 天下太平 阅读(23) 评论(0) 推荐(0) 编辑
摘要:原则:没事不要用缓存 引入缓存后的不良后果: 缓存和数据库双写不一致 缓存雪崩、缓存穿透、缓存击穿 缓存并发竞争 适用场景: 读密集型 存在热数据 对响应时间要求高 对一致性要求不严格 需要实现分布式锁 不适用场景: 更新频繁 对一致性要求严格 读少 数据量很小 阅读全文
posted @ 2022-08-15 13:52 天下太平 阅读(64) 评论(0) 推荐(0) 编辑
摘要:关键字过滤 实质:多模式文本匹配问题。 实现方式 编码格式统一为Unicode编码,统一编码差异。 hash存储关键字首字符,快速判定。 存储关键字首字符在vector中的范围下标,提高遍历检索效率。 支持中文规则。 最长匹配原则。 代码实现 https://github.com/TxtpGame/ 阅读全文
posted @ 2022-07-18 14:51 天下太平 阅读(64) 评论(0) 推荐(0) 编辑
摘要:golang:https://github.com/oschwald/geoip2-golang 数据库:https://github.com/P3TERX/GeoLite.mmdb 获取http客户端的IP地址:https://blog.csdn.net/qq_35414442/article/d 阅读全文
posted @ 2022-07-18 14:40 天下太平 阅读(493) 评论(0) 推荐(0) 编辑
摘要:Unicode 如果把各种文字编码形容为各地的方言,那么Unicode就是世界各国合作开发的一种语言。 编码方式 可以容纳世界上所有文字和符号的字符编码方案。 Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。 码位就是可以分配给 阅读全文
posted @ 2022-07-13 15:57 天下太平 阅读(292) 评论(0) 推荐(0) 编辑
摘要:概念 概念:系统中的每一个资源分配一个唯一标识。 举例:金币、钻石、道具、礼包、勋章、英雄、英雄碎片、活动积分、表情等。 中间层:处理资源增减请求。 举例 签到为例 graph LR A[签到请求] -->B{是否可签} B -->|yes| D[读取奖励配置] D --> E1[直接获得奖励] - 阅读全文
posted @ 2022-07-05 19:54 天下太平 阅读(154) 评论(0) 推荐(0) 编辑
摘要:锁的本质:操作的序列化、队列化 虽然不同的语言可能会提供不同的锁接口,但是底层调用的都是操作系统的提供的锁。 不同的高级语言只是在操作系统的锁机制基础上进行了些封装而已 硬件 原子操作是指不可被中断的一个或者一组操作。 硬件提供原子指令,支持基本类型。 总线锁 在cpu芯片上有一个HLOCK Pin 阅读全文
posted @ 2022-05-18 17:41 天下太平 阅读(269) 评论(0) 推荐(1) 编辑
摘要:全服匹配:系统随机将一些玩家分到一组。 常规匹配 流程图 缺陷 异步过程 集群治理:负载均衡、数据容灾 数据缓存:数据冲突 开发和部署复杂,分布式的必然 两级匹配 流程图 核心:两级匹配机制(本地匹配+云端匹配) 区别 报名数据存储在gameserver,利用了gameserver天然的分布式 匹配 阅读全文
posted @ 2022-05-13 14:04 天下太平 阅读(324) 评论(0) 推荐(0) 编辑
摘要:epoll既支持水平触发也支持边缘触发,默认是水平触发。 水平触发(LT) 当被监控的文件描述符上有可读写事件发生时,会通知用户程序去读写,他会一直通知用户,如果这个描述符是用户不关心的,它每次都返回通知用户。 读缓冲区不为空时, 读事件触发。写缓冲区不为满时, 写事件触发。 水平触发时,逻辑简单, 阅读全文
posted @ 2022-05-09 10:38 天下太平 阅读(804) 评论(0) 推荐(0) 编辑
摘要:分派/派发 dispatch 变量被声明时的类型叫做变量的静态类型(Static Type)。 变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。 根据对象的类型而对方法进行的选择,就是分派(Dispatch)。 分派时期 根据分派生的时期,可以将分派分为两种,静态分派和动态 阅读全文
posted @ 2022-05-05 14:00 天下太平 阅读(154) 评论(0) 推荐(0) 编辑
摘要:反作弊方案 原则 休闲类游戏,不需要太高的实时性,不做实时校验,做事后校验。 允许玩家作弊,作弊也是一种游戏体验。 思路 尽可能缩短从开挂到封号的时间差。 尽可能减小开挂修改数据后的影响范围。 尽可能降低玩家举报后的处理时长。 降低误报率。可以接受漏报,但不能误报。 需要做什么 记录玩家在app中的 阅读全文
posted @ 2022-04-18 15:45 天下太平 阅读(68) 评论(0) 推荐(0) 编辑
摘要:协程 历史上协程这个概念的出现要早于线程 协作式多任务与抢夺式多任务 进程与线程 一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成。 进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。 进程持有资源,一旦退出,进程申请的各种资源都会被OS强制回收。 而线程依附于进程 阅读全文
posted @ 2022-04-11 09:49 天下太平 阅读(117) 评论(0) 推荐(0) 编辑
摘要:基于业务的架构设计 前言 一,爱学习的程序员+业务专家才能做出健壮易维护的系统。 二,减少沟通成本的好方法是都用同样的词语。 三,任何词语都能找到不止一个上下文,脱离上下文任何一个词语都有歧义。 磨练自己从实际问题中获得的分析能力,抽象能力,使得自己可以快速理解业务和抽象出精炼的业务模型来简化讨论/ 阅读全文
posted @ 2022-03-21 15:58 天下太平 阅读(96) 评论(0) 推荐(0) 编辑
摘要:提出问题的能力 阅读全文
posted @ 2022-02-22 15:44 天下太平 阅读(66) 评论(0) 推荐(0) 编辑
摘要:有限状态机FSM的介绍 阅读全文
posted @ 2022-02-15 17:19 天下太平 阅读(317) 评论(0) 推荐(0) 编辑
摘要:通过技术帮助周围的非技术人员,优化流程,提高效率。 周围的技术人员能从你这里得到技术提升。 阅读全文
posted @ 2022-01-26 12:17 天下太平 阅读(94) 评论(0) 推荐(0) 编辑
摘要:介绍下,服务端出现问题时,排查问题定位原因的一些思路。 阅读全文
posted @ 2022-01-21 15:29 天下太平 阅读(109) 评论(0) 推荐(0) 编辑