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
发表新评论

9305 Comments
  1. 小梅 小梅

    天呀,转眼已经这么久了,我真的好喜欢这个网站,剪视频或音频的时候都会先来这里。真的太棒了。期待重逢

  2. 墨墨 墨墨

    墨灵,等你!

  3. 大奔 大奔

    一直在用这个听歌,很方便,希望早日恢复 很给力的

  4. 银汉风高 银汉风高

    墨灵真的特别优秀,独一无二。
    望早日归来。

  5. 小白 小白

    一直在用这个听歌,很方便,希望早日恢复

  6. 磊

    加油( •_•),期待你的从新归来,感谢墨灵让我听到那么多的好歌

  7. 良冰 良冰

    非常不错的软件,在墨灵上下了很多歌曲,陪伴了我一年多的时间,真的十分感谢。看到关站消息的时候还是很震惊的呢,毕竟是一个非常出色的下载平台,那就期待着作者的“卷土重来”喽,加油!!

  8. 忧伤 忧伤

    墨灵重回之日,必是小弟归来之时。感谢墨灵带给我的音乐陪伴,带给我的美好生活

  9. CC CC

    算起来墨灵音乐陪我也很久了,刚开始的时候被干净大方的页面吸引,完全想不到是一个新手所做(可能也是因为我不懂这些吧),总之觉得墨灵音乐真的做的很好,学习累的时候听听音乐真的很享受,希望能重新回归,永远支持你们

  10. 落凡生 落凡生

    感谢墨灵音乐,让我听到想听的音乐,希望越来越好!

  11. 毕宿星河 毕宿星河

    多说无益,爱到骨里@(爱心)

  12. Senthy Senthy

    感谢墨灵音乐!

  13. 凡凡 凡凡

    说真的,音乐网站有很多,但是像你这样用心的却不多见,最重要的是背景,真的是很有特点了,符合我个人视觉感受

  14. 神秘大虾 神秘大虾

    认识您比较晚,但对您的支持绝对不会缺席,当有一天发现您突然消失了,我的心情是失落的,像失去了一个生活挚友。在这期间,我每隔一段时间就会点一下我收藏的网站地址,希望您有一天会复活,现在,我终于等到了!@(真棒)2021墨灵音乐您会更牛,期待涅槃重生。@(彩虹)

  15. 李先生 李先生

    加油奥利给

  16. liangcheng liangcheng

    感谢墨灵 永远支持你

  17. 0.0 0.0

    感谢墨灵音乐,让我能够在繁忙的工作中能够听到喜欢的音乐,也为我这平凡的生活增添了几分色彩,我,我们会等待着你的回归,也期待着我们与墨灵与你的重逢,谢谢@(真棒)@(真棒)

  18. linhao linhao

    2019年在头条看到能下载音乐的小众音乐,有4-5个音乐吧。后面发现墨灵真的玩爆其他的。第一次赞助18,后面也推荐给朋友用。特别良心的软件。为了能长久做下去觉得做登陆和会员付费是个不错到方式,例如年会员198。或者会员去广告,免费版有广告。希望早日能复活

  19. 清雨染墨衣 清雨染墨衣

    喜欢墨灵 支持

  20. Glen Glen

    为了音乐与墨灵相识,曾经找过好些网站下载歌曲,还是墨灵最好用,也向很多喜欢音乐的小伙伴推荐过。其实广告位做的柔和一点也挺容易让人接受的,毕竟都要恰饭的么@(笑眼),反正我是不介意,只要好用就行。对于恶意窃取资源的人,我不懂技术,给一些不专业的建议:下载次数达到一定数量,输一下验证码。(带点识别能力的验证码,比如图文结合)。最后祝墨灵:踏风而来,迎风而起,扶摇直上,长存屹立!

  21. 恺

    接触墨灵有小3年吧,也安利过很多人,从快要开始实习到现在工作两年,我已经有半年没有更新自己手机里的音乐了,望早日回归

  22. 基甸 基甸

    希望早日回归!

  23. didimo didimo

    支持作者,支持墨灵,平台目前虽然关闭了,但是希望以后墨灵能够变得更好更完善,希望下下次见到墨灵有更大的不同

  24. 西楼 西楼

    宝藏网站拯救我!希望早日回归鸭!

  25. Dan Dan

    意外发现本网站的时候如获至宝,我也支持正版,网易云,qq也都充了会员,但即便如此,还是会很喜欢在这儿在线听一些音乐,希望早日可以涅槃重生。

  26. 大斌 大斌

    很早之前就开始用了 非常不错的

  27. 半分伤感 半分伤感

    期待墨灵更加好呢

  28. 头大 头大

    感谢墨灵音乐,让我能够在繁忙的工作中能够听到喜欢的音乐,也为我这平凡的生活增添了几分色彩,当然,也帮助了我制作鬼畜,音MAD,人力;感谢作者的付出,我们会等待着你的回归,也期待着我们与墨灵与你的重逢,谢谢

  29. leehan leehan

    感谢墨灵音乐,感谢作者,网址会持续收藏的,就算不能用,愿早日回归

  30. 嘻哈 嘻哈

    一个很不错的音乐平台,我很喜欢。

  31. 随风 随风

    我接触墨灵是比较晚的,那时还是别人安利的,刚开始用我觉得很新奇,一个可以直接在网页打开并且可玩性挺高的音乐站点我是第一次遇到,sui ran shuo

  32. weai weai

    非常感谢你,很好的网站

  33. LibraYo LibraYo

    嘿!作者好!最开始接触到墨灵完完全全就是为了白嫖(doge)把付费歌曲下进MP3里。但到现在作为一个学生来说,墨灵带给我的绝不是省了那么几十会员费那么简单。在家在学校以及外出时所带给我音乐的美好,令我放松给我带来许多回忆的歌曲都是墨灵中寻来的。前不久发现网站关闭后我内心甚至有些负罪感,是不是像我一样白嫖的人太多了导致了墨灵的关闭,在看完这篇文章后我更是如此。虽然现在不能使用了,但我心里一直都会支持墨灵的成长的,我也非常感谢您的努力,希望墨灵和您在各方面都可以变得更好,变得更优秀!(音乐)

  34. slbos slbos

    加油

  35. 腾尘 腾尘

    跟墨灵结缘是在2020年,喜欢古风歌曲,墨灵里面特别全也特别好。希望能够重新杨帆起航,越来越好,会一直支持墨灵

  36. 马可 马可

    好家伙,强

  37. respect respect

    祝越做越好

  38. 互啊雨 互啊雨

    期待啊

  39. 江无衣 江无衣

    愿早日回归

  40. 小林 小林

    @(呵呵)期待更好

  41. 曦羽 曦羽

    期待墨灵网站再开,希望来年的我还能白嫖!!!加油加油加油加油

  42. 灰熊哥哥 灰熊哥哥

    一个计算机网络的学生党感觉能理解你的不易与成就,一个人持续坚持这样一个项目累是肯定的,不过该多有成就感啊,羡慕也佩服!希望能再见到墨灵

  43. 颜鸽鸽 颜鸽鸽

    支持作者,支持墨灵,平台目前虽然关闭了,但是希望以后墨灵能够变得更好更完善,希望下下次见到墨灵有更大的不同

  44. 下嘻嘻 下嘻嘻

    永远支持墨灵音乐 希望早日回归

  45. arks arks

    不知道从什么开始 就一直在用墨灵听音乐,再后来 网易云也不怎么用了 虽然墨灵上没有评论 但是音乐真的很全,ui很好看,最主要是有暗色模式@(你懂的),用起来很舒服,希望墨灵早日回归

  46. 域外 域外

    三年前偶然一次看见论坛推荐寻音墨灵,一用就喜欢上了。每一次朋友问我能不能帮他们下载某某歌,我都会推荐内个什么灵的网站哈哈哈,到后来终于记住了“寻音墨灵”结果再次搜索就已经关闭了,加油!希望越来越好

  47. aizhuzhu aizhuzhu

    我解除墨灵的时间不长,之前一直用的是网易,后来网易版权拿的太少,也就废弃了,直到接触到了墨灵,觉得墨灵已经完美满足了我的需求

  48. Juvenile Juvenile

    作者大大加油,期待墨灵早日回归

  49. shs81898 shs81898

    我接触你时间太短 没几天就不可以听了 你们奉献的都是优质的音乐 来日再见

  50. 一苇渡江 一苇渡江

    新年过后第一次登录却惊闻这个消息,呆呆看着收藏夹记录有些不知所措。真心不错的音乐分享软件,纯绿色、纯免费,音质效果绝佳!良心产品!感谢认识以后一年多的陪伴,希望能在以后的日子里继续见证、成长、骄傲!!!赞赞赞!!!