第一階段
時(shí)間主要為2015-09至2017-09,主要負(fù)責(zé)和保險(xiǎn)公司對(duì)接,通過(guò)接口調(diào)用、爬蟲等方式完成車險(xiǎn)報(bào)價(jià)、核保、繳費(fèi)、出單等流程,除此之外,還提供了如下服務(wù)
報(bào)文服務(wù)
每一次出單都涉及到車型查詢、報(bào)價(jià)、核保、繳費(fèi)、承保若干階段,涉及若干接口調(diào)用,當(dāng)任一流程出錯(cuò),需要查看接口調(diào)用報(bào)文,即請(qǐng)求參數(shù)和響應(yīng)參數(shù),以此來(lái)調(diào)查原因。
V1.0
在請(qǐng)求前后,根據(jù)請(qǐng)求參數(shù)(如訂單號(hào)、車架號(hào)等)來(lái)命名文件來(lái)保存請(qǐng)求和響應(yīng),然后同步的寫到磁盤上(后改為異步)。若想查詢報(bào)文,通過(guò)shell 腳本調(diào)用gateway 服務(wù)器上 shell,從各個(gè)機(jī)器上scp相應(yīng)的文件到gateway 服務(wù)器,然后使用 tar 壓縮,scp 到本地。
V2.0
請(qǐng)求前后將報(bào)文及相應(yīng)參數(shù)存入 ThreadLocal,通過(guò)AOP在請(qǐng)求結(jié)束后取出報(bào)文數(shù)據(jù)提交異步任務(wù),將報(bào)文打包壓縮,上傳到七牛,并提供一個(gè)報(bào)文管理后臺(tái)。
V3.0
由于某些訂單報(bào)價(jià)過(guò)程中可能出現(xiàn)重復(fù)調(diào)用某些接口來(lái)達(dá)到參數(shù)調(diào)整的目的,這個(gè)時(shí)候可能會(huì)導(dǎo)致內(nèi)存溢出,所以不再使用AOP,而改為 HttpClient 攔截器,直接將Http 請(qǐng)求的入?yún)⒑统鰠⒎謩e上傳七牛,根據(jù)七牛API,報(bào)文文件名的前綴一致,然后下載的時(shí)候使用七牛后臺(tái)的打包工具打包下載。
圖像識(shí)別
標(biāo)準(zhǔn)打印體
江蘇交管庫(kù)
切割,提取特征碼(逐個(gè)掃描像素,RGB之和<300,則改點(diǎn)的特征碼為0,否則為1)
利用余弦相似度算法,比較 source 圖片和 target 圖片,取相似度最大的圖片作為識(shí)別結(jié)果。
其他驗(yàn)證碼
日志服務(wù)
V1.0
各臺(tái)機(jī)器本地日期,通過(guò) ssh 遠(yuǎn)程執(zhí)行 grep 命令,然后登入相應(yīng)機(jī)器查看結(jié)果
V2.0
通過(guò) logstash 異步的輸出請(qǐng)求入?yún)⒑统鰠⑷罩荆ò繕?biāo)機(jī)器IP)到中心服務(wù)器,即 gateway 服務(wù)器,然后再中心服務(wù)器grep 后登陸相應(yīng)服務(wù)器查看詳細(xì)日志。
V3.0
ELK
車型查詢服務(wù)
CompletionService take(timeout),
爬蟲
模擬人工報(bào)價(jià)(報(bào)價(jià)結(jié)果偏差以及錯(cuò)誤處理),保費(fèi)結(jié)果識(shí)別(Google Tesseract),模擬POST支付請(qǐng)求(JavaScript)
核保輪詢
V1.0
RabbitMQ dead letter機(jī)制,輪詢
V2.0
第一次核保的時(shí)候隨訂單紀(jì)錄發(fā)起此次核保的機(jī)器 IP,當(dāng)下次服務(wù)器重啟時(shí)查詢數(shù)據(jù)庫(kù)中待核保的訂單,并判斷該訂單是否是在當(dāng)前機(jī)器上發(fā)起核保的,如果是,則提交異步任務(wù),異步任務(wù)完成后更新訂單狀態(tài),并通知請(qǐng)求發(fā)起者,否則忽略。
Cookie共享,Cookie的序列話和反序列化
redis 共享 cookie,防止互踢加入 Redis 分布式鎖。