歡迎訪問元宇宙中文社區,在這里大家可以提問,回答,分享,訴說,一起構建一個元宇宙社區,
2021年“元宇宙”的這個詞的火熱程度在業內絕對不亞于疫情,趁著這個熱度,本文記錄了如何搭建一個社區網站的實踐程序,
目標
一個社區網站主要專注于用戶之間通過帖子進行互動,從用戶角度看基本的功能包含發帖、回復、點贊、評論以及用戶注冊登錄等功能,從管理員角度看必須有帖子、用戶、權限以及各種后臺管理能力,
技術選型
現在利用云計算的能力,個人或者小型企業都能快速的搭建網站,筆者也曾經用過多個公司的云計算產品,發現阿里云的產品用的最爽,搭建小型網站可選的有云虛擬主機,輕量應用服務器和云服務器ECS,云虛擬主機預裝建站環境,用戶不用自己維護服務器,自由度低,適用于新手入門,云服務器ECS技術門檻要求高一些,用戶自由搭建環境,有系統最高權限,可彈性擴容,輕量應用服務器屬于ECS服務器不過為了新手增加了不少輔助功能,最終選擇ECS,原因可以參考之前的文章如何用阿里云ECS搭建網站,
主機
其實選擇ECS最大的原因還是它比在云虛擬服務器上開發更有空間,而且也不貴,單核1G按月收費的ECS服務器,一年也不會超過1000RMB,在ECS上可以部署任何軟體,對于一個網站而言,麻雀雖小但五臟俱全,未來也許網站訪問量變大后,許多服務都需要獨立出去,比如分布式快取或者搜索的能力,在ECS上可以獨立部署一個Redis或者Elasticsearch,資料的寫入和檢索都在一臺ECS上完成,當單機能力不足以抗住流量時,可以將快取或者搜索能力遷移到其他ECS或者直接購買此類服務,而遷移改動的成本僅僅是訪問鏈接的切換,但如果用云虛擬服務器意味著要么直接集成Lucene到業務代碼內,要么一開始就訪問外部服務,
申請實體后就能看到實體詳情,初始的ECS上幾乎啥都沒有只有yum工具,通過yum把最基本的軟體安裝上去:
安裝JDK,GIT,MAVEN
yum install java-1.8.0-openjdk-devel.x86_64
yum -y install apache-maven
yum install -y git
按照git和maven可以在ECS上拉取最新的代碼并編譯,mvn clean package 生成最新jar后,關閉之前的java行程并啟動最新java行程
kill -9 $(ps -aux |grep xxx.jar |grep -v grep |awk '{print $2}')
nohup java -jar target/xxx.jar --spring.profiles.active=prod > logs/application.log 2>&1 &
域名
開發程序中可以通過IP訪問不需要域名服務,但是上線后一定要搞個域名系結,可以從阿里云查詢想要的域名是否還可用:https://wanwang.aliyun.com/domain/searchresult/#/?keyword=vector&suffix=com, 除了 .com 的域名外,其他域名相對都不貴,買到域名后需要備案,從購買域名到完成備案大概需要3周時間,所以購買域名一定要趁早,元宇宙(metaverse)相關的好的域名其實早就被注冊

資料庫
最簡單的方式就是在ECS上部署一個MySQL,但是考慮穩定性還是購買了云資料庫RDS版(MYSQL)https://rdsnext.console.aliyun.com/,它提供了操作資料的頁面以及已經各種工具,最主要是它包含了資料備份的能力,不用擔心資料丟失的問題,畢竟機器掛了可以切換,但是資料丟失了就回到起點, 而且自帶的mysql監控告警和各種診斷工具,可以騰出更多時間專注于業務開發,

專案
開源社區專案git上一搜一大堆,最多的可能還是PHP為主的,JAVA也不少, 考慮到平時都是寫java為主,看了不少開源專案,其中不乏上千star的專案,發現有完整功能并能修改配置后一鍵部署的還真少,大部分專案還是有不少功能缺失,當然作為資深碼農也沒指望拿來就用,找了一個覆寫最基本功能的就可以了,后端技術堆疊上選擇了 SpringBoot + FreeMaker(前端頁面),
短信
用戶發帖子必須是登錄狀態,專案中可以用郵箱或者短信登錄,那短信服務就選擇阿里云(https://dysms.console.aliyun.com/quickstart)的吧,主要當驗證碼用,目前國內一條短信0.045元,當然也有包月套餐,配置程序如下

申請簽名:主要說明下要用的短信服務的使用場景,因此網站必須成功備案后才能走這個流程,申請后阿里云內部審核,一般半天能有結果,
申請模板:主要配置下短信的模板資訊,阿里云上已經提供了不少模板樣例,直接使用樣例即可,申請后阿里云內部審核,一般半天能有結果,
系統設定:主要配置短信服務的各種發送配置,一般可以忽略,
發送短信:可以再阿里云上選擇模板和手機號測驗下,通過代碼發送短信可以直接參考內部SDK,
郵箱
郵箱服務主要為通知類事件或者找回密碼等場景用, 為了和私人郵箱分離開,還是開通了阿里云的企業郵箱https://alimail.console.aliyun.com/,郵箱后綴可以是網站域名,開通企業郵箱一定確保域名決議生效,

技術架構
直接上圖吧

后續規劃
整個架構已經成型,基礎功能已ready,目前待優化的能力有:- 資料檢索遷移到獨立的Elasticsearch,目前帖子的增加,洗掉,修改直接影響索引,模塊之間強耦合,未來通過監聽mysql binlog的方式實作索引的增量更新,
- 在用戶和帖子的服務層面有redis快取,和搜索功能類似,未來將redis遷移到獨立的ECS,
- 監控指標只有曝光PV,搜索PV,帖子PV等,各種業務指標還需要完善,待接入阿里云的CMS,
- 缺乏點擊率 和 用戶緯度的特征,導致目前精排能力有限,帖子搜索和推薦的并沒有實作精排的能力,
- 資金有限,資源有限,訪問量也有限,期待志同道合的人一起打造一個元宇宙社區,
歡迎訪問元宇宙中文社區,在這里大家可以提問,回答,分享,訴說,一起構建一個元宇宙社區,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/401391.html
標籤:Java
