Golang 短网址服务实现出站链接统计,及失效检测

更新日期: 2020-04-27 阅读次数: 4368 字数: 424 分类: golang

头痛的问题

  • 网站内大量的三方网站链接,经常会有失效的情况,需要自动判断是否已失效。例如阿里云大使链接和京东、淘宝链接就经常发生变更或者失效。
  • 三方链接存在于多个网页/代码中,一旦变更,就需要多处更改。如果能统一管理就方便多了,一处修改,多处生效。
  • 三方链接的点击情况统计。目前用的百度统计事件分析,无法满足上述需求。

所以,我决定写一套短链接服务,来解决这个问题。

功能需求

  • 短链接生成
  • 定时任务:自动遍历所有链接,判断是否已失效
  • 关键词检测:设置关键词,用于判断网页内是否包含此关键词,以判断是否失效
  • 转化排行榜:转化效果评估

链接形式

知乎的做法是新的二级域:

<a href="https://link.zhihu.com/?target=https%3A//tower.im" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">tower</a>

我觉得不用这么复杂,完全可以用 www 域名下的链接,然后 302 跳转到三方网站。例如,

www.sunzhongwei.com/go/s/短链码

用 302 的原因是,这个链接随时会发生变化。

数据库设计

  • id: 自增 ID
  • slug:短链接,最长六位,支持大小写字母和数字。唯一索引。可以手动指定,也可以自动分配。
  • target_url: 目标链接,即三方链接。
  • counter: 计数器。统计点击次数。
  • keyword: 页面内必须包含的关键词,检测网页是否失效用。
  • created_at: 创建日期
  • updated_at: 更新日期。更新计数器,不更新此时间。

短链接生成算法

https://stackoverflow.com/questions/22892120/how-to-generate-a-random-string-of-a-fixed-length-in-go

管理后台

尝试一下 Golang 做管理后台。

tags: 外链管理 短链接服务

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式