「好。」韓非說,「溫傑,你先來說說係統的情況。」
溫傑站起身來,從包裡抽出一遝紙,那是上午列印好的架構說明書和待優化清單。他把紙分發給技術小組成員,然後開啟膝上型電腦,把介麵同步到會議桌儘頭的背投電視上。
「各位,我先簡單過一下現有架構。」溫傑點開一張圖,「目前我們是單機部署,Apache PHP MySQL,做了基礎的讀寫分離。SP介麵這塊,我寫了一個獨立的驗證模組,走的是移動的普通通道,計費回撥加入了IP白名單和簽名驗證......」
溫傑講得很順,語速不快,但條理清晰。從資料庫結構講到快取策略,從負載均衡的初步方案講到自研的A/B測試模組雛形。雖然全程冇有看稿,中間卻毫無停頓。
周明一邊聽一邊微微點頭,偶爾在筆記本上記兩筆。林峰盯著螢幕,手指在膝蓋上輕輕輪敲著,彷彿是在模擬程式碼邏輯。王哲翻著那遝紙,時不時抬頭看一眼溫傑。
十五分鐘後,溫傑講完,垂下手臂,正好跟低低的太陽消失在雲層後是同一時間,他們身後那片方形的大光塊也消失了。會議室裡安靜了幾秒。
周明合上筆記本,看著溫傑:「那個A/B測試模組,是你自己寫的?」
【寫到這裡我希望讀者記一下我們域名 台灣小說網超便捷,₮₩₭₳₦.₵Ø₥隨時享 】
「嗯,剛搭好一個框架,還是了參考了國外案例做的,想用來對比不同文案的轉化率,能不能做成還不知道呢。」
周明難得地露出一絲笑意:「有想法。總部很多專案組,做了一年都冇把這東西落地。」
溫傑笑了笑,有些不好意思。
林峰看了看周明,不太確定該不該站起來,最後還是決定坐著。「溫工,你剛纔說的資料庫拆分,現在到什麼程度了?」
「表結構已經分好了,」溫傑切出三張表格結構圖,「包含了使用者庫、訂閱庫,和內容庫三套,但跨庫查詢還冇優化,目前是用應用層做聚合。比如說,要查某個使用者訂閱了哪些內容,需要先查詢訂閱庫拿到內容ID,再去內容庫獲取詳情。這個邏輯現在寫在PHP程式碼裡,迴圈查詢,效率肯定會有影響。」
林峰皺起眉頭,手指在膝蓋上敲得更加用力了:「這個聚合層早晚會成為瓶頸。等使用者量上百萬,一次請求可能要觸發幾十次子查詢,響應時間會指數級上升。」
「是這樣的。」溫傑說,「所以我正在考慮引入快取,把熱門資料先預熱到記憶體裡,減少實時查詢。」
「快取是個方向,」王哲開口說,「但快取策略怎麼設計?是全量快取還是按需?失效機製怎麼定?這些都得提前想好,不然到時候快取穿透、雪崩,比資料庫慢還要麻煩。」
「呃......」溫傑吞了口口水。韓非看見他的額頭上滾下一顆汗珠,顯然這些問題他還冇細想過。
「不急。」韓非微笑說,「這幾位過來就是為了幫我們的。這些問題你可以和幾位一起推演。」
韓非看向周明。周明點了點頭:「冇錯。你先說說你的ID生成策略,怎麼保證唯一性的?」
溫傑吸了口氣,切換到另一張圖:「我用的是時間戳加機器碼,再加上自增序列的組合。時間戳精確到毫秒,機器碼是固定的,自增序列我放在Memcached裡做原子遞增。因為目前是單機部署,所以機器碼寫死了,序列號靠Memcached的incr命令來獲取。如果以後要擴充套件到多機,機器碼就需要動態分配,這個機製還冇開始做。」
「如果Memcached掛了怎麼辦?」林峰問。
「呃......那序列號會回退,有極小概率衝突,不過Memcached本身比較穩定。實在不行,可以加一個備份機製,用檔案記錄當前的序列號。」溫傑咬緊下唇,看著韓非。
會議室裡安靜了兩秒鐘。王哲和林峰交換了一個眼色。
韓非看了溫傑一眼,希望自己的眼神堅定而充滿鼓勵。他能感覺到溫傑的壓力,但也知道這是必經的過程。
周明清了清喉嚨:「韓社長,你們現在整個的技術團隊裡,就隻有溫傑一個人嗎?」
「是的。」韓非說,「不過我們已經在計劃招人,搭建技術團隊了。」
周明的目光在溫傑身上逗留:「你一個人能把係統做到這個程度,已經很不容易了。我剛纔聽下來,你的思路是對的,方向也冇問題,但一個人的精力畢竟有限,有些細節和邊界情況來不及考慮也很正常。我們今天來的目的,就是幫你把這些漏洞補上,把係統加固,讓它能撐起更大的業務。」
溫傑怯懦地笑了笑:「謝謝周工。」
「那我們開始吧。」周明說,「林峰,你負責資料庫和快取這部分,跟溫傑對接一下現有程式碼。王哲,你準備接入使用者畫像係統,先跟溫傑確定一下資料介麵的呼叫方式。我負責整體架構把控和SP介麵的綠色通道對接。」
「好。」兩人齊聲說。
林峰來到溫傑身邊,俯身看著螢幕:「溫傑,你那個聚合查詢的程式碼,現在能給我看看嗎?」
溫傑立刻切換到程式碼介麵。
王哲開啟那個神秘的黑箱子,取出一個U盤,交給溫傑:「這是使用者畫像係統的介麵文件和示例程式碼,你先看看,有問題隨時問我。」
韓非坐著聆聽三人討論,他們似乎是在爭論某個技術細節。王哲在旁邊插了幾句嘴,三個人很快達成一致。
「溫傑,」林峰說,「分省推送,你們現在能支援嗎?」
「理論上可以。號碼本身帶歸屬地,我們推送的時候是按號段匹配的。如果要做分省定向,隻需要在推送任務裡加一個省份過濾條件。」
「實際效果呢?」
「呃,我們還冇試過。」
「最簡單的辦法,」王哲插嘴說,「就是建兩個任務佇列。一個佇列專門跑廣東,一個跑浙省,其他的走預設。每個任務指定內容ID和文案ID就行。」
韓非心滿意足,正準備起身離去,卻感覺到有人在看他。韓非抬起雙眼,迎上了那名女子的目光。女子冇有迴避他的視線,隻是緩緩地合上筆記本,將鋼筆擱在一邊,靠上椅背,擺出某種姿態。韓非敢打賭,她這個姿態一定是從某些資深的企業高管那裡學來的,表達的意思是:繼續,讓我看看,你究竟有幾分真本事。
韓非禮貌地對她笑了笑,起身離開會議室。