随笔分类 -  后端技术

摘要:安装 依次执行: wget https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/linux-amd64-filebrowser.tar.gz tar vxzf ./linux-amd64-filebrowser.t 阅读全文
posted @ 2023-03-06 15:41 天下太平 阅读(127) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/pandamohist/p/13852197.html 互斥量 std::mutex:解决多个线程对共享数据的访问问题。 条件变量 std::condition_variable:是一种线程间的通讯机制,解决线程的执行问题。 #pragma once 阅读全文
posted @ 2023-03-02 10:28 天下太平 阅读(58) 评论(0) 推荐(0) 编辑
摘要:场景:进程A创建进程B,进程A listen端口P。进程A退出,进程B仍在,此时进程A listen的端口P没有被释放。 原因:进程创建时,默认是共享资源的。这种情况下,进程A的的端口不会回收,因为文件描述符的引用计数仍在。 解决方案:创建socket时,设置属性,端口资源不可被继承。 zmq代码参 阅读全文
posted @ 2022-11-30 14:23 天下太平 阅读(542) 评论(0) 推荐(0) 编辑
摘要: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) 编辑
摘要:大Key的特征 一般特征: 单个key存储大value。 hash,set,zset,list中存储过多数据。 一个集群存储了上亿的key。 具体描述: 一个STRING类型的Key,它的值为5MB(数据过大)。 一个LIST类型的Key,它的列表数量为20000个(列表数量过多)。 一个ZSET类 阅读全文
posted @ 2022-05-23 11:42 天下太平 阅读(1393) 评论(0) 推荐(0) 编辑
摘要:锁的本质:操作的序列化、队列化 虽然不同的语言可能会提供不同的锁接口,但是底层调用的都是操作系统的提供的锁。 不同的高级语言只是在操作系统的锁机制基础上进行了些封装而已 硬件 原子操作是指不可被中断的一个或者一组操作。 硬件提供原子指令,支持基本类型。 总线锁 在cpu芯片上有一个HLOCK Pin 阅读全文
posted @ 2022-05-18 17:41 天下太平 阅读(269) 评论(0) 推荐(1) 编辑
摘要:全服匹配:系统随机将一些玩家分到一组。 常规匹配 流程图 缺陷 异步过程 集群治理:负载均衡、数据容灾 数据缓存:数据冲突 开发和部署复杂,分布式的必然 两级匹配 流程图 核心:两级匹配机制(本地匹配+云端匹配) 区别 报名数据存储在gameserver,利用了gameserver天然的分布式 匹配 阅读全文
posted @ 2022-05-13 14:04 天下太平 阅读(323) 评论(0) 推荐(0) 编辑
摘要:epoll既支持水平触发也支持边缘触发,默认是水平触发。 水平触发(LT) 当被监控的文件描述符上有可读写事件发生时,会通知用户程序去读写,他会一直通知用户,如果这个描述符是用户不关心的,它每次都返回通知用户。 读缓冲区不为空时, 读事件触发。写缓冲区不为满时, 写事件触发。 水平触发时,逻辑简单, 阅读全文
posted @ 2022-05-09 10:38 天下太平 阅读(802) 评论(0) 推荐(0) 编辑
摘要:定点数数学库fpm(fixed-point math) github:https://github.com/MikeLankamp/fpm 仅包含头文件的实现,需要C++11或以上。 https://github.com/TxtpGame/fpm/blob/master/docs/index.md 阅读全文
posted @ 2022-04-21 10:58 天下太平 阅读(1013) 评论(0) 推荐(0) 编辑
摘要:反作弊方案 原则 休闲类游戏,不需要太高的实时性,不做实时校验,做事后校验。 允许玩家作弊,作弊也是一种游戏体验。 思路 尽可能缩短从开挂到封号的时间差。 尽可能减小开挂修改数据后的影响范围。 尽可能降低玩家举报后的处理时长。 降低误报率。可以接受漏报,但不能误报。 需要做什么 记录玩家在app中的 阅读全文
posted @ 2022-04-18 15:45 天下太平 阅读(68) 评论(0) 推荐(0) 编辑
摘要:定义 设计一个空对象取代NULL对象实例的检查。NULL对象不是检查控制,而是反映一个不做任何动作的关系。 这样的NULL对象也可以在数据不可用的时候提供默认的行为,属于行为型设计模式。 组成 抽象对象(AbstractObject):定义所有子类公有的行为和属性。 真实对象(RealObject) 阅读全文
posted @ 2022-04-18 13:44 天下太平 阅读(180) 评论(0) 推荐(0) 编辑
摘要:pstack 命令可以打印出进程的线程堆栈信息:pstack 进程ID 想要查看具体某个线程的调用情况,获取到线程ID:pstack 线程ID 输出结果: 在排查进程问题时非常有用,比如我们发现一个服务一直处于work状态(如假死状态,好似死循环),使用这个命令就能轻松定位问题所在;可以在一段时间内 阅读全文
posted @ 2022-04-14 10:31 天下太平 阅读(87) 评论(0) 推荐(0) 编辑
摘要:协程 历史上协程这个概念的出现要早于线程 协作式多任务与抢夺式多任务 进程与线程 一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成。 进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。 进程持有资源,一旦退出,进程申请的各种资源都会被OS强制回收。 而线程依附于进程 阅读全文
posted @ 2022-04-11 09:49 天下太平 阅读(117) 评论(0) 推荐(0) 编辑
摘要:svn log展示的日志是统计信息一行注释另一行,不是很方便处理 首先需要将日志记录只显示一行 vi ~/.bashrc,增加以下代码,source ~/.bashrc svnlog(){ svn log "$@" | awk -f <(cat <<EOF #!/usr/bin/awk -f # C 阅读全文
posted @ 2022-04-06 17:15 天下太平 阅读(133) 评论(0) 推荐(0) 编辑
摘要:复盘报告:lua的pbc绑定,表中的对象修改后没有生效 问题 项目中lua使用的pbc做数据绑定,遇到一个问题,发现修改表中的对象后,值没有生效,仍然为原值。 经过一番查询发现也有人遇到了这个问题:https://blog.codingnow.com/2012/04/pbc_improved.htm 阅读全文
posted @ 2022-04-02 16:46 天下太平 阅读(101) 评论(0) 推荐(0) 编辑
摘要:检查lua内存泄露 阅读全文
posted @ 2022-03-31 17:24 天下太平 阅读(728) 评论(0) 推荐(0) 编辑
摘要:grafana初级入门 阅读全文
posted @ 2022-03-28 18:47 天下太平 阅读(453) 评论(0) 推荐(0) 编辑
摘要:基于业务的架构设计 前言 一,爱学习的程序员+业务专家才能做出健壮易维护的系统。 二,减少沟通成本的好方法是都用同样的词语。 三,任何词语都能找到不止一个上下文,脱离上下文任何一个词语都有歧义。 磨练自己从实际问题中获得的分析能力,抽象能力,使得自己可以快速理解业务和抽象出精炼的业务模型来简化讨论/ 阅读全文
posted @ 2022-03-21 15:58 天下太平 阅读(96) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示