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

更新日期: 2020-03-20 阅读次数: 149 字数: 412 分类: 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 做管理后台。

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日