1. 程式人生 > >短連結的java版完整功能實現及ngx_lua版本的簡單實現

短連結的java版完整功能實現及ngx_lua版本的簡單實現

短連結

ngx_lua版本

https://github.com/feiyangtianyao/short_url

對lua不熟,只實現了最基本的功能。

java版本

https://gitee.com/xiaoyaofeiyang/short_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來控制權限和流量。