一个ASAP的系统
假設有這樣的系統,在某個圖書館有一個柜臺可以推薦相關的書,例如,你過去想問一下,有沒有java方面更相關的書推薦一下呢?他就會展示一個抽屜(Drawer),每個格子(Grid)可以放20本書,他先打開第一個格子,把這20本書給你過目,你看完之后問,有沒有其他的?他再打開第二個格子,把里面的書給你過目,以此類推。
假設來說,這個圖書館內部的機制比較復雜,這個推薦柜臺,我們稱之為RC(Rating Counter), 他是沒有辦法直接查詢圖書館數據的,里面還有兩個柜臺,柜臺LC可以查詢圖書館數據,你把書名告訴他,他同樣會展示一個Drawer,里面的Grid會放和這個書名相關的書,還有柜臺DC,你告訴他一些關鍵字,他展示的Drawer里面放著他認為的好書,但是這些書,LC不一定有,或者DC的書在LC那里有好幾個版本。LC和DC的Drawer是需要一格格填充的,也就是職員會回到倉庫里,一次搬來一格的書。而且現在人手緊張,三個柜臺都只有一個人在忙活。注意的是,你可以叫他直接搬來第二格的書,也就是說要第幾個格子的書不需要前面的格子先搬完,不過他可能會告訴你,這個格子里面給的書不到20本,或者這個格子里面根本沒有書(你要第三個格子的書,但是書總共只有兩個格子的數量)。
以前的業務邏輯是這樣的,你來到RC,然后告訴他一個關鍵字,RC的職員就會到DC那里,DC的職員忙里忙外搬了好幾次之后,和RC的職員說,這就是全部了,交給RC的職員一個Drawer,于是RC的職員自己準備好一個空的Drawer到LC,照著DC的Drawer里面的書,先拿第一本書問LC,LC忙里忙外搬了好幾次,給RC一個該書的Drawer,RC一本本檢查里面的書是不是和DC給的相關,如果是才放進自己的Drawer里,然后他就問第二本,如此反復,等到DC給的Drawer里面的書全部查詢完畢,RC的職員就拿著自己準備的Drawer回來,說一聲"久等了,不好意思"。你現在可以打開一格格看了。
轉載于:https://www.cnblogs.com/zhengwenwei/archive/2012/09/09/2677787.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Lucene 简单手记
- 下一篇: Linux SVN搭建模式