Skip to content

✨高性能的企业级短链接服务系统。基于Go + DDD架构,支持智能跳转、访问统计和安全管理,毫秒级响应,轻松应对高并发场景。High-performance enterprise URL shortening service. Built with Go + DDD architecture, featuring smart redirection, access analytics, and security management. Millisecond-level response time for high-concurrency scenarios.

License

Notifications You must be signed in to change notification settings

shuakami/Linkit

Repository files navigation

Linkit Logo

Linkit

简体中文 | English

Go Version License Build Status API Docs

这是一个使用 Go 语言开发的高性能短链接服务系统,采用领域驱动设计(DDD)和整洁架构(Clean Architecture)实现。

它不仅提供基本的短链接功能,还支持智能跳转和详细的访问统计,帮助企业更好地管理和分析链接数据。

产品特性

Linkit Management

Linkit Performance

核心功能

  • 短链接生成:支持长链接转短链接,支持自定义短码。
  • 智能跳转:根据访问者的设备类型、地理位置等条件进行智能跳转。
  • 访问统计:提供详细的访问数据统计,包括访问次数、来源、设备类型等。
  • 安全管理:支持链接过期时间设置和访问次数限制,确保链接安全。

技术架构

Linkit 采用了现代化的技术栈,确保系统的高性能和可扩展性:

  • Web 框架:Gin - 轻量高效,适合高并发场景。
  • 数据库:PostgreSQL - 强大的数据存储和查询能力。
  • 缓存:Redis - 多级缓存策略,提升系统响应速度。
  • 架构设计:DDD + Clean Architecture - 业务逻辑清晰,易于维护和扩展。

快速开始

以下是快速启动 Linkit 服务的步骤:

  1. 克隆项目到本地:

    git clone https://github.com/shuakami/linkit.git
    cd linkit
  2. 环境准备:

    • 安装 Go 1.21+
    • 安装 PostgreSQL 14+
    • 安装 Redis 7+
  3. 配置服务:

    项目根目录下有一个示例配置文件 configs/config.example.yaml,复制一份并重命名为 config.yaml

    Windows:

    copy configs\config.example.yaml configs\config.yaml

    Linux/Mac:

    cp configs/config.example.yaml configs/config.yaml

    然后编辑 config.yaml 文件,主要需要修改以下配置:

    • 数据库连接信息(host、port、user、password、dbname)
    • Redis连接信息(host、port、password)
    • 短链接域名(domain)
  4. 启动服务:

    # 下载依赖
    go mod download
    
    # 初始化数据库
    go run scripts/migrate.go
    
    # 启动服务
    go run cmd/main.go

服务启动后,你可以:

  1. 访问 https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/shuakami/linkit/master/docs/api.yaml 查看在线API文档
  2. 或直接查看项目中的 docs/api.yaml 文件了解API详情

如果你觉得这个项目对你有帮助,那就给个Star呗~

About

✨高性能的企业级短链接服务系统。基于Go + DDD架构,支持智能跳转、访问统计和安全管理,毫秒级响应,轻松应对高并发场景。High-performance enterprise URL shortening service. Built with Go + DDD architecture, featuring smart redirection, access analytics, and security management. Millisecond-level response time for high-concurrency scenarios.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages