建立ShortURLSystem與中間踩的一些坑

剛好與朋友瞎聊到縮網址系統,考慮到因為服務單一,邏輯相對簡單就決定自己刻一個出來。

有興趣的朋友可以參考我Github上的Repo :
https://github.com/jt851113/Short-Url-System

因為自己對前端沒有太多著墨,所以只能說是side project程度而已,還有很多地方需要完善的,過段時間加強自己後再給他翻新看看吧

系統設計的實作部分做了service、controller、DAO分層
最為核心的服務部分:id 的產生,我有參考了多個方案,包含snowflake或者UUID產生,最後考量到實作的可能性與整體需求,採用62進制的方式結合隨機產生的方式來產生短網址碼。

另外整個架設不難,我自己是考慮盡可能便宜的方案
大致流程會是:

將service部屬到Amazon EC2 --> 購買Domain Name --> 設置cloudflare做dns代管 --> 申請SSL憑證部屬到service上(cloudflare也有可申請的SSL)

這套方案除了在NameCheap購買domain name花了0.99美刀外沒有任何支出
image.png

EC2有提供免費方案,而cloudflare的DNS代管是免費服務,SSL憑證也可以透過certbot生成
image.png

記錄一些踩到一些坑

  1. 部屬上線後記得要到EC2設置開放port,我就蠢到在那邊懷疑自己的服務沒上線最後發現是EC2 port沒開...
  2. 買完domainName後記得到nameCheap設定dns代管的資訊,所以你要先到cloudflare設定好代管dns的服務,設定好cloudflare會提供DNS再回頭填到nameCheap上就好image.png