# short_url
**Repository Path**: Debugman/short_url
## Basic Information
- **Project Name**: short_url
- **Description**: 短url项目,基于netty实现逻辑控制,实现权限控制、日志及短链接的基本功能
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 6
- **Created**: 2022-02-22
- **Last Updated**: 2022-02-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 短链接 #
## ngx_lua版本 ##
https://github.com/feiyangtianyao/short_url
## java版本 ##
- **执行sql语句**
建表,短链接要入库,id是seq序增
- **生成短链接**
http://127.0.0.1:88/gen?url=http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0106/2275.html
生成之后,显示的信息中,surl即是短链接。这里,get请求时url如果有=&?要做转义。否则url取不完全
- **访问短链接**
http://127.0.0.1:88/0002
自动跳转到输入的url
### 内部功能
1. 数据库使用mysql。
2. 短链接使用6位字母数字组成,可扩展。前两位是月份,以201801为起准。后四位为顺序号码。都使用62进制转换
3. 号码使用缓存存储,每次加载50个号码.每个月会新建序列。
4. 使用his表保存数据,脚本定期清理。
5. maven可以直接shade打包可执行jar。
6. 基于netty实现的http服务,同时支持静态资源访问。
7. 基于配置文件。日志使用log4j2.
8. 数据库连接池使用dbcp,便宜连接回收。也支持druid。druid监控页面无效
9. 自定义缓存。目前缓存用来存放资源路径。缓存支持过期重载。
10. 使用appId和appKey来控制权限和流量。