短連結的java版完整功能實現及ngx_lua版本的簡單實現
阿新 • • 發佈:2018-11-27
短連結
ngx_lua版本
https://github.com/feiyangtianyao/short_url
對lua不熟,只實現了最基本的功能。
java版本
https://gitee.com/xiaoyaofeiyang/short_url
-
執行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
內部功能
- 資料庫使用mysql。
- 短連結使用6位字母數字組成,可擴充套件。前兩位是月份,以201801為起準。後四位為順序號碼。都使用62進位制轉換
- 號碼使用快取儲存,每次載入50個號碼.每個月會新建序列。
- 使用his表儲存資料,指令碼定期清理。
- maven可以直接shade打包可執行jar。
- 基於netty實現的http服務,同時支援靜態資源訪問。
- 基於配置檔案。日誌使用log4j2.
- 資料庫連線池使用dbcp,便宜連接回收。也支援druid。druid監控頁面無效
- 自定義快取。目前快取用來存放資源路徑。快取支援過期過載。
- 使用appId和appKey來控制權限和流量。