資料採集系統(資料調查)學習總結(四)

2021-06-27 07:34:10 字數 1678 閱讀 3560

分表記錄完了,我們知道降低資料庫儲存壓力:

分表:整個庫的資料量不是很大,但是某個(些)表的資料量較大.

分庫:豎直:資料庫之間是異構的.就是按照模組或者功能劃分庫。

水平:資料庫之間是同構的.(資料儲存範圍不同),水平切割。

今天記錄分庫應用的學習,一般分庫可以採用多種不同的方式,根據開發系統的功能要求來具體實施不同方案,大部分是模組,我印象中**就是模組劃分,加分布式系統管理,這個專案考慮到增加資料庫壓力的是答案部分,因為一套試題就會有成千個答案,所以我們對answer表水平分庫,就是調查id為奇數存入主庫,為偶數就存入從庫。

具體操作就是:首先建立從庫,然後配置多個資料來源,由隔離級別資料來源路由器分配儲存:

//定義parent屬性將從庫與主庫相同的部分省略,相當於引用主庫

先建立資料來源路由器,然後在spring的bean.xml中配置路由器bean:自定義資料來源繼承abstractroutingdatasource類,是spring框架中自帶的路由管理器

import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;

/*** 自定義資料來源路由器

*/public class surveyparkdatasourcerouter extends abstractroutingdatasource

return null;}}

bean.xml檔案中配置上面的資料來源

看上面的**你會發現我們為了控制調查id傳遞給資料來源路由器(action和資料來源隔十萬八千里),採取了執行緒繫結機制就是threadlocal,通過執行緒既能解決多併發問題,也能實現資料的友好傳遞。

* 調查令牌,繫結到當前的執行緒,傳播到資料來源路由器.進行分庫判斷

*/public class surveytoken {

private survey currentsurvey ;

private static threadlocalt = new threadlocal();

這裡省略具體**,以後可以在這裡知道去**檢視就可以了。

但是後來又出現了乙個問題,就是日誌表儲存提示表不存在,研究知道它是要存入從庫中,可是我們希望日誌表存入主庫,為什麼會存從庫那,這是因為事務是aop的環繞通知方式,而且具有傳播性的,當偶數調查答案事務完成後,資料來源控制答案存入從庫,完成後資料來源並沒有解除id繫結,那麼日誌事務執行就預設走從庫,進而出錯,流程圖如下:

顯然不符合我們要求,於是就有了下面的流程圖:

就是調整事務和日誌的前後順序,然後在資料來源路由器獲取到調查id後,隨即解除對id的繫結,這時再到日誌操作時,因為沒有了id,資料來源採用預設庫操作,就存到了主庫中,我們目的就達到了。總的來說,這種問題單靠自己是很難發現和解決的,希望以後能多嘗試,多總結,多學習。

這樣,分庫就完成了,可以發現,分庫是對整個專案的總結,也是對框架知識的整體回顧,包括action執行流程,事務,日誌的切面操作等等,算是對自己學習成果的考驗。

資料調查專案總結 五

二十八 許可權設計 在使用者登入的時候需要讀取出使用者的許可權,並將使用者的許可權位和許可權碼放入到session中,事件 suppresswarnings rawtypes component resource private rightservice rs 接收servletcontext pr...

採用統一雲端的時間處理資料調查!

採用統一雲端的時間處理資料調查!資料是現代企業的核心。資料不僅推動了決策,而且還直接與創新產品和服務產品相聯絡。使用資料作為其產品核心元件的企業面臨著處理前所未有的大量數字資訊的持續的需求。隨著不斷擴大的客戶群和產品功能,數字資訊的種類,速度,複雜性和數量在不斷 性增長。同時,這些企業也需要擴大it...

採集資料小總結

採集過程遇到的問題 1.十分鐘內訪問資料頁面,需要輸入驗證碼 2.每天ip限定訪問五十個以內,用完則明天再來 b 剛開始的解決辦法 b 去抓取網上提供的 ip 埠,然後 訪問 問題 ip好多不能用,需要 ip個數較多,然後還要根據採集 的規則設定,比如十分鐘內每個 訪問規則數量 1,之後再次訪問.b...