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

更新日期: 2020-04-27 阅读次数: 417 字数: 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 做管理后台。

爱评论不评论

近期节日

2020年06月05日 世界环境日
2020年06月05日 芒种
2020年06月06日 全国爱眼日
2020年06月11日 中国人口日
2020年06月20日 世界难民日
2020年06月21日 父亲节
2020年06月21日 夏至
2020年06月22日 中国儿童慈善活动日
2020年06月23日 国际奥林匹克日
2020年06月25日 全国土地日
2020年06月25日 端午节
2020年06月26日 国际禁毒日
查看更多节日