网易云音乐的消息队列改造之路
网易云音乐自2013年上线后,业务保持了高速增长。云音乐除了提供好听的音乐外,还留下了我们在乐和人上的美好回忆。本文整理自网易云音乐消息队列负责人林德智在近期 Apache Flink&RocketMQ Meetup 上海站的分享,通过该文,您将了解到:
网易云音乐自2013年上线后,业务保持了高速增长。云音乐除了提供好听的音乐外,还留下了我们在乐和人上的美好回忆。本文整理自网易云音乐消息队列负责人林德智在近期 Apache Flink&RocketMQ Meetup 上海站的分享,通过该文,您将了解到:
这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。
问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。
作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。
文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。
最近天气逐渐热了起来,路由器抽风的频率明显变高了,经常激烈对战时路由器直接断网,接着网络灯变黄,我只能手动插拔路由器电源来重启,同时也发现路由器外壳温度很高甚至到了烫手的程度。
对路由器散热改造提上日程,首先搜索一番散热的改造思路,大致分为两种:被动散热和主动散热。
被动散热主要是增加路由器散热板的面积,比如购买散热片贴到发热量大的地方,出了散热片,还有散热硅脂片、更换硅脂和定制更大的散热铝板等,甚至还有将显卡散热片压在路由器,代价嘛就是外壳需要切割(过于赛伯朋克,俺接受不了QAQ);
主动散热主要是利用外部设备对路由器进行散热,比如最简单的使用桌面小风扇对着路由器吹,或者像主机一样增加一个散热风扇来辅助降温。
背景前两天收到业务反馈有一个 topic 的分区消息堆积了,根据之前的经验来看,要么是业务消费逻辑出现问题导致消费过慢,当然也有小概率是消息队列的 Bug(我们使用的是 pulsar)。排查通过排查,发现确实是在一点多的时候消息堆积了(后面是修复之后堆积开始下降)。。。
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:
1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
本文是分享使用Deepin来搭建Linux的音乐制作环境的体验。
Deepin自带ALSA、Pulseaudio和FFmpeg,基于Debian能直接使用几乎所有软件。唯一有点小麻烦的地方是在wine官方源安装高版本wine需要另外安装依赖。
为了让业务团队可以更好的跟踪自己消息的生产和消费状态,需要一个类似于表格视图的消息列表,用户可以直观的看到发送的消息;同时点击详情后也能查到消息的整个轨迹。
聊聊最近对一台便宜的苹果老设备的使用和升级改造,以及过程中的小经验。
如果你没有在家里安静的进行长时间密集计算的需求,也不想“烧烤”你的 MacBook ,并且没有总成本低一些的要求,那么这个方案或许并不适合你。
相比之下,我更推荐采购支持 ECC 内存的搭载 13 代桌面 CPU 工作站(如 P360 之类的),功耗比、性能、可扩展性都很棒,美中不足的只有三点:体积大一些,使用的是工作频率不高的 DDR5 ECC 内存,价格会是这台设备的三倍。
我们选择了 CDC 模式将遗留系统中产生的变化同步到新服务中。在同步过程中,由数据层的变化推导出业务意图是成功的关键。在其他运用绞杀模式的改造中,如果能够在更上层的地方做分支也是一种好的思路,这样可以更好地还原业务。
未读消息超过100显示为99+是常见的交互,目前主流实现一定是通过 JS 逻辑判断,其实纯 CSS 就能实现一模一样的功能,兼容性还不赖,进来看看吧。