05 2024 档案
摘要:我们知道,lua通过package模块来管理模块的搜索和加载,当使用require首次成功加载一个模块后,模块(Table)会被存储在package.loaded中,之后的require行为会直接获取到已加载的模块缓存。 如何在程序执行时,将对模块文件的修改热更新到程序中,同时确保运行时状态的正常。
阅读全文
摘要:跨机集群的核心实现: 开启跨机消息管理服务,节点内所有需要跨进程投递的消息都通过此服务转发,通过网络送达集群内目标节点。实现: 每个进程开启服务,服务内缓存集群节点的配置信息,与每个节点建立通信连接,负责当前节点和集群内节点之间的消息通信; 根据当前节点配置监听集群消息入口(ip+port),开放与
阅读全文
摘要:Design OOP use C 使用c语言实现面向对象特性 以底层思维来理解面向对象。我所理解的oop:为不同的数据元提供稳定的处理逻辑框架,同时提供复写的可能,支持不同数据元个性化定制有限的逻辑; 多态特性: 基类实现一组通用处理逻辑接口,子类通过改变特定接口的执行逻辑实现将子类与个性化操作绑定
阅读全文
摘要:看好项目的源码总是会有重复造轮子的冲动。最近对比测了下我们业务使用的数据序列化协议的性能,review了社区上几个常用库的源码,尝试做了点优化,有些想法。浅浅写了个demo,这里记录下实现的思路,供后面查阅和反思。 协议的实现分为几个部分: schema text:协议描述文件 compiler :
阅读全文
摘要:TIPS: 我们做的全球同服,需要解决的难点主要有: 客观物理距离造成的网络质量问题; 负载均衡支持跨地区监听; 部署分区支持热扩展。 一. 网络质量优化 物理距离造成的网络质量问题,可能体现在以下方面: 1)server端的不稳定以及响应延迟; 2)网络波动造成存盘数据丢失; 3)运维部署工具失效
阅读全文
摘要:skynet框架下的业务开发,单点服务是存在理论瓶颈的。当业务上存在并发请求的场景时,服务会成为性能热点,达到服务的消费瓶颈,出现过载。 原则上讨论,当业务需求一个执行单位成为并发热点,那么实现这个执行单位就需要是足够支撑业务上限的方案。 基于这个思路,讨论几个优化: 解耦;降低过载造成的直接影响
阅读全文
摘要:平台:阿里云mongoDB云数据库 版本:Mongodb 4.2 数据库集群方案:一主二从三分片 需求:手动释放过剩磁盘空间 从文档解析可知:delete数据或者做分片数据迁移,并不会释放磁盘空间,而是将这些空间标记为reuse可重用状态,后续新写入的数据会重用这部分空间。 需求是手动释放这些空间,
阅读全文
摘要:对于关键流程,所有请求都要求返回有效结果,如创建socket连接: function luasocket:connect() return socketcore.open(self.__host, self.__port) end 显然外部调用需要获取到正确的socket句柄用于数据交互,当并发调用
阅读全文