MENU

「作品总结」墨灵音乐

December 12, 2020 • 技术,原创,作品,生活

(。•ˇˇ•。)我没能给墨灵过上 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 来完成夜间和白天的主题切换。

ff5b00022184b116b636.png

137a000010bff9b1b5d6e.png

异常上报

使用 Sentry、frontjs 平台监控。

主要用来防止更新版本后 bug 爆发。

数据统计(埋点)

依次使用了百度统计、Google Analysis、自建程序,最后回到了百度统计。

因为埋点过多,程序无法处理大量的数据导致跑着自建统计程序的服务器屡次阵亡,最后放弃。百度统计比谷歌统计更加清晰;谷歌统计非常细化,只适用于商业化站点。

www.frontjs.com_app_ac24913a464b1a319f2218b7e6367205 (1).png


后端

PHP:因为我是菜鸟,所以当时我只会 PHP

至今还在疑惑 PHP 为何会 503。现在能说得通是肉鸡扫服务器时提交了垃圾数据,程序没有做异常处理,然后。

无数据库:没有使用任何数据库,不是因为我菜,是因为不需要。程序的缓存和大量小文件数据都存放在高效的文件系统中。

唯一遇到的问题就是数据迁移与备份。硬盘中存储了超过 900 万的缓存。初期未预知到文件这么多,导致硬盘 inode 爆满。

QQ截图20201213002009.png


服务

服务器

为了省钱(穷),各种优惠服务器真是能嫖就嫖。
主站、API、鉴权分别部署在三台主机上。服务器指标:高性能高 IO,稳定可靠。
下载服务器部署在若干主机上。服务器指标:低性能、高上传。

前后大大小小的服务器部署了至少也有 50 台左右了。牢记:快照、先备份再操作。

域名

域名前后换了几个。还是 COM 最香。

DNS

用的 DNSPOD 企业基础版。主要用到的是负载均衡功能。

下载是用的一个域名,根据主机权重在 DNS 层面实现负载均衡。这样最简单,但显然这样的负载均衡不是严格按照权重分配的。

CDN

用的腾讯云全球 CDN。特殊时期: CLoudflare Pro 版本。

阿里 CDN 功能过于细分,不适合。腾讯云 CDN 无攻击减免,下图为被攻击惨况。

QQ 截图 20201212234350.png

运行状态

主机监控:阿里云云监控。用于监控全部主机的 CPU 等核心信息。
外部监控:UptimeRobot PRO(一个国外的平台)。用于监控域名、主机、CDN 的外部可通性和可用性。

QQ截图20201213001418.png

QQ截图20201213001029.png

攻击

这三年,我目睹了:DNS FLOOD 攻击、云服务器 DDOS 攻击、CDN DDOS 攻击、API 接口伪造攻击。
有趣的是,攻击我的人似乎是同一个。没有很好的对付策略,放平心态。

QQ 截图 20201212235630.png

QQ 截图 20201212235813.png

用 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 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
新年快乐!

此处内容需要评论回复后方可阅读

Last Modified: February 10, 2021
Archives QR Code
QR Code for this page
Tipping QR Code
发表新评论

2546 Comments
  1. lala lala

    牛年大吉,祝墨灵音乐牛转乾坤。

  2. 玲珑猫 玲珑猫

    重生☺️☺️☺️☺️☺️☺️

  3. 破晓之心 破晓之心

    加油啊,用你的网站很久了,一直觉得特别感慨,(ui真的好看)支持作者,希望你继续做下去。期待你的新作品。(σ゚∀゚)σ⁶⁶⁶⁶⁶⁶⁶⁶⁶⁶

  4. leo leo

    我是19年开始用墨灵的。。。可能用的时间不是很长,但是它的界面真的真的非常适合我——对于我这种懒癌患者,需要的就是这种平台。。。讲真,当时发现无法用失落了一段时间,但是也理解,个人要维护它应该确实很难。。。愿能浴火重生,凤凰涅槃

  5. 十一 十一

    爷回青,墨灵加油呀@(太开心)

  6. 是原同学啊 是原同学啊

    谢谢作者的作品陪伴,让我可以沉浸在杰伦的世界中。@(呵呵)

  7. 传国玉玺 传国玉玺

    墨灵音乐是从不死鸟论坛知道地址的,中间也多少支持过一点,向周围朋友推荐过墨灵音乐,界面很喜欢。因特殊原因无法继续运行,心中多少有些不舍,愿牛年墨灵音乐能以全新姿态出现,祝福,新年快乐。

  8. 程乐 程乐

    唯一一个为了让广大乐民可以免费试听下载歌曲的网站,一次机缘巧合知道了该网站,现在却被迫停止,心里有无尽的不舍,希望以后还能继续与我们大家见面,给大家一个更好的试听体验。

  9. FEDERICO FEDERICO

    很多网站关停的都很突然,而对我而言墨灵的关停是不一样的,某天习惯性打开墨灵时,却发现没法看到熟悉的界面,在网站上的回忆,以及第一次找到这个网站的欣喜都变成了遗憾和不舍,去各种论坛上找寻原因也找不到,这让我以为再也看不到这个网站了,而今天也是心血来潮,点开了收藏夹里这个很多次尝试却失望而归的网页,当我发现能打开的一刻,我第一反应是真的开心,没有失去联系,希望能再见!新年快乐!!!@(爱心)

  10. WiiN WiiN

    等候

  11. 石头茨 石头茨

    不容易,辛苦了。

  12. 一个小用户 一个小用户

    很感谢你的墨灵,在我高考的那一年里听歌是我的放松。在这个付费的时代,你的免费是一种清流。我也曾打赏过几块钱,很抱歉没能给你啥帮助,不管你是否再来感谢你的陪伴。你的清洁的页面,免费的项目……等你回来。

  13. 仙女山的月亮 仙女山的月亮

    加油吖!希望墨灵越做越好,一个人做这么多事一定很累,也要好好休息吖,新的一年,祝你新年快乐吖!

  14. 冷暖 冷暖

    说真的,当初看见墨灵无法使用时失落了很长一段时间,因为当初它在我成长路上一路陪伴着我,我得心情就是它那时播放得音乐,开心失落都有它,现在它重新开始了,我也希望它能一路慢慢进发也能焕发出属于它得光芒~!
    加油_墨灵_希望我们能在彼此成长得道路上在相遇_!

  15. 沈佳路 沈佳路

    用过很多的音乐软件和网站,但是最终还是选择了墨灵音乐,这是一个非盈利无广告,站在用户角度做的网站,她的界面胜过其他音乐网站,不是说功能多么繁琐,而是非常舒服,让你一见倾心的那种。进过墨灵QQ群,知道墨灵运营的不易。得知墨灵关停,真的很难过。希望大家包括我可以积极给墨灵网站捐款,不要拒绝伸出援手。加油吧,墨灵!@(蜡烛)

  16. ZZ星 ZZ星

    关于墨灵我接触的时间并不长,吸引我的是他用极简的操作界面带给了我极佳的用户体验,谢谢作者大大给我们提供了这么棒的墨灵。希望这仅仅是个起点作者大大加油,大家新年快乐!

  17. 断肠先生 断肠先生

    2021.依旧等你,牛年来袭,乾坤挪移,涅槃重生,风生水起,我在原地。

  18. DCTW DCTW

    墨灵必然会东山再起,在创佳作。@(哈哈)@(笑眼)
    新年快乐。

  19. 小奋斗 小奋斗

    在2021开年之际,希望墨灵音乐旗开得胜,真的是很好的音乐网站,加油加油!

  20. 吴先生 吴先生

    牛年大吉,祝墨灵音乐牛转乾坤。
    希望墨灵音乐重新启航,嘻嘻嘻嘻
    越做越好!

  21. 刘金辉 刘金辉

    作为计算机硕士的我,非常有意愿提供技术支持,也非常喜欢期待墨灵的进一步成长,期待成为创业公司的那一天!新的一年希望墨灵可以越来越好,功能越来越成熟。@(哈哈)

  22. 哈

    墨灵音乐伴随了我很久,也教会了我成功,一切都需要靠自己,人生亦是如此。我很喜欢他它,不仅仅是因为它给了我一个免费下载音乐的方法,而且还带来了成功。

  23. ディガのお父さん ディガのお父さん

    平时不怎么会发布评论,所以我也不知道该怎么说,我只能希望墨灵可以回来,墨灵确实给了我一段不完美但是印象深刻的记忆。
    新年快乐,加油!!!

  24. 哈哈哈哈 哈哈哈哈

    墨灵真的是为数不多的各种服务都很优秀的音乐网站,希望可以以全新的姿态回来

  25. 残阳 残阳

    2021牛转乾坤!墨灵再次归来,新的一年希望墨灵越走越远!也祝作者新年快乐!

  26. 奇异 奇异

    墨灵挺不错的,尤其是现在大部分音乐都是被加密的当下还有墨灵提供资原,主要是很多新歌(我是网易云用户)网易云才刚出,墨灵就有了,这一点必须点个赞,希望墨灵能够越做越好吧

  27. 梧桐树下的秘密 梧桐树下的秘密

    墨灵终于要回来了,期待,希望可以越来越好,新年快乐

  28. 墨铭骑缪 墨铭骑缪

    墨灵加油

  29. langlang langlang

    加油!

  30. 天堑 天堑

    虽然看不太懂啥子程序,但能知道墨灵很不容易,期待你的归来!!简洁的界面,舒适的体验。从歌到歌词,海报。很少有这种宝藏音乐网站了。从第一次用我就喜欢上了它。可惜没过多久,墨灵就关闭了。知道他将再次归来,很期待!作为一个学生党,墨灵简直就是一个神器!

  31. 清风归客 清风归客

    WOW回来了!!!加油 !最后祝新年快乐

  32. 熙

    墨灵加油!一个人敲代码,哥哥你太不容易了,我就祝哥哥头发掉少点吧和墨灵越来越好吧。

  33. 无心 无心

    首先谢谢作者给我墨灵相处的机会每当我喜欢上一首歌,看到充值的提示,我都会想起墨灵给我的巨大帮助,对于我这个平民来说确实没那么多资金去支付各大平台的vip,而墨灵给予了我莫大的帮助,十分感谢!我很崇拜你,因为我喜欢it,但是我却一窍不通,一条条数据代码,让我一脸懵逼,但他却给那么多人打来了巨大的改变,希望作者在新的一年里继续秉持初衷,做自己想做的事,牛转乾坤!@(呵呵)

  34. 南方 南方

    希望可以回来,用了很久了,非常不错,新年快乐,墨灵!

  35. 离

    爷回来了,网站屏蔽也别想拦我,我说的。@(酷)

  36. dming dming

    墨灵让我明白一切的等待皆有意义,墨灵浴火重生,希望墨灵越来越好新的一年一起加油!

  37. 哈哈哈 哈哈哈

    太厉害了,一直以为是哪个公司里面的人弄得,我辈楷模啊。@(哈哈)

  38. 大大的拥抱 大大的拥抱

    记得是一次偶然的百度搜索,便结缘了墨灵音乐,从此我成为了周围朋友里的歌曲大神,可以下载各种他们下载不了需要会员的歌曲,再往后家里有了车,墨灵音乐又能为我的U盘加一把火,感觉没有为听歌发愁过,没有广告,网页打开,很纯粹的听歌,直到墨灵音乐关闭到现在,也没能找到任何一款在我心里能比得上墨灵音乐的,希望它早些回来

  39. 牛奶咖啡 牛奶咖啡

    墨灵让我懂得所有的等待并不是徒劳的,有时候短暂的告别是为了更好的重逢,终于等到你,我们都没有放弃

  40. 煜黯 煜黯

    墨灵音乐回来了,可以说是挺激动的,毕竟又可以白嫖音乐了嘿嘿@(大拇指)

  41. 一生唯爱一人 一生唯爱一人

    墨灵音乐陪伴我很长时间,一下子没了,还有些不习惯。不过,现在又再一次有了重新开始机会,我一定不会错过了。

  42. 如此星辰如此夜 如此星辰如此夜

    爷青回

  43. 浩然正气 浩然正气

    这应该是互联网上为数不多的净土了,去年假期一直在用,今年太忙就没咋用了,但是还是希望它一直存在下去。同时作者要保护好自己。

  44. Le Le

    之前用了一阵子感觉很不错,后来进不去了有点伤感上么好用的东西说没就没了,然而它一直在我的收藏夹里,大年三十无意间点开竟然看到这个振奋人心的消息,真的很开心,这大概是作者送给我们的新年礼物吧@(花心)

  45. 颖

    希望强势归来,真心期盼着!

  46. ☁

    你说过有一天会卷土重来的!

  47. 光

    我特别喜欢墨灵,好希望她能回来

  48. adonis adonis

    认识她有好一阵子了 一开始她好像一个秘密不愿被人们知道 当我周围的同学都get到她我有些后悔 尤其是说墨灵被封我十分不开森 我说那不是被封好吧 创立一个这样的网站也不容易需要资金技术支持的 现在她又回来了

  49. 听白 听白

    很高兴墨灵音乐即将回归,先前听到墨灵音乐关闭,冥冥之中感觉结局没有到来,突然听到墨灵音乐即将重启,我想,或许这就是结局:浴火重生!我们一起加油!

  50. twinkle twinkle

    新年新气象,墨灵满血复活哈哈哈哈哈,谢谢墨灵这么久的陪伴,爷青回嘿嘿嘿