littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于Spring Boot和Dubbo的分布式TinyURL生成系统

项目简介

本项目是基于Spring Boot和Dubbo框架的分布式TinyURL生成系统,主要提供高效、可扩展的短链接生成和管理服务。TinyURL能将长URL转换为短URL,常用于微博、社交媒体等,可节省字符空间并提升用户体验。

项目的主要特性和功能

  1. 短链接生成
    • 可将输入的长URL自动转换为对应的短URL。
    • 用户能自定义短URL前缀,系统保证其唯一性。
    • 支持一段时间内相同长URL生成相同短URL。
  2. 高并发处理
    • 写QPS高达2.5万。
    • 读QPS高达25万。
  3. 分布式架构
    • 利用DNS负载均衡、LVS四层负载均衡和Nginx七层负载均衡实现流量分发。
    • 采用MySQL分库分表、主从主备和读写分离技术保障数据库性能与可用性。
    • 运用Redis分片、主从主备和读写分离技术,结合本地缓存提升系统响应速度。
  4. 数据一致性
    • 支持同步提交和异步组提交两种事务管理模式。
    • 通过WAL、2阶段提交、graceful shutdown和crash safe机制确保系统异常时的数据一致性。
  5. 监控与运维
    • 借助云服务商的健康检测服务监控系统状态。
    • 用ELK(Elasticsearch, Logstash, Kibana)进行日志收集和分析。
    • 使用Skywalking进行调用链监控。
    • 采用Prometheus进行系统指标监控。
    • 利用Sentinel进行流量监控和限流。

安装使用步骤

1. 环境准备

  • 安装Java 8或更高版本。
  • 安装MySQL、Redis和Nacos配置中心。
  • 配置Dubbo和Zookeeper。

2. 进入项目目录

bash cd tinyurl-parent

3. 配置文件

  • 修改application.properties文件,配置数据库连接、Redis连接、Nacos地址等。
  • 配置Dubbo的相关参数,如注册中心地址、协议端口等。

4. 编译和打包

bash mvn clean package

5. 启动服务

  • 启动Nacos配置中心。
  • 启动Zookeeper。
  • 启动MySQL和Redis。
  • 启动Dubbo服务提供者: bash java -jar tinyurl-dubbo-provider/target/tinyurl-dubbo-provider.jar
  • 启动Dubbo服务消费者: bash java -jar tinyurl-api/target/tinyurl-api.jar

6. 测试

使用Postman或curl发送请求,测试短链接生成和查询功能。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】