(。•ˇˇ•。)我没能给墨灵过上 4 岁生日。
关闭之际,我想回顾这近 1300 天的历程。
墨灵是 mkplayer 开源项目的改进版,也是我作为计算机初学者的第一个练手的项目。诞生之际,我没想过会有这么多人会去用它。
随着墨灵的长大,它的经历越来越丰富,故事越来越多。
技术回顾
非技术回顾(作者感想)
如果你对墨灵音乐所使用的技术不感兴趣,建议直接点击链接浏览《墨灵音乐给全体用户的一封信》:https://qugeek.com/blog/archives/Work-summary-of-Moling.html#menu_index_20
前端
JS
因为我是菜鸟,所以当时只学会了最基本的 JS,还没接触 Vue 等。没有使用 ES6,因为浏览器兼容(vivo 手机浏览器...)问题。
没用上 worker 、pwa 那些高端玩意。低端玩家,比如我,使用各种小玩意来优化前端性能。不得不叹息一句:WebSQL 普及的真差。
总有人问我,前端 JS 为什么加密?前端加密一定是可解的。接口不希望轻易暴露,加密也只防君子不防小人。事实证明:It worked.
CSS
大量使用动画,使用完善的 Weui 库来支持夜间模式。
我是从 Weui 库的源码中学会如何只使用 CSS 来完成夜间和白天的主题切换。
异常上报
使用 Sentry、frontjs 平台监控。
主要用来防止更新版本后 bug 爆发。
数据统计(埋点)
依次使用了百度统计、Google Analysis、自建程序,最后回到了百度统计。
因为埋点过多,程序无法处理大量的数据导致跑着自建统计程序的服务器屡次阵亡,最后放弃。百度统计比谷歌统计更加清晰;谷歌统计非常细化,只适用于商业化站点。
后端
PHP:因为我是菜鸟,所以当时我只会 PHP
至今还在疑惑 PHP 为何会 503。现在能说得通是肉鸡扫服务器时提交了垃圾数据,程序没有做异常处理,然后。
无数据库:没有使用任何数据库,不是因为我菜,是因为不需要。程序的缓存和大量小文件数据都存放在高效的文件系统中。
唯一遇到的问题就是数据迁移与备份。硬盘中存储了超过 900 万的缓存。初期未预知到文件这么多,导致硬盘 inode 爆满。
![]()
服务
服务器
为了省钱(穷),各种优惠服务器真是能嫖就嫖。
主站、API、鉴权分别部署在三台主机上。服务器指标:高性能高 IO,稳定可靠。
下载服务器部署在若干主机上。服务器指标:低性能、高上传。
前后大大小小的服务器部署了至少也有 50 台左右了。牢记:快照、先备份再操作。
域名
域名前后换了几个。还是 COM 最香。
DNS
用的 DNSPOD 企业基础版。主要用到的是负载均衡功能。
下载是用的一个域名,根据主机权重在 DNS 层面实现负载均衡。这样最简单,但显然这样的负载均衡不是严格按照权重分配的。
CDN
用的腾讯云全球 CDN。特殊时期: CLoudflare Pro 版本。
阿里 CDN 功能过于细分,不适合。腾讯云 CDN 无攻击减免,下图为被攻击惨况。
运行状态
主机监控:阿里云云监控。用于监控全部主机的 CPU 等核心信息。
外部监控:UptimeRobot PRO(一个国外的平台)。用于监控域名、主机、CDN 的外部可通性和可用性。
攻击
这三年,我目睹了:DNS FLOOD 攻击、云服务器 DDOS 攻击、CDN DDOS 攻击、API 接口伪造攻击。
有趣的是,攻击我的人似乎是同一个。没有很好的对付策略,放平心态。
用 PHP 写了一套自己的 IP 评分机制,用来阻止 API 接口攻击。
其他
域名被腾讯封锁:被别人恶意举报,被网友们提交申诉救回来了。是个奇迹,我自己没想到能起死回生。
SSL:因为方便,所以用上了付费证书。因为国内环境,开启了 OCSP。
版本控制
没用上 git 来实现版本控制。
无法追溯 bug 是最头疼的了。
一些数据
跑了:1300 天左右
播放:70 万首歌曲/天(按次、不去重、平均值)
搜索:13 万次/天(按次、不去重、平均值)
Q 群:12 个(后面建不动群了,干脆就把整个群清空再加人)
代码量:除去库,标准格式化后估摸 1 万行吧。感觉没啥意义。
总结
值得被吐槽的地方很多,当然,当时菜鸟的我只能做到这水平了。
如果有机会,肯定会用上最新的技术来写。
每个部分实现起来并不复杂,甚至对于很多大佬来说,too easy 甚至 too low 了。然鹅,完整的跑起来并让它持续地跑是一件相当有挑战的事情。一个人顾及方方面面,确实不易。
维护起来因为平时就很忙所以断断续续的。维护的不连续性也产生了很多麻烦。
现在回看,我觉得最糟糕的是:很多东西没有深入理解或者学习,就用上了。比如 :SSL 原理不懂,就给部署上了。JS、CSS 没系统学,边写边抄是大忌。
下一次的目标
或许有一天我会“卷土重来”。
始终维护旧项目,会让自己的技术落后,一直困在舒适圈里面。
至始至终,代码是一个人在写。所以,都是自己想怎么来就怎么来。
如果有那么一天,我会进行重构。
模块化、组件化、规范化,是下一次的目标。(有感于文章 https://75.team/post/yunpan_refactoring)
非技术总结
墨灵音乐后续(2021 年新春)
墨灵音乐会被我重写一遍代码,然后以全新的形态发布。
功能只增不减,目前计划不公开开放。
在本文章下面认真评论的小伙伴,
届时会收到邀请邮件。(评论时建议填写 QQ 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
新年快乐!
(。・ˇˇ・。) 我没能给墨灵过上 4 岁生日。
关闭之际,我想回顾这近 1300 天的历程。
墨灵是 mkplayer 开源项目的改进版,也是我作为计算机初学者的第一个练手的项目。诞生之际,我没想过会有这么多人会去用它。
随着墨灵的长大,它的经历越来越丰富,故事越来越多。
一、 墨灵刚部署之时起初,我只是当作一个练手程序去做。所以,我的绝大多数时间都是用在“写新功能”(自娱自乐)上。那个时候,更新墨灵是一件非常简单的事情:写代码 → 推送到服务器 → 完成。
二、 小有名气之时当墨灵的用户越来越多的时候,问题随之暴露。
1.第一个阶段添加的新功能,未做浏览器兼容测试,未做细节优化,功能只是处于能用的阶段。一个好的程序的功能应该是“易用的”,而不是“能用的”。随着用户提交的反馈越来越多,墨灵开始细化功能,打磨用户的每一次点击。
2.我发现我也不能再像之前一样更新墨灵,因为我的一次隐藏着 bug 的更新会波及到非常多的用户。所以,更新墨灵变成了一件富有挑战的事情:收集用户反馈、确定要更新的内容 → 编写代码 → 本地多次测试 → 凌晨推送更新 → 线上测试 → 决定是否回滚代码 → 完成。 挺累,但挺好。
三、 初具规模
(╯‵□′)╯︵┴─┴ 当墨灵的用户再翻倍的时候,问题又来了。
① 服务器“爆炸”了。服务器其实没有那么神秘,它和你家的电脑、手机没有本质区别。
服务器爆炸 意味着 服务器太忙 ,当然也意味着 加钱。
② 费用“爆炸”了。买服务器要钱,钱包受伤,这个我就不多言了。
③ 我“爆炸“了。其实,服务器满载,我挺开心的,自己的东西能被人用,谁不开心呢?然而,我发现了不善的访客,他们在恶意消耗服务器资源。墨灵一直没有做登录功能,不是我不能,是我不想。对于用户而言,登录是一种麻烦。对于我而言,登录功能意味着把用户进行分类,或者说我可以选择差异对待用户。这不是墨灵的初衷。因此,每一个用户对于我们来说都是匿名访问。然而,这种”匿名“给我们带来了麻烦,不足 0.1% 的恶意用户消耗着我们 80% 的资源。我花了大量的时间,在尽量避免影响正常用户,不加入登录功能的情况下,去解决这个问题。值得开心的是,这个问题被解决了。遗憾的是,1→ 我投入了大量的精力以至于拖延了整体更新进度。 2→ 这会影响极少数网络环境异常但确实是正常用户的访问。我写了这么长的一段来说这个问题,是有原因的:不仅仅是我,任何网站的开发者,在用户量上升的阶段一定会遇到这个问题。开发者们都非常头痛,用户的不理解往往加剧了这个问题。
墨灵教会我的,也是最重要的:一个程序的功能完整是基础,最最最重要的是功能易用。功能上线前的一次次测试,是为了提高功能的易用性。一个程序的某个功能不能正常运作,不应该是告诉用户“开发者预期的操作过程“,而是程序本身应该足够完善,无论用户做了什么动作,用户都能得到它预期的结果。这就好像,一个好的产品,不需要说明书,无论是傻瓜还是精通的人,无论是老人还是年轻人,都能轻易上手。条条大路通罗马,应该是一个程序设计的准则。当然,这也是墨灵每一次测试的准则。
至于,墨灵为什么关闭,有很多原因,可能你很关心,但是我不太想与你分享。
墨灵音乐后续(2021 年新春)
墨灵音乐会被我重写一遍代码,然后以全新的形态发布。
功能只增不减,目前计划不公开开放。
在本文章下面认真评论的小伙伴,
届时会收到邀请邮件。(评论时建议填写 QQ 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
新年快乐!
· 史蒂芬·平克:“写作之难,在于把网状的思考,用树状的结构,体现在线性展开的语句中”。 · 除明显标注转载的文章外,均为原创。未经同意,禁止任何方式转载、复制、修改后发布。本博客内的所有内容,包括但不限于文字、图片、图表等内容受中华人民共和国《著作权》法和《民法典》的保护,凡未经权利人明确书面授权,转载上述内容均属侵权行为。 · 本博客图片均含有盲水印,文字含有特殊零宽字符,已委托版权卫士保护版权!
等你回来!
@(呵呵)
感谢陪伴,期待回归,加油
加油 努力 你可以
感谢之前的陪伴,目前国内的音乐状态真的非常糟糕,让系统自带的音乐播放器彻底失去了用处,像QQ音乐,直接把音乐加密......把我唯一的放松方式也搞没了。。。希望能够早日归来,加油,明天一定会更好的!我们一直支持你
加油!
很喜欢你的网站 之前换成自由音乐的时候还以为能多撑一会 没想到呀 支持你qwq
加油
其实版权的问题现在国内有意识是一件很高兴的事情。但是因为我个人原因:跑步喜欢MP3而非带手机,导致需要下载MP3文件的音乐文件,但是通常大多数音乐软件的会员下载后大多是加密文件,MP3无法识别,所以墨灵还是对于我来说有很大的帮助。同时同为软件工程专业的学生能够看到作者的作品也感到很强大!加油!期待你的归来
感谢作者辛勤的付出
下班后听歌已经是解压的方法之一了,感谢这几年的网站
这是另一个好的网站
@(泪)支持!!
真的在网课期间在家没有同学聊天的时候墨灵遇见墨灵是我的幸运,惭愧的是现在还没有财务自由,等我,未来的新墨灵我会支持的!@(乖)
我是从知乎上的一篇文章了解到墨灵的,之所以搜这种资源一开始就是为了给自己的车载U盘下载歌曲的,可是一般歌曲下载都有版权限制,要么就是会员,我可是要下载很多很多歌曲的,所以就想到了白嫖(虽然动机不纯),文章作者介绍好几个,试了之后定下了墨灵,不为别得,就两个字“好用”,当然是相对于别得网站来说了。除了歌单少点,其他我觉得没什么问题,毕竟免费不可能要求太高了,不过惭愧的是我还没赞助过。希望墨灵越来越好吧,有机会肯定赞助的!作者加油!@(哈哈)
感谢墨灵音乐的陪伴!感谢作者大大!加油!
期待啊,很期待,离开时很难受,希望赶紧回来@(呵呵)
@(哈哈)
作者真的厉害,期待归来,不得不说一句白嫖真香,哈哈哈
等你回来
希望能再次看到新版的it大神的音乐网站,期待!
加油
天呀,转眼已经这么久了,我真的好喜欢这个网站,剪视频或音频的时候都会先来这里。真的太棒了。期待重逢
墨灵,等你!
一直在用这个听歌,很方便,希望早日恢复 很给力的
墨灵真的特别优秀,独一无二。
望早日归来。
一直在用这个听歌,很方便,希望早日恢复
加油( •_•),期待你的从新归来,感谢墨灵让我听到那么多的好歌
非常不错的软件,在墨灵上下了很多歌曲,陪伴了我一年多的时间,真的十分感谢。看到关站消息的时候还是很震惊的呢,毕竟是一个非常出色的下载平台,那就期待着作者的“卷土重来”喽,加油!!
墨灵重回之日,必是小弟归来之时。感谢墨灵带给我的音乐陪伴,带给我的美好生活
算起来墨灵音乐陪我也很久了,刚开始的时候被干净大方的页面吸引,完全想不到是一个新手所做(可能也是因为我不懂这些吧),总之觉得墨灵音乐真的做的很好,学习累的时候听听音乐真的很享受,希望能重新回归,永远支持你们
感谢墨灵音乐,让我听到想听的音乐,希望越来越好!
多说无益,爱到骨里@(爱心)
感谢墨灵音乐!
说真的,音乐网站有很多,但是像你这样用心的却不多见,最重要的是背景,真的是很有特点了,符合我个人视觉感受
认识您比较晚,但对您的支持绝对不会缺席,当有一天发现您突然消失了,我的心情是失落的,像失去了一个生活挚友。在这期间,我每隔一段时间就会点一下我收藏的网站地址,希望您有一天会复活,现在,我终于等到了!@(真棒)2021墨灵音乐您会更牛,期待涅槃重生。@(彩虹)
加油奥利给
感谢墨灵 永远支持你
感谢墨灵音乐,让我能够在繁忙的工作中能够听到喜欢的音乐,也为我这平凡的生活增添了几分色彩,我,我们会等待着你的回归,也期待着我们与墨灵与你的重逢,谢谢@(真棒)@(真棒)
2019年在头条看到能下载音乐的小众音乐,有4-5个音乐吧。后面发现墨灵真的玩爆其他的。第一次赞助18,后面也推荐给朋友用。特别良心的软件。为了能长久做下去觉得做登陆和会员付费是个不错到方式,例如年会员198。或者会员去广告,免费版有广告。希望早日能复活
喜欢墨灵 支持
为了音乐与墨灵相识,曾经找过好些网站下载歌曲,还是墨灵最好用,也向很多喜欢音乐的小伙伴推荐过。其实广告位做的柔和一点也挺容易让人接受的,毕竟都要恰饭的么@(笑眼),反正我是不介意,只要好用就行。对于恶意窃取资源的人,我不懂技术,给一些不专业的建议:下载次数达到一定数量,输一下验证码。(带点识别能力的验证码,比如图文结合)。最后祝墨灵:踏风而来,迎风而起,扶摇直上,长存屹立!
接触墨灵有小3年吧,也安利过很多人,从快要开始实习到现在工作两年,我已经有半年没有更新自己手机里的音乐了,望早日回归
希望早日回归!
支持作者,支持墨灵,平台目前虽然关闭了,但是希望以后墨灵能够变得更好更完善,希望下下次见到墨灵有更大的不同
宝藏网站拯救我!希望早日回归鸭!
意外发现本网站的时候如获至宝,我也支持正版,网易云,qq也都充了会员,但即便如此,还是会很喜欢在这儿在线听一些音乐,希望早日可以涅槃重生。
很早之前就开始用了 非常不错的
期待墨灵更加好呢
感谢墨灵音乐,让我能够在繁忙的工作中能够听到喜欢的音乐,也为我这平凡的生活增添了几分色彩,当然,也帮助了我制作鬼畜,音MAD,人力;感谢作者的付出,我们会等待着你的回归,也期待着我们与墨灵与你的重逢,谢谢