一、需求溝通
1、用例
需求說明:
1. 百度這個網站,通過一系列的url鏈接,然後去爬取一系列的網站上的數據,生成標題和摘要信息存下來。
2. 用戶通過在百度搜索框內輸入搜索詞之後,可以看到相關的搜索結果列表。這些列表顯示的就是之前爬取到的頁面標題和摘要。
2、算數
二、答案
1、概要設計
2、擴展設計
3、關鍵點總結
1. 爬蟲的部分是不對用戶的,所以說,不能連到web server下面,是單獨的一塊。
2. 爬蟲部分:服務器通過非關係數據庫給出的原始url,爬到數據之後,通過倒排索引服務生成倒排索引,文件服務生成標題和摘要信息。由於爬蟲的數據量非常大,而且不要求實時,所以在中間加上消息隊列。
3. 只有Query API是對用戶的,所以直接連到web server下面。由於數據量很大,所以擴展部分加上緩存
4. Query API與倒排索引服務,文件服務之間可以加上SQL數據庫,用來存生成的倒排索引和文件標題摘要信息。