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 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
如果你愿意帮助墨灵,欢迎点击下方的“打赏”帮助我们。

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

支持

墨灵没有广告,墨灵的运作完全靠网友的赞赏。
如果你曾经使用过墨灵并且愿意帮助它,欢迎支持我们。

微信

微信支持

微信

支付宝

支付宝支持

image.png

Last Modified: February 27, 2021
Archives QR Code ¥ 打赏
QR Code for this page
Tipping QR Code
发表新评论

8299 Comments
  1. 爱华顿66 爱华顿66

    祝墨灵音乐越做越好

  2. 春明 春明

    不知道从何时起,音乐软件行业已被腾讯垄断,大家会发现,凡是好听的热门的音乐都开启了收费模式,甚至是一些已经过时已久的音乐也恬不知耻的找大家要钱。直到某一天从聚神铺发现了墨灵,从此走向了新大陆,全网所有音乐都能听,感觉回到了以前的音乐时代,墨灵不倒,追随到老,感谢墨灵。@(太开心)

  3. 蜗牛 蜗牛

    难得的良心网站,期待墨灵回来的那一天,加油!@(呵呵)

  4. 法国的风格 法国的风格

    很不错的软件,加油!!!

  5. pooh bear pooh bear

    期待新的墨灵

  6. 石山相 石山相

    发现墨灵是一个偶然,用过几次以后就是视为了宝藏。用某云听歌的烦恼就在于没版权,而我又不喜用其他软件,想来想去只想到了下载-云盘,这么一个土办法。慢慢的,从哪里找下载成了一个问题,墨灵就帮助我很好地解决了这个问题。很喜欢她简洁的操作界面,高效的搜索反馈。然后,出了一些变故,墨灵停用了。很遗憾很可惜,像个老朋友要离开······等着你回来吧,墨灵@(大拇指)

  7. 胡巴的尾巴 胡巴的尾巴

    加油!

  8. 557 557

    想下载试试

  9. 俊干 俊干

    希望墨灵可以更好,支持你٩(˃̶͈̀௰˂̶͈́)و

  10. Expecr Expecr

    等了好久,终于回来了

  11. Ninja Ninja

    很好的网站,加油。

  12. NoteZ NoteZ

    难得的良心网站,期待墨灵回来的那一天

  13. wpppppz wpppppz

    加油。一直很喜欢墨灵。

  14. 星雨晴空 星雨晴空

    遇见墨灵的时候,非常开心因为不用好几个音乐播放器来回切换去寻找喜欢的歌,又要去找很多的方法来获取音源,当时用魔灵下载了很多喜欢的音乐,也是我用来短暂释怀的唯一一个地方,由于生存的压力逐渐加大,在墨灵这里有了一个避风港,后来墨灵打不开了,一直再循环之前下载的歌,虽然遇见这个网站的时间比较晚,但是我一直认为这个是我最喜欢的一个音乐网站,期待着墨灵归来。

  15. 珙桐 珙桐

    如果你累了,学着去休息,而不是放弃
    感谢和墨灵的不期而遇
    送给不放弃的你一朵小红花 @(太开心)

  16. 宋小华 宋小华

    加油~

  17. 巩

    我是在18岁那年知道墨灵的,那时候刚上高三,突然猛增的学习强度压得我是真的喘不过气,用偷偷带去学校的MP3听音乐成了我唯一的放松机会,墨灵简洁直接免费的使用风格一下子就抓住了我的胃口,对于我来说,墨灵它不止是一个平台,更是我那由一首首歌、一段段苦闷高三岁月杂糅成的独一无二的感情经历。可惜在我有能力充点电的时候墨灵就关闭了,但无论如何,我都无比感谢开发者,谢谢你!也祝你新年快乐!!@(太开心)

  18. 2234 2234

    555555555555

  19. 上尚 上尚

    加油

  20. Quifv Quifv

    之前一直用的墨灵,对于他的离开很惋惜,以为以后再也用不到这么好的网站了,没想到惊喜的是我今天不知道为什么点进来的,看到了这封信,蟹蟹开发者,辛苦了@(太开心)

  21. 努力努力再努力 努力努力再努力

    加油!

  22. 隔壁老王 隔壁老王

    之前还以为墨灵会就这样可惜的离开,没想到峰回路转,还有幸能再看看熟悉的界面,十分感谢博主的不辞辛苦。
    送你一朵小红花@(太开心)

  23. 寒结 寒结

    我希望你能回来,想念我们曾经在一起的欢乐时光,回来吧!

  24. 为欢几何 为欢几何

    兜转了好多网站,墨灵用起来最舒服了。

  25. 浮生若梦 浮生若梦

    支持墨灵越来越好

  26. 阿飞的老大 阿飞的老大

    等着你王者归来,希望越做越好

  27. 长安月一弯 长安月一弯

    等着墨灵的回归

  28. 吴先生 吴先生

    定会卷土重来!!加油

  29. 左

    希望墨灵音乐越做越好

  30. 在你左右 在你左右

    在漫天收费的播放器里 好巧遇到墨灵 不爱听歌的我 遇到喜欢的 还是第一时间在墨灵搜索下载。现在很可惜,迷茫了~!!!!!!!!!!!!

  31. RY RY

    从高一开始接触墨灵,现在已经高三啦。感谢你陪伴了我的高中生活。等你卷土重来!

  32. 迷糊 迷糊

    希望早日归来让我们听到更多更好的音乐

  33. BBQQ BBQQ

    无意间接触到墨灵,真的很喜欢,收藏夹里第一的就是她,突然的一天网站关闭了,一直把墨灵放在收藏夹等着她回来,每天上班都会打开看一下,还好,我等到了。站主大神辛苦,,作者加油,我们都支持你,期待墨灵回归

  34. And  you And you

    新年快乐! 希望墨灵早日归来

  35. 墨灵加油 墨灵加油

    @(真棒)无意间发现的宝藏良心网站,等着你回归

  36. 小燚 小燚

    一直默默关注支持着墨灵音乐,期待你的凯旋,加油

  37. 墨灵音乐铁粉 墨灵音乐铁粉

    无意间接触到墨灵,真的很喜欢,收藏夹里第一的就是她,突然的一天网站关闭了,一直把墨灵放在收藏夹等着她回来,每天上班都会打开看一下,还好,我等到了。站主大神辛苦,,作者加油,我们都支持你,期待墨灵回归@(呵呵)@(吐舌),

  38. 灵汐 灵汐

    我还想在陪墨灵过第五个、第六个、以后的每一个生日呢,虽然不是计算机专业,也明白维护一个网站很辛苦,投入量很多的时间和精力,可能还有金钱,希望作者能够回归,我等你回来,永远会支持你的,加油

  39. 郭子 郭子

    作者加油,我们都支持你,期待墨灵回归

  40. 水

    希望墨灵能够早日回来吧,之前虽然也用过别的,但用过墨灵一次后就离不开了,呜呜呜~

  41. 比丘 比丘

    无意间接触到墨灵,真的很喜欢,收藏夹里第一的就是她,突然的一天网站关闭了,一直把墨灵放在收藏夹等着她回来,每天上班都会打开看一下,还好,我等到了。站主大神辛苦,,,

  42. 流小羽 流小羽

    这么好的一个网站可惜了,感谢一路陪伴

  43. 南方 南方

    希望早日归回,一直在

  44. Frank Casol Frank Casol

    希望墨灵早日归来

  45. LAYx LAYx

    用了好久的墨灵音乐 有一天发现站点永久关闭了 非常难过 墨灵陪伴我度过了好久好久 功能真的非常实用 希望墨灵能够早点归来 真的非常期待 也感谢作者为我们提供了那么好的网站 辛苦了~希望作者和墨灵越来越好 感激(๑•̀ㅂ•́)و✧

  46. 小粉丝一枚 小粉丝一枚

    @(真棒)
    20年从微博得知墨灵的存在,真的很喜欢这个单纯听歌的网址,好的网址 会永远存在的 加油!

  47. Y Y

    谢谢作者 墨灵的关闭让我想起了曾经的kupig和songtaste,这是个对音乐人最好的时代,确是对听众最坏的时代,只看到某某越来越火越来越挣钱,但是歌曲的质量却在不断下降,最近好听的歌都是一些草根歌手,因为他们都是用真诚在创作,下载的歌曲80%都是仓库和架子上的磁带CD里的歌曲,以前我买过就是我的,现在我买的是听歌的维护费,还要掏好几次钱,我无法接受,我只想要一个便捷的,全面的听歌平台而已。

  48. Rocgao Rocgao

    非常好用的站点,名字也好。期待回归的那一天。

  49. 星沉轻舟 星沉轻舟

    自打墨灵创立不久就开始使用了,很好用,很喜欢,但是就那一天打开墨灵音乐的时候却是一封感谢信,真的很突然,很惋惜,感谢墨灵陪伴了我那么长时间,希望墨灵一定会涅槃重生,越来越好,期待墨灵的下次回归,加油呀,我挺你

  50. 金猪 金猪

    墨灵真的很棒(//∇//),突然关闭很难受(;_;),希望墨灵越来越好,涅槃重生。