Github好码推荐-Saku一个高性能的短链服务

Saku

Saku一个高性能的短链服务

😷疫情无情,人有情,来了就Star⭐一下吧 ☝️

整体设计

 

  • 1、解决内容中url太长影响阅读体验和内容质量
  • 2、短链容易转换(二维码)、传播分享
  • 3、长链第三方无法识别(微信、钉钉)

短链请求过程&原理

 

Features

  • 支持MurmurHash/DB Auto Incr 高性能生成短链

Quick Start

  • git clone
  • 配置

    saku:
      type: hash # 默认hash(基于Murmurhash),可选dbincr(数据库自增)
    
    spring:
      datasource:
        url: jdbc:postgresql://postgres.host:5432/xxx
        username: postgres
        password: postgres
        driver-class-name: org.postgresql.Driver
    
    # 服务启动的端口
    server:
      port: 9555
    
  • 启动服务

  • 生成短链 /v1/saku/12s

     

    • GET Request

      http://localhost:9555/v1/saku/l2s?url=https%3a%2f%2fmp.weixin.qq.com%2fs%3f__biz%3dMzIwMDY0Nzk2Mw%3d%3d%26mid%3d2650321066%26idx%3d1%26sn%3d0c1f15868b7d091736684a5b5a3639b4%26chksm%3d8ef5e4deb9826dc8f9374717ff1ecdbee434fc3470f6652693f7bebf9a58491a2ca8b381a57d%26scene%3d21%23wechat_redirect
      
    • return

      9S5ggRpb3q6
      

  • 使用短链换取原URL:/v1/saku/s2l

    image-20200323091714620

    • GET Request

      http://localhost:9555/v1/saku/s2l?surl=9S5ggRpb3q6
      
    • return

      https://mp.weixin.qq.com/s?__biz=MzIwMDY0Nzk2Mw==&mid=2650321066&idx=1&sn=0c1f15868b7d091736684a5b5a3639b4&chksm=8ef5e4deb9826dc8f9374717ff1ecdbee434fc3470f6652693f7bebf9a58491a2ca8b381a57d&scene=21#wechat_redirect
      

TODO

  1. hash 方式冲突问题
  2. 分表
  3. 提供压测数据
  4. 支持多种数据库(mysql 、Oracle)

Feedback

gshiwen@gmail.com

License

Apache License 2.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来AI编程

共鸣===鼓励 打赏您随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值