相关分享
嵌入主线程消息循环的任务调度器
这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。
问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。
作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。
文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。
学习了解数据仓库中的分层概念
本文详细介绍了数据仓库的分层概念,包括数据运营层(ODS)、数据仓库层(DW)和数据应用层(APP)。其中,DW层进一步细分为数据明细层(DWD)、数据中间层(DWM)和数据服务层(DWS)。文章阐述了各层的功能和作用,并通过实例说明如何在实际业务中应用这些分层概念。该内容适合数据工程师、数据分析师、数据架构师以及对数据仓库设计和实现感兴趣的技术人员阅读。
一次产品重构的复盘
本文深入复盘了一次完整的产品重构过程,明确了重构的时机和阶段性目标。重构中主要解决了架构混乱、性能瓶颈和用户体验不佳等问题。具体操作包括重构代码模块、优化数据库查询、引入缓存机制,并通过用户行为数据来调整功能细节。作者还提出了应对重构风险的方法,如建立测试闭环、逐步发布和快速响应用户反馈,以确保重构效果和产品稳定性。
了解和应对分布式拒绝服务攻击
分布式拒绝服务(DDoS)攻击是当今网络安全的重大威胁,如何有效应对是每个组织必须面对的挑战。本文详细介绍了DDoS攻击的类型、预防措施和应对策略,帮助你更好地保护系统免受攻击。想了解如何在面对DDoS时从容应对?不要错过这篇实用指南!
对“技术质问产品的几个常见问题”的回答
给某大厂的技术新人做了一个关于产品思维的分享,提前收集了一些困惑,贴几条提及最多的,稍微聊一下。
哦对了,先帮产品说句话——技术同学,千万别简单地用“那个产品是傻X”来回答以下问题。这是因为,作为技术,如果你总觉得和你配合的产品都是傻X,那大概率,别人会觉得你也是——要不然,为什么选择与傻X共事?所谓 “若,我看周围皆傻X,料,世人看我亦如是”。
一次消息队列异常堆积的排查
背景前两天收到业务反馈有一个 topic 的分区消息堆积了,根据之前的经验来看,要么是业务消费逻辑出现问题导致消费过慢,当然也有小概率是消息队列的 Bug(我们使用的是 pulsar)。排查通过排查,发现确实是在一点多的时候消息堆积了(后面是修复之后堆积开始下降)。。。
IM服务器设计-如何解决消息的乱序
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
IM服务器设计-消息存储
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:
1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
升级到 Pulsar3.0 后深入了解 JWT 鉴权
最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的。
Pulsar 支持 Namespace/Topic 级别的鉴权,在生产环境中往往会使用 topic 级别的鉴权,从而防止消息泄露或者其他因为权限管控不严格而导致的问题。
使用 SQL 的方式查询消息队列数据以及踩坑指南
为了让业务团队可以更好的跟踪自己消息的生产和消费状态,需要一个类似于表格视图的消息列表,用户可以直观的看到发送的消息;同时点击详情后也能查到消息的整个轨迹。
