1. 面對(duì)的需求
- 圖片標(biāo)簽商品服務(wù)申尤,類似產(chǎn)品:nice,商品濾鏡:


- 接口說(shuō)明
獲取指定圖片中的tag內(nèi)容
輸入:objurl蛾坯,userid
輸出:tag list獲取指定話題(如:"G-SHOCK")下面所有的圖片
輸入:tagname
輸出:objurl list,tag desc 等信息為某個(gè)圖片添加標(biāo)簽tag
輸入:objurl, userid悼枢, tagname(這個(gè)為了歸一化,前端會(huì)有選擇引導(dǎo))
輸出:是否成功
2. 可選的技術(shù)方案

2種技術(shù)方案A/B
- php 使用lighty 配置fastcgi模式
- nodejs使用lighty配置redirect模式
- 由于搜索核心的流量經(jīng)過(guò)php集群脾拆,所以馒索,本次從開(kāi)發(fā)效率,并發(fā)請(qǐng)求支持效率(單機(jī)qps)上考慮使用nodejs搭建后端服務(wù)
3. 基于nodejs的技術(shù)方案
-
nodejs完成連接接入绰上,結(jié)果處理拼裝的工作,其中使用到了幾個(gè)很好用的插件渠驼。
pm2: 類似服務(wù)端的supervise蜈块,當(dāng)進(jìn)程意外崩潰后自動(dòng)重啟動(dòng);

由于nodejs是單進(jìn)程模型迷扇,pm2支持自動(dòng)部署為多進(jìn)程運(yùn)行百揭,可以更好的利用服務(wù)器cpu;redis:支持的nodejs的redis proxy
redis
使用了set作為value類型谋梭,犧牲部分性能達(dá)到去除重復(fù)標(biāo)簽的功能信峻。管理redis的web 工具
redis-commander

4. 效果總結(jié)
- 實(shí)際壓力測(cè)試,讀寫混合的pv單機(jī)可以在1W qps左右瓮床。
- 總結(jié)nodejs適合應(yīng)用場(chǎng)景:高并發(fā)流量盹舞,不是很重的處理邏輯,http服務(wù)層隘庄。