老平台已死,整理個文件留下做紀念

2022-01-09 23:27:04 字數 2786 閱讀 1311

1,平台的伺服器整體架構

2,專案結構

3,業務結構

4,技術實現

5,業務舉例

登入頁:

登入:

其它的服務只是業務不同,這裡省略...

6,應用的啟動過程資源準備

7,json的封裝

8,cookie域的演算法

//構造cookie

final long time = system.currenttimemillis();

string userid = string.valueof(uid);

string userinfo = userid + "," + username + "," + time;

string u = base64.encode(userinfo + "," +

builduserinfosign(string.valueof(userid), username, string.valueof(time)));

u = urlencoder.encode(u, "utf-8");

string key = urlencoder.encode(base64.encode("userinfo"), "utf-8");

cookie cookie = new cookie(key, u);

//構造cookie加密部分

public static string builduserinfosign(string id, string name, string time) catch (exception e) ", e.getmessage());

if (cookies != null && cookies.length > 0) catch (exception e) ", e.getmessage());

string val = value.split(",");

string sign = builduserinfosign(val[0], val[1], val[2]);

if (!strings.isnullorempty(sign) && !strings.isnullorempty(val[3]) && sign.equals(val[3])) else

return "";

9,http的理解和封裝

裡面加了乙個對自定以的註解的過濾;

protected boolean filters(final headlessservletrequest request, final headlessservletresponse response) throws servletexception, ioexception finally {

if (!flag) {

response.sendinvalidparameters();

10,db設計

11,老平台小結

老平台採用的架構很簡單,乙個guice+servlet,簡單的把乙個url對映到乙個特定的servlet,

這裡借用guice-servlet,省去了原生的servlet配置檔案複雜的嫌疑,簡單的使用guice容器,

把所需資源按照分類和層級一一放到容器中初始化,簡化了例項化的過程,提高了效率;業

務也不複雜,很容易從其它的遊戲平台移植過來,業務的技術難點有兩個,乙個是跟其它服

務器的互動和通訊,另外乙個是快取的使用;對於跟其它伺服器的互動,主要是基於http

請求,如果對這一部分比較熟悉,只要文件給的比較規範,開發和除錯起來還是完全沒有問

題的;然後是快取的問題,這裡主要使用的redis,乙個key-value資料庫,通過把經常用的

資料從db中查詢出來,放到redis裡面,需要的時候從redis裡面取得,這大大提公升了效能,

如果redis不穩定,可以直接從db裡取得,保證了程式的健壯性;暫未進行過併發性測試,

目前能支撐2000w使用者的使用已經算是乙個還不錯的架構。

VCL已死,RAD已死 2

vcl已死,rad已死 sd2c中未能盡言的話題 上一節 二 分層,真的改變了你的思想了嗎?分層思想提出來了 這在作業系統的設計上可以上溯到上個世紀50年代,但在應用軟體開發上 卻並不太久。乙個比較穩定的分層系統是 互動 業務和資料 三層,當然,與實際需要相關的 還有更多層 更多更多層。分層沒有什麼...

VCL已死,RAD已死 2

vcl已死,rad已死 sd2c中未能盡言的話題 上一節 二 分層,真的改變了你的思想了嗎?分層思想提出來了 這在作業系統的設計上可以上溯到上個世紀50年代,但在應用軟體開發上 卻並不太久。乙個比較穩定的分層系統是 互動 業務和資料 三層,當然,與實際需要相關的 還有更多層 更多更多層。分層沒有什麼...

差點被OptGroup整死

正常的optgroup是這樣子的。js構造時,使用 var select1 document.getelementbyid select1 select1.options.add new option option1 1 select1.options.add new option option2 ...