项目简介
本项目是基于Spring Boot和Dubbo框架的分布式TinyURL生成系统,主要提供高效、可扩展的短链接生成和管理服务。TinyURL能将长URL转换为短URL,常用于微博、社交媒体等,可节省字符空间并提升用户体验。
项目的主要特性和功能
- 短链接生成
- 可将输入的长URL自动转换为对应的短URL。
- 用户能自定义短URL前缀,系统保证其唯一性。
- 支持一段时间内相同长URL生成相同短URL。
- 高并发处理
- 写QPS高达2.5万。
- 读QPS高达25万。
- 分布式架构
- 利用DNS负载均衡、LVS四层负载均衡和Nginx七层负载均衡实现流量分发。
- 采用MySQL分库分表、主从主备和读写分离技术保障数据库性能与可用性。
- 运用Redis分片、主从主备和读写分离技术,结合本地缓存提升系统响应速度。
- 数据一致性
- 支持同步提交和异步组提交两种事务管理模式。
- 通过WAL、2阶段提交、graceful shutdown和crash safe机制确保系统异常时的数据一致性。
- 监控与运维
- 借助云服务商的健康检测服务监控系统状态。
- 用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】