日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

金融數(shù)據(jù)服務(wù)從零搭建:四層架構(gòu)、冪等處理與存儲(chǔ)選型實(shí)戰(zhàn)

金融數(shù)據(jù)服務(wù)從零搭建:四層架構(gòu)、冪等處理與存儲(chǔ)選型實(shí)戰(zhàn) 1. 金融數(shù)據(jù)服務(wù)從零搭建的完整思路1.1 這個(gè)項(xiàng)目到底在做什么第一次看到financial-services這個(gè)命名的時(shí)候我腦子里冒出來(lái)的第一個(gè)念頭是這又是一個(gè)什么都想裝進(jìn)去的大雜燴倉(cāng)庫(kù)。但真正把這類項(xiàng)目拆開(kāi)來(lái)看你會(huì)發(fā)現(xiàn)它其實(shí)解決的是一個(gè)非常具體、非常痛的問(wèn)題——金融數(shù)據(jù)的獲取、清洗、存儲(chǔ)和對(duì)外服務(wù)這條鏈路在大多數(shù)團(tuán)隊(duì)里都是重復(fù)造輪子。我做過(guò)好幾個(gè)跟行情、賬戶、交易流水相關(guān)的系統(tǒng)每次最耗時(shí)的從來(lái)不是業(yè)務(wù)邏輯本身而是數(shù)據(jù)從哪來(lái)、格式怎么統(tǒng)一、接口怎么穩(wěn)定輸出這三件事。financial-services這類項(xiàng)目的核心價(jià)值就是把這套東西沉淀成一個(gè)可復(fù)用的服務(wù)層上游對(duì)接不同的數(shù)據(jù)源行情接口、數(shù)據(jù)庫(kù)、第三方文件中間做標(biāo)準(zhǔn)化處理下游以統(tǒng)一的 API 或 SDK 形式提供給業(yè)務(wù)方調(diào)用。它適合誰(shuí)我的判斷是三類人一是中小團(tuán)隊(duì)里負(fù)責(zé)搭數(shù)據(jù)中臺(tái)的后端工程師二是做量化研究、需要穩(wěn)定數(shù)據(jù)管道的數(shù)據(jù)分析師三是想學(xué)習(xí)生產(chǎn)級(jí)金融系統(tǒng)怎么分層的進(jìn)階開(kāi)發(fā)者。如果你只是寫個(gè)腳本拉兩天行情跑個(gè)回測(cè)那沒(méi)必要上這套但只要你開(kāi)始面對(duì)多個(gè)策略共用同一份數(shù)據(jù)數(shù)據(jù)要保證一致性接口要被好幾個(gè)服務(wù)調(diào)用這些場(chǎng)景這套架構(gòu)的價(jià)值就出來(lái)了。1.2 為什么金融場(chǎng)景對(duì)架構(gòu)格外挑剔普通業(yè)務(wù)系統(tǒng)掛了用戶刷新一下頁(yè)面就過(guò)去了。金融系統(tǒng)掛了可能是真金白銀的損失或者更糟——數(shù)據(jù)錯(cuò)亂導(dǎo)致決策失誤。這就決定了financial-services這類項(xiàng)目在設(shè)計(jì)上有幾個(gè)繞不開(kāi)的硬約束。第一是數(shù)據(jù)一致性。行情數(shù)據(jù)、賬戶余額、成交記錄這些數(shù)據(jù)之間存在強(qiáng)關(guān)聯(lián)。你不能出現(xiàn)成交記錄寫進(jìn)去了但賬戶余額沒(méi)扣這種中間狀態(tài)。所以這類項(xiàng)目幾乎必然要引入事務(wù)管理或者最終一致性補(bǔ)償機(jī)制而不是簡(jiǎn)單地寫庫(kù)就完事。第二是時(shí)間敏感性。金融數(shù)據(jù)是有時(shí)效的一條延遲 5 秒的行情和一條實(shí)時(shí)的行情價(jià)值天差地別。這就要求整個(gè)鏈路從采集到輸出都要考慮延遲預(yù)算哪些環(huán)節(jié)可以異步、哪些必須同步得算清楚。第三是可追溯性。出了任何問(wèn)題你得能回答這條數(shù)據(jù)是什么時(shí)候、從哪個(gè)源、經(jīng)過(guò)哪些處理變成現(xiàn)在這樣的。所以日志、審計(jì)、數(shù)據(jù)血緣這些東西不是可選項(xiàng)是必需品。我踩過(guò)最深的坑就是早期圖省事把行情采集和業(yè)務(wù)處理塞在同一個(gè)進(jìn)程里結(jié)果行情源一抖動(dòng)整個(gè)業(yè)務(wù)接口全跟著超時(shí)。后來(lái)拆成獨(dú)立服務(wù)、加了緩沖隊(duì)列才穩(wěn)住。這個(gè)教訓(xùn)直接影響了后面我對(duì)financial-services這類項(xiàng)目的分層理解。1.3 整體分層設(shè)計(jì)四層結(jié)構(gòu)怎么切基于上面的約束我通常會(huì)把這類項(xiàng)目切成四層這也是我看過(guò)的大多數(shù)成熟實(shí)現(xiàn)共有的骨架。層級(jí)職責(zé)典型技術(shù)選型關(guān)鍵考量接入層對(duì)接外部數(shù)據(jù)源HTTP 客戶端、消息訂閱、文件解析容錯(cuò)、重試、限流處理層清洗、標(biāo)準(zhǔn)化、計(jì)算流處理框架、任務(wù)調(diào)度冪等、可重放存儲(chǔ)層持久化與緩存關(guān)系庫(kù)、時(shí)序庫(kù)、緩存一致性、查詢性能服務(wù)層對(duì)外提供 API/SDKWeb 框架、RPC穩(wěn)定、可觀測(cè)這四層不是拍腦袋分的每一層的邊界都對(duì)應(yīng)一個(gè)明確的變化原因。數(shù)據(jù)源變了只動(dòng)接入層業(yè)務(wù)規(guī)則變了只動(dòng)處理層查詢模式變了只動(dòng)存儲(chǔ)層。這種單一變化原因的劃分是讓項(xiàng)目能長(zhǎng)期維護(hù)的關(guān)鍵。提示分層不是越細(xì)越好。我見(jiàn)過(guò)把處理層再拆成五六個(gè)微服務(wù)的項(xiàng)目結(jié)果一個(gè)簡(jiǎn)單的數(shù)據(jù)清洗要跨三個(gè)服務(wù)調(diào)用延遲翻倍、排查困難。分層的第一原則是夠用第二原則才是解耦。2. 核心模塊拆解與實(shí)操要點(diǎn)2.1 數(shù)據(jù)接入層把不穩(wěn)定的外部世界擋在門外接入層是整個(gè)系統(tǒng)的免疫系統(tǒng)它的核心任務(wù)不是把數(shù)據(jù)拿進(jìn)來(lái)而是在數(shù)據(jù)源各種抽風(fēng)的情況下依然把數(shù)據(jù)穩(wěn)定地拿進(jìn)來(lái)。這兩者的差別就是業(yè)余和專業(yè)的分水嶺。我處理接入層的標(biāo)準(zhǔn)動(dòng)作有這么幾個(gè)。首先是連接池和超時(shí)控制任何外部調(diào)用都必須設(shè)超時(shí)而且超時(shí)時(shí)間要分層設(shè)置——連接超時(shí)短一點(diǎn)比如 2 秒讀取超時(shí)長(zhǎng)一點(diǎn)比如 10 秒因?yàn)檫B接建立失敗通常意味著對(duì)方掛了而讀取慢可能只是數(shù)據(jù)量大。其次是重試策略但不是無(wú)腦重試要區(qū)分錯(cuò)誤類型網(wǎng)絡(luò)抖動(dòng)可以重試參數(shù)錯(cuò)誤重試一萬(wàn)次也沒(méi)用。# 接入層重試邏輯的典型寫法示意 import time import requests def fetch_with_retry(url, params, max_retries3, backoff_base0.5): last_error None for attempt in range(max_retries): try: resp requests.get(url, paramsparams, timeout(2, 10)) resp.raise_for_status() return resp.json() except requests.exceptions.Timeout as e: last_error e # 超時(shí)屬于可重試錯(cuò)誤指數(shù)退避 time.sleep(backoff_base * (2 ** attempt)) except requests.exceptions.HTTPError as e: # 4xx 是客戶端錯(cuò)誤重試無(wú)意義直接拋出 if 400 e.response.status_code 500: raise last_error e time.sleep(backoff_base * (2 ** attempt)) raise last_error這段代碼里有個(gè)細(xì)節(jié)值得說(shuō)指數(shù)退避。為什么不用固定間隔重試因?yàn)槿绻麑?duì)方服務(wù)過(guò)載了你固定間隔猛沖只會(huì)雪上加霜指數(shù)退避給了對(duì)方恢復(fù)的時(shí)間窗口。這個(gè)思路在分布式系統(tǒng)里是通用的。還有一個(gè)容易被忽略的點(diǎn)是數(shù)據(jù)源降級(jí)。當(dāng)主數(shù)據(jù)源不可用時(shí)能不能切到備用源備用源的數(shù)據(jù)格式可能不一樣這就需要接入層做一層適配。我一般會(huì)定義一個(gè)統(tǒng)一的內(nèi)部數(shù)據(jù)模型每個(gè)數(shù)據(jù)源寫一個(gè) adapter 把原始數(shù)據(jù)轉(zhuǎn)成這個(gè)模型這樣上層完全不用關(guān)心數(shù)據(jù)從哪來(lái)。2.2 數(shù)據(jù)處理層冪等是生命線處理層最容易出問(wèn)題的地方不是邏輯寫錯(cuò)而是重復(fù)處理。消息隊(duì)列可能重復(fù)投遞任務(wù)調(diào)度可能重復(fù)觸發(fā)網(wǎng)絡(luò)重試可能導(dǎo)致同一批數(shù)據(jù)被處理兩次。如果處理邏輯不是冪等的結(jié)果就是數(shù)據(jù)翻倍、余額算錯(cuò)。冪等的實(shí)現(xiàn)方式有好幾種我按可靠性從低到高排一下。最簡(jiǎn)單的是唯一鍵去重給每條數(shù)據(jù)算一個(gè)業(yè)務(wù)唯一 ID處理前先查有沒(méi)有處理過(guò)。這種方式實(shí)現(xiàn)簡(jiǎn)單但每次都要查庫(kù)性能一般。進(jìn)階一點(diǎn)的是狀態(tài)機(jī)數(shù)據(jù)有明確的狀態(tài)流轉(zhuǎn)只有特定狀態(tài)才能觸發(fā)處理處理完?duì)顟B(tài)就變了重復(fù)消息自然被忽略。最穩(wěn)的是版本號(hào)或序列號(hào)每條數(shù)據(jù)帶一個(gè)單調(diào)遞增的版本處理時(shí)只接受比當(dāng)前版本大的數(shù)據(jù)。-- 用唯一約束實(shí)現(xiàn)冪等的典型表結(jié)構(gòu) CREATE TABLE processed_records ( record_id VARCHAR(64) PRIMARY KEY, processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, payload_hash VARCHAR(64) ); -- 插入時(shí)如果沖突就忽略天然冪等 INSERT INTO processed_records (record_id, payload_hash) VALUES (?, ?) ON CONFLICT (record_id) DO NOTHING;注意冪等鍵的選擇很關(guān)鍵。用自增 ID 做冪等鍵基本沒(méi)用因?yàn)橹貜?fù)投遞的消息 ID 是一樣的但如果你用業(yè)務(wù)字段組合做鍵又可能誤傷合法的重復(fù)數(shù)據(jù)。我的經(jīng)驗(yàn)是優(yōu)先用數(shù)據(jù)源自帶的唯一標(biāo)識(shí)實(shí)在沒(méi)有再用業(yè)務(wù)字段的哈希。處理層還有一個(gè)繞不開(kāi)的話題是批處理還是流處理。這個(gè)選擇取決于你的延遲要求。如果業(yè)務(wù)能接受分鐘級(jí)延遲批處理簡(jiǎn)單可靠如果要秒級(jí)甚至毫秒級(jí)就得上流處理。我個(gè)人的建議是除非有明確的低延遲需求否則優(yōu)先批處理。流處理的復(fù)雜度、運(yùn)維成本、調(diào)試難度都高一個(gè)量級(jí)很多團(tuán)隊(duì)是被實(shí)時(shí)這個(gè)詞忽悠上去的結(jié)果發(fā)現(xiàn)業(yè)務(wù)根本用不到那么快。2.3 存儲(chǔ)層選型決定了一半的成敗存儲(chǔ)選型是financial-services這類項(xiàng)目里最需要想清楚的事因?yàn)橐坏┻x錯(cuò)后期遷移成本極高。我把常見(jiàn)的幾類數(shù)據(jù)和對(duì)應(yīng)用法整理一下。行情類時(shí)序數(shù)據(jù)特點(diǎn)是寫入量大、按時(shí)間查詢、很少更新。這類數(shù)據(jù)用專門的時(shí)序數(shù)據(jù)庫(kù)最合適壓縮率高、時(shí)間范圍查詢快。如果量不大用普通關(guān)系庫(kù)加時(shí)間索引也能扛。賬戶和交易類數(shù)據(jù)特點(diǎn)是強(qiáng)一致性要求、需要事務(wù)、數(shù)據(jù)量相對(duì)可控。這類必須用支持 ACID 的關(guān)系庫(kù)別想著用 NoSQL 圖省事后面一致性出問(wèn)題會(huì)讓你懷疑人生。配置和元數(shù)據(jù)特點(diǎn)是讀多寫少、要求低延遲。放緩存里最合適配合持久化存儲(chǔ)做兜底。數(shù)據(jù)類型寫入特征查詢特征推薦存儲(chǔ)行情時(shí)序高頻寫入時(shí)間范圍查詢時(shí)序庫(kù)/關(guān)系庫(kù)分區(qū)賬戶交易中頻、需事務(wù)點(diǎn)查范圍查關(guān)系庫(kù)配置元數(shù)據(jù)低頻寫入高頻點(diǎn)查緩存關(guān)系庫(kù)日志審計(jì)高頻追加按條件檢索日志系統(tǒng)/列存這里有個(gè)實(shí)操經(jīng)驗(yàn)不要過(guò)早引入多種存儲(chǔ)。我見(jiàn)過(guò)一個(gè)項(xiàng)目同時(shí)用了關(guān)系庫(kù)、時(shí)序庫(kù)、緩存、搜索引擎四套存儲(chǔ)結(jié)果數(shù)據(jù)同步邏輯寫了一堆運(yùn)維復(fù)雜度爆炸。正確的做法是先用一套關(guān)系庫(kù)扛住等真的遇到性能瓶頸了再針對(duì)性地引入專用存儲(chǔ)。過(guò)早優(yōu)化是萬(wàn)惡之源這話在存儲(chǔ)選型上尤其成立。2.4 服務(wù)層接口設(shè)計(jì)要面向被依賴服務(wù)層是別人直接接觸的部分它的設(shè)計(jì)質(zhì)量直接決定了這個(gè)項(xiàng)目好不好用。我評(píng)判一個(gè)金融數(shù)據(jù)服務(wù)接口好不好就看三點(diǎn)語(yǔ)義清晰、錯(cuò)誤可辨、版本可控。語(yǔ)義清晰指的是接口名和參數(shù)名要能自解釋。getData這種名字就是災(zāi)難getDailyClosingPrice才合格。錯(cuò)誤可辨指的是錯(cuò)誤碼要分類客戶端能根據(jù)錯(cuò)誤碼判斷是該重試、該改參數(shù)、還是該報(bào)警。版本可控指的是接口要有版本機(jī)制不能今天改個(gè)字段明天刪個(gè)參數(shù)把調(diào)用方搞崩潰。// 一個(gè)設(shè)計(jì)得比較規(guī)范的響應(yīng)結(jié)構(gòu) { code: OK, data: { symbol: EXAMPLE, closing_price: 123.45, trade_date: 2024-01-15 }, meta: { source: primary, latency_ms: 12, version: v2 } }注意meta里的source字段它告訴調(diào)用方這條數(shù)據(jù)來(lái)自主源還是降級(jí)源。這個(gè)信息在排查問(wèn)題時(shí)極其有用——當(dāng)用戶反饋數(shù)據(jù)不對(duì)你第一眼就能看出是不是降級(jí)導(dǎo)致的。3. 完整實(shí)操流程與關(guān)鍵環(huán)節(jié)實(shí)現(xiàn)3.1 環(huán)境準(zhǔn)備與依賴梳理動(dòng)手之前先把環(huán)境理清楚。我一般會(huì)列一個(gè)清單避免做到一半發(fā)現(xiàn)缺東西?;A(chǔ)環(huán)境方面需要一個(gè)運(yùn)行環(huán)境Python 3.10 或 Node 18 或 JDK 17看你的技術(shù)棧、一個(gè)關(guān)系數(shù)據(jù)庫(kù)PostgreSQL 是我的首選功能全、生態(tài)好、一個(gè)緩存Redis 夠用。如果要做流處理再加一個(gè)消息隊(duì)列。依賴管理上我強(qiáng)烈建議用鎖定版本的方式。金融系統(tǒng)最怕的就是昨天還好好的今天依賴自動(dòng)升級(jí)就崩了。Python 用pip-tools或poetry鎖定Node 用package-lock.jsonJava 用dependencyManagement。這個(gè)習(xí)慣能幫你省掉無(wú)數(shù)個(gè)深夜排查的夜晚。# 以 Python 為例用 poetry 管理依賴 poetry init poetry add fastapi uvicorn sqlalchemy psycopg2-binary redis poetry add --group dev pytest pytest-asyncio poetry lockpoetry lock這一步生成的鎖文件一定要提交到版本庫(kù)這是保證任何機(jī)器上裝出來(lái)的依賴都一樣的關(guān)鍵。3.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)表結(jié)構(gòu)設(shè)計(jì)我遵循一個(gè)原則先想清楚查詢?cè)僭O(shè)計(jì)表。因?yàn)榻鹑跀?shù)據(jù)的查詢模式相對(duì)固定圍繞查詢來(lái)設(shè)計(jì)能避免后期加索引加到手軟。以行情數(shù)據(jù)為例最常見(jiàn)的查詢是某標(biāo)的某時(shí)間段的收盤價(jià)。那么表結(jié)構(gòu)就應(yīng)該圍繞(symbol, trade_date)這個(gè)組合來(lái)組織。CREATE TABLE daily_quotes ( id BIGSERIAL PRIMARY KEY, symbol VARCHAR(32) NOT NULL, trade_date DATE NOT NULL, open_price NUMERIC(18, 6), high_price NUMERIC(18, 6), low_price NUMERIC(18, 6), close_price NUMERIC(18, 6), volume BIGINT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE (symbol, trade_date) ); CREATE INDEX idx_quotes_symbol_date ON daily_quotes (symbol, trade_date DESC);幾個(gè)細(xì)節(jié)說(shuō)明一下。價(jià)格字段用NUMERIC(18, 6)而不是FLOAT因?yàn)楦↑c(diǎn)數(shù)有精度問(wèn)題金融計(jì)算里這是大忌。UNIQUE (symbol, trade_date)約束保證了同一標(biāo)的同一天只有一條記錄天然防重復(fù)。索引按(symbol, trade_date DESC)建因?yàn)樽畛R?jiàn)的查詢是某標(biāo)的最近的行情倒序索引能直接命中。提示金額字段的精度要根據(jù)業(yè)務(wù)定。股票價(jià)格 6 位小數(shù)夠用但如果是加密貨幣或者外匯可能需要 8 位甚至更多。定少了后期改表很痛苦定多了浪費(fèi)空間但問(wèn)題不大所以寧可多留一點(diǎn)。3.3 數(shù)據(jù)采集任務(wù)的實(shí)現(xiàn)采集任務(wù)我通常做成可配置、可重入的形式??膳渲弥傅氖遣杉男?biāo)的、什么頻率、從哪個(gè)源都通過(guò)配置控制而不是寫死在代碼里??芍厝胫傅氖侨蝿?wù)中斷后能從中斷點(diǎn)繼續(xù)而不是從頭再來(lái)。# 采集任務(wù)的核心結(jié)構(gòu)示意 class QuoteCollector: def __init__(self, source_adapter, storage, config): self.source source_adapter self.storage storage self.config config def run(self, symbols, start_date, end_date): for symbol in symbols: # 查詢已采集的日期跳過(guò)已完成部分實(shí)現(xiàn)可重入 done_dates self.storage.get_collected_dates(symbol, start_date, end_date) pending_dates self._get_pending_dates(start_date, end_date, done_dates) for date in pending_dates: try: raw self.source.fetch(symbol, date) normalized self._normalize(raw) self.storage.upsert_quote(normalized) except Exception as e: self._log_failure(symbol, date, e) continue這里upsert_quote用的是插入或更新語(yǔ)義配合前面的唯一約束重復(fù)采集也不會(huì)產(chǎn)生臟數(shù)據(jù)。_log_failure把失敗記錄下來(lái)但不中斷整個(gè)任務(wù)因?yàn)橐粋€(gè)標(biāo)的某天數(shù)據(jù)缺失不應(yīng)該影響其他標(biāo)的的采集。3.4 對(duì)外接口的實(shí)現(xiàn)與限流接口實(shí)現(xiàn)本身不難難的是保護(hù)自己不被調(diào)用方打垮。金融數(shù)據(jù)接口經(jīng)常被多個(gè)下游高頻調(diào)用沒(méi)有限流的話一個(gè)寫錯(cuò)循環(huán)的下游就能把你的服務(wù)打掛。限流我一般用令牌桶算法實(shí)現(xiàn)簡(jiǎn)單、效果穩(wěn)定。按調(diào)用方維度限流每個(gè)調(diào)用方分配一個(gè)獨(dú)立的桶。import time from threading import Lock class TokenBucket: def __init__(self, rate, capacity): self.rate rate # 每秒補(bǔ)充的令牌數(shù) self.capacity capacity # 桶容量 self.tokens capacity self.last_refill time.time() self.lock Lock() def allow(self, n1): with self.lock: now time.time() # 按經(jīng)過(guò)的時(shí)間補(bǔ)充令牌 elapsed now - self.last_refill self.tokens min(self.capacity, self.tokens elapsed * self.rate) self.last_refill now if self.tokens n: self.tokens - n return True return False參數(shù)怎么定rate根據(jù)調(diào)用方的正常用量上浮 20% 左右capacity設(shè)為rate的 2 到 3 倍允許一定的突發(fā)流量。這個(gè)配置不是拍腦袋而是基于正常用量 合理突發(fā)來(lái)算的。定太緊會(huì)誤傷正常調(diào)用定太松起不到保護(hù)作用。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 數(shù)據(jù)不一致的排查思路數(shù)據(jù)不一致是金融系統(tǒng)最頭疼的問(wèn)題因?yàn)樗皇菆?bào)錯(cuò)而是悄悄錯(cuò)了。我排查這類問(wèn)題的順序是這樣的。先確認(rèn)是不是真的不一致。有時(shí)候是緩存沒(méi)更新導(dǎo)致的看起來(lái)不一致清一下緩存就正常了。所以第一步永遠(yuǎn)是繞過(guò)緩存直接查庫(kù)。再確認(rèn)不一致的范圍。是個(gè)別記錄還是批量是某個(gè)時(shí)間段還是全量范圍能極大縮小排查方向。如果是個(gè)別記錄大概率是并發(fā)問(wèn)題如果是批量可能是某個(gè)任務(wù)邏輯錯(cuò)了。最后回溯數(shù)據(jù)血緣。這條數(shù)據(jù)從哪個(gè)源來(lái)、經(jīng)過(guò)哪些處理、什么時(shí)候?qū)懭氲摹H绻到y(tǒng)有完善的日志和審計(jì)這一步很快如果沒(méi)有那就只能靠復(fù)現(xiàn)了。這也是為什么我前面強(qiáng)調(diào)可追溯性——它平時(shí)看不出價(jià)值出問(wèn)題時(shí)就是救命稻草?,F(xiàn)象可能原因排查動(dòng)作個(gè)別記錄金額偏差并發(fā)更新丟失檢查是否有樂(lè)觀鎖/悲觀鎖批量數(shù)據(jù)缺失采集任務(wù)中斷查任務(wù)日志和失敗記錄數(shù)據(jù)延遲隊(duì)列積壓查隊(duì)列深度和處理速率重復(fù)數(shù)據(jù)冪等失效檢查唯一約束和冪等鍵4.2 性能瓶頸的定位方法性能問(wèn)題我一般用從外到內(nèi)的方式定位。先看接口響應(yīng)時(shí)間如果接口慢再看是數(shù)據(jù)庫(kù)慢還是應(yīng)用邏輯慢。數(shù)據(jù)庫(kù)慢就查慢查詢?nèi)罩緫?yīng)用慢就做 profiling。有個(gè)經(jīng)驗(yàn)值得分享大部分性能問(wèn)題不在代碼在數(shù)據(jù)庫(kù)。我遇到過(guò)太多次優(yōu)化了半天代碼最后發(fā)現(xiàn)是少了個(gè)索引。所以定位性能問(wèn)題時(shí)先看數(shù)據(jù)庫(kù)的慢查詢往往能一擊命中。-- PostgreSQL 查慢查詢的常用方式 SELECT query, calls, total_time, mean_time FROM pg_stat_statements ORDER BY mean_time DESC LIMIT 20;這個(gè)查詢能直接告訴你哪些 SQL 平均耗時(shí)最長(zhǎng)比盲目猜測(cè)高效得多。前提是要先啟用pg_stat_statements擴(kuò)展。4.3 我踩過(guò)的幾個(gè)典型坑坑一時(shí)區(qū)問(wèn)題。金融數(shù)據(jù)對(duì)時(shí)間極其敏感而時(shí)區(qū)是最容易被忽略的。我早期一個(gè)項(xiàng)目服務(wù)器用 UTC業(yè)務(wù)方以為是本地時(shí)間結(jié)果行情日期整體偏了一天。后來(lái)統(tǒng)一規(guī)定存儲(chǔ)一律用 UTC展示時(shí)再轉(zhuǎn)本地時(shí)區(qū)并且所有時(shí)間字段都帶時(shí)區(qū)信息??佣↑c(diǎn)數(shù)精度。前面提過(guò)金額要用NUMERIC但我還是見(jiàn)過(guò)用FLOAT存價(jià)格的。結(jié)果就是 0.1 0.2 不等于 0.3 這種經(jīng)典問(wèn)題在對(duì)賬時(shí)暴露出來(lái)。這個(gè)坑的教訓(xùn)是涉及金額和價(jià)格永遠(yuǎn)不要用浮點(diǎn)數(shù)。坑三重試風(fēng)暴。有次下游服務(wù)抖動(dòng)我們的重試邏輯同時(shí)觸發(fā)瞬間把下游打得更掛。后來(lái)加了重試抖動(dòng)jitter在退避時(shí)間上加一個(gè)隨機(jī)量避免所有請(qǐng)求同時(shí)重試。import random def backoff_with_jitter(attempt, base0.5, cap30): # 指數(shù)退避 隨機(jī)抖動(dòng)避免重試風(fēng)暴 exp min(cap, base * (2 ** attempt)) return random.uniform(0, exp)這個(gè)小小的隨機(jī)量在分布式系統(tǒng)里能救命。它的原理是如果所有客戶端都按同樣的退避時(shí)間重試它們會(huì)在同一時(shí)刻再次涌向服務(wù)端形成周期性的沖擊。加抖動(dòng)后重試時(shí)間被打散服務(wù)端壓力就平滑了。4.4 監(jiān)控與告警的落地建議監(jiān)控不是裝個(gè)工具就完事關(guān)鍵是監(jiān)控什么。金融數(shù)據(jù)服務(wù)我必監(jiān)控的指標(biāo)有這么幾類數(shù)據(jù)新鮮度最新數(shù)據(jù)的時(shí)間戳距今多久、采集成功率、接口延遲分位數(shù)、錯(cuò)誤率。其中數(shù)據(jù)新鮮度是最重要的因?yàn)樗艿谝粫r(shí)間發(fā)現(xiàn)數(shù)據(jù)斷了。我一般會(huì)設(shè)一個(gè)閾值比如行情數(shù)據(jù)超過(guò) 5 分鐘沒(méi)更新就告警。這個(gè)指標(biāo)比單純的服務(wù)存活有用得多——服務(wù)活著但數(shù)據(jù)不更新對(duì)業(yè)務(wù)來(lái)說(shuō)和掛了沒(méi)區(qū)別。告警的粒度也要控制。我見(jiàn)過(guò)告警配得太細(xì)一天幾百條最后大家都麻木了真出問(wèn)題反而沒(méi)人看。我的做法是分級(jí)告警P0 直接打電話P1 發(fā)消息P2 只記錄。只有真正需要立刻處理的問(wèn)題才走 P0保證告警的含金量。5. 項(xiàng)目擴(kuò)展與長(zhǎng)期維護(hù)的思考5.1 從單機(jī)到分布式的演進(jìn)路徑financial-services這類項(xiàng)目很少一上來(lái)就是分布式的通常是單機(jī)跑通了業(yè)務(wù)量上來(lái)了再演進(jìn)。我把演進(jìn)路徑分成三個(gè)階段每個(gè)階段解決不同的瓶頸。第一階段是單機(jī) 數(shù)據(jù)庫(kù)所有模塊跑在一個(gè)進(jìn)程里數(shù)據(jù)存一個(gè)庫(kù)。這個(gè)階段的目標(biāo)是跑通別想太多架構(gòu)。第二階段是讀寫分離 緩存當(dāng)查詢壓力大了加只讀副本和緩存扛讀流量。第三階段才是服務(wù)拆分把采集、處理、服務(wù)拆成獨(dú)立部署的單元。這個(gè)順序不能亂。我見(jiàn)過(guò)一上來(lái)就搞微服務(wù)的團(tuán)隊(duì)結(jié)果業(yè)務(wù)還沒(méi)跑通光運(yùn)維微服務(wù)就耗盡了精力。架構(gòu)要跟著瓶頸走而不是跟著潮流走。5.2 數(shù)據(jù)質(zhì)量的長(zhǎng)效保障數(shù)據(jù)質(zhì)量不是靠一次性的清洗而是靠長(zhǎng)效機(jī)制。我的做法是建立數(shù)據(jù)質(zhì)量規(guī)則庫(kù)把常見(jiàn)的校驗(yàn)規(guī)則沉淀下來(lái)每次數(shù)據(jù)入庫(kù)前自動(dòng)跑一遍。常見(jiàn)的規(guī)則包括價(jià)格必須為正、最高價(jià)不低于最低價(jià)、成交量非負(fù)、日期不能是未來(lái)。這些規(guī)則看起來(lái)簡(jiǎn)單但能攔住絕大多數(shù)明顯的錯(cuò)誤數(shù)據(jù)。規(guī)則庫(kù)的好處是新接入一個(gè)數(shù)據(jù)源時(shí)直接復(fù)用已有規(guī)則不用重新想。# 數(shù)據(jù)質(zhì)量校驗(yàn)的規(guī)則示例 def validate_quote(quote): errors [] if quote[close_price] 0: errors.append(close_price must be positive) if quote[high_price] quote[low_price]: errors.append(high_price cannot be lower than low_price) if quote[volume] 0: errors.append(volume cannot be negative) if quote[trade_date] date.today(): errors.append(trade_date cannot be in the future) return errors校驗(yàn)失敗的數(shù)據(jù)不是直接丟棄而是進(jìn)隔離區(qū)等人工確認(rèn)后再?zèng)Q定是修正還是丟棄。直接丟棄太粗暴可能丟掉的是數(shù)據(jù)源格式變化導(dǎo)致的批量問(wèn)題。5.3 我個(gè)人在實(shí)際操作中的體會(huì)做了這么多金融數(shù)據(jù)相關(guān)的項(xiàng)目我最大的體會(huì)是這類系統(tǒng)的難點(diǎn)從來(lái)不在技術(shù)而在對(duì)業(yè)務(wù)的理解。技術(shù)方案網(wǎng)上都能查到但這個(gè)字段到底代表什么這個(gè)時(shí)間戳是交易所時(shí)間還是本地時(shí)間這個(gè)價(jià)格含不含手續(xù)費(fèi)這些只有深入業(yè)務(wù)才能搞清楚。我見(jiàn)過(guò)太多技術(shù)很漂亮但業(yè)務(wù)理解錯(cuò)位的系統(tǒng)最后都推倒重來(lái)了。所以我的建議是動(dòng)手寫代碼之前先花時(shí)間把數(shù)據(jù)字典、業(yè)務(wù)規(guī)則、邊界情況搞清楚。這份前期投入會(huì)在后期以十倍百倍的方式回報(bào)你。另外一個(gè)小技巧給每個(gè)數(shù)據(jù)字段都寫清楚注釋和來(lái)源。這看起來(lái)是小事但當(dāng)項(xiàng)目交接或者半年后你自己回頭看時(shí)這些注釋就是救命的東西。金融數(shù)據(jù)的語(yǔ)義往往很微妙一個(gè)字段的含義搞錯(cuò)整個(gè)分析結(jié)果就全錯(cuò)了。最后再分享一個(gè)習(xí)慣定期做數(shù)據(jù)對(duì)賬。拿系統(tǒng)里的數(shù)據(jù)和權(quán)威來(lái)源對(duì)一遍看看有沒(méi)有偏差。這個(gè)動(dòng)作能發(fā)現(xiàn)很多平時(shí)監(jiān)控發(fā)現(xiàn)不了的問(wèn)題比如某個(gè)數(shù)據(jù)源悄悄改了格式、某個(gè)計(jì)算邏輯有累積誤差。對(duì)賬不需要很頻繁一周一次就夠但要堅(jiān)持。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天堂日本亚洲欧美| 91女优在线观看 | 色噜噜精品一区二区三| 亚洲男人在线观看天堂| 国产女同在线观看视频| 亚洲色悠悠久久88| 日日狠狠久久偷偷色综合免费| 欧美人黑A片无码免视费| 91国精产品| 亚洲色色色| 一中国女人毛片水真多| 舔舔啊| 中文字幕五区| 婷婷久久五月| 草草影院最新网址| 精品国产乱码| 久久一区二区三区四区五区| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 中文久久| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 人妻熟女午夜精品在线| 嫖老熟女A片一二三区| 亚洲综合91| 亚洲精品免费中文字幕| 老鸭窝在线视频播放| 性欧美体内射精| 黄片无码在线制服| 少妇一区二区三区高速| 免费人成毛片乱码| 蜜臀久久99精品久久久久| 精品一区99999| 91久久精品国产| 久久久九九网站| 无码动漫av中文字幕| 亚洲欧美97√| 全国男人天堂网| 夜夜操av亚洲一区二区| 91欧美偷拍| 久久久久久午夜男人的天堂| 精品人妻1237| 人人爽天天爽| 啊啊啊好爽快点啊啊啊嗯嗯| 色吧综合网| 亚洲 自拍偷拍 欧美| 91美女网站| 久久久久久九九九九九| 免费精品AB| 蜜桃臀一区二区三区久久| 国产少妇高潮| 亚州日韩97| 亚洲男人的天堂在线看| 色拍偷亚洲| 91挑色欧美| 人妻爽爽啪视频| 91艹逼精品| 天色综合网| 成人女人国产| 久久艹逼视频| 日本3级一区二区免费| 欧美经典一区二区三区| 亚洲精品无码久久AV| 日韩操逼HD| 国产精品熟女九色九色蜜臀| 亚洲第一黄色av网站| 中文字幕一区二区免费在线| 亚洲图片欧洲图片aⅴ| 久久精品性| 日韩人妻少妇 一区二区三区| 国产高潮AA片免费看| 五月婷婷爱六月丁香色| 少妇无码太爽| 亚洲在线A| 超碰九九| 17c嫩草51久久91嫩草| 亚洲综合20p| 网友自拍第1页| 91天天看| 91成人久久 | 熟女欧美日韩综合婷婷| 亚洲图片 激情小说| 欧美日韩少妇色情| 久久久久久久久女黄| julia国产在线 | 香蕉视频精品亚洲一区二区三区在线播| 91超碰丝袜制服| 亚洲欧美碰碰| 丰满岳乱妇一区二区三区| 亚洲欧洲综合成人av一区| 精品偷拍13p欧美dodk视频| 思思热影视| 九九综合| 亚洲色图 图片| 91观看 国产白丝| 久久久久亚洲| 睡产熟女乱伦| 美女让帅哥通她小鸡鸡| 亚洲人妻久久| 五月综合久久| 国产精品第一页国产大屁股视频免费区i| 人澡逼| 欧美日韩国产成人高清| 国模吧 一区二区三区| 久久9精品视频| 美女黑人91神马| 91草草草| 免费的黄片有限公司| 操人91| 久热久操| 麻豆国产精品午夜视频| 91无码中出人妻视频| 大象AV在线| 99性爱在线观看| 日韩精品99999| 欧美 熟女 日韩| 老妇女91| 留下AⅤ黄色片| 亚洲情色一区综合| 亚州一区二区| 色99色| 久久久久78| 网站A V在线| 簧片免费看视频| 抽插爽| 久久久久九九九九| 色激情五月天| 国产精品点击进入在线影院高清 | 亚洲激情天堂网| 天天肏视频| 囯产乱伦一区二区三女 | 操一操摸一摸| 97久久精品亚洲| …中文字幕亚洲乱,97人妻无码费视…| 国产精品4p在线观看| 日韩精品99999| A男人的天堂| 日本人妻中文字幕精品| 亚洲黄日韩无码专区| 日产狠狠干| 亚洲色人阁| 日本123区操B视频| 99re6国产精品99re在线| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 人人干人人操人人..com| 精品人妻一区二区三区夜夜| 人人操人人插人人摸人人干| 亚码人妻| 国产AV高清AV无码| 欧美色九九| 丁香五月影院| AA级电影三区| 欧美性五月| 成人综合久久精品色婷婷| 欧美中字不卡| 中文字幕啊啊啊在线观看视频| 午夜噜噜噜| 天天91~综合入口| 97超碰中文在线| 98色网| 亚洲av青草久久一区二区| 日韩AV电影网站| 日韩免费在线观看不卡| 久久久精品九| 狠狠躁AV| 欧美,日韩综合久久| 亚洲欧美日韩中文久久自慰| 日产精品久久久一区二区| 欧美日韩中文亚洲v在线综合| 99草精| 五月天婷婷综合网| 三级日韩一区二区三区| 九九九九九九免费视频| 91日日| 一级黄色视频网| 久久久天美| 亚洲色吧网| 99re国产精品视频| 91美女片在线| 天天爱综合网| 蜜臀av一区二区三区免费观看| 91狠狠| 国产精品久久久久久夜夜夜夜| 久久久国产成人一区二区三区在线| 激情小说激情视频| 日韩人妻无码精品系列| 97电影院超碰| 亚洲女毛多水多21P| 99热| 国产精品一区二区三区免费视频| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 超碰人人乐97| 96精品久久久久中文字幕| 国产又粗又大硬免费色网视频| 色婷婷淫色网| 日本一区二区三区欧美日韩中文字幕| 日韩国产欧美伦理在线| 日韩精品资源专区二区| 人人操人人操人妻人| 嫩草 人人网精品| 久久久久免费少妇| 男女激烈网站最新| 操逼操逼操| 国产AV人人夜夜澡人人爽麻豆| 亚洲日韩AV视色| 在线性黄高清免费视频| 亚洲色图尤物视频| 日韩视频中文字幕| 久久大| 怡红院久久老司机| 中文字幕精品三级久久久| 欧美亚男人的天堂| A V少妇特黄三级| 乱伦系列一区二区| 国产熟女乱论| 国产亚洲精品激情| 色色毛片| 一本色道人妻久久| 美女黄页网站| 91高清日| 九九热只有精品| 欧美黑人日韩少妇色情| 国产一区二区精品在线视频| 99re在线精品78| 精品人妻视频一区二区三区蜜桃视频| 蜜桃久久久久久久| 十八禁黄色成人网站观看| 91蜜臀在线久久久久| 久久精品小视频| 欧亚综合一卡二卡中文字幕| 无码免费一区二区三区啪啪| 人人操天天爽| 久久大陆| 亚洲资源网| 小少妇| 激情文学网伊人| 久久老子无码午夜伦不卡| 无码乱人伦中文视频| 国产色精品午夜大片| 日韩国产乱子伦App| 久久久久久久久久va| 人人玩人人添人人澡免费| 久热在线精品免费观看| 久草网站免费在线观看| 99九九久久| 99热9| 操死我了嗯嗯嗯| 色五月69夫妻| 超碰这里有精品| 涩涩久久精品| 九九九九久久久久| 国产男女边吃边摸视频网站| 欧美日产国产在线成人第一区| 成人一级性爱| 国产精品青草综合久久| 精品久一区免费| 绑缚麻绳人妻寝取完整版| 91美女色视频亚洲| 日韩欧视频| 精品九九| 亚洲成人久久一区二区| 蜜臀久久一区二区| 久久视频,这里只有精品| 午夜精品久久久99热蜜桃的功能特点| 亚洲综合草草| 超碰99re| 九月丁香婷婷色| 91动漫操逼视频| 激情自拍 校园春色| 中文字幕片| 久久97资源 网| 东方亚洲在线操逼天堂| 日韩熟女精一区二区三区不卡| 国产在线综合福利网站| 久久亚洲AV无码专区首页| 中文字幕在线日亚洲9| 欧美日韩国产传媒在线精品| 久久精品噜噜噜成人看免欧美大片| 久久久久夜夜夜夜| 亚洲一区二区性爱电影| 欧美日韩国产人人| 五月天AV资源| 亚洲精品一区二区精华| 九九综合| 亚洲丝袜二区在线| 欧美日韩国产黄色片| 亚洲 综合 欧美| 超碰97欧美日韩| 人妻丝袜二区| 日韩性爱网址| 欧美肥臀在线| 人人射人人操人人摸| 99999精品视频| 欧美性第1页| 亚洲三区视频| 97色爱| 97视频在线观看免费高清| 91一区二区三区蜜桃| 一区二区激情国产熟女 | 久久久9视频| 91模特在线观看| 26uuu性| 美女人妻色网站| 东北女人高潮视频| 国内三级自拍小视频在线观看| 熟女欧美日韩综合婷婷| 啪啪视频亚洲第一| 欧美少妇第一页| 91久久久亚洲| 午夜福利久久久噜久噜久久综合| 99国产精品| 超碰97起碰| 好爽视频在线观看| 亚洲va综合va国产va中文| 人妻少妇无码| 丁香六月婷婷综合| 变态综合色| 麻豆天美国美国产AV| 特色a在线上| 久久久人妻| 人人妻人人玩人人澡人人爽| 丁香五月av| 日韩久射综合| 人人操人人精品影片| 和协影院中文字幕三区| 一起草在线视频| 67194无码不卡| 日韩黄片影院| 亚洲人妻爽爽爽| 嗯嗯啊啊用力视频免费| 无码 黑人一区二区三区| 日韩ab网 | 亚洲乱色视频一区、二区在线| 很很很很操| 中文字幕在线免费观看视频| 日韩熟女无码| 欧在线一二区| 97久久超碰日韩精品| 无码国产精品午夜不卡( | 一级@啪啪视频| 99久草| 久久久精品一区二区| 人妻激情另类| 99无码| 无码国产精品久久久久| 色吧5亚洲| 亚洲有码第一页| 熟女啪啪视频| 性色一线| 久久熟妇五十路一区| 婷婷六月色| 日韩黄色成人性爱| 欧美在线播放aaaa| 久热91| 日韩激情中文字幕有码| 欧美网站免费| 国产成人精品日本亚洲语言| 亚洲 欧美 手机在线观看| 色y情视频免费看| 国产特级毛片AAAAAA高潮流水 | 欧美 综合| 色老汉色| 91精产一区二区三区| 9精品在线| 亚洲熟女乱综合一区二区三区| 久草成人| 日本 欧美 国产一区| 99久久免费看精品国产一区| 久久25| 成人无码在线超碰网| 蜜桃精品一区二区三区ww| 久久久五月天| 东北女人的毛片| 天美一二三在线观看Av| 天天摸天天操视频| 欧美狠狠弄| 老熟妇91| 大香焦A片| 东京热免费视频| 黄色成品网站| 国产精品夜夜夜| 亚洲在线a| 天天摸夜夜添无码小视频| 欧美性爱伊人| 熟妇熟女亚洲天堂网| 嗯嗯嗯不要不要免费视频| 天天躁狠狠躁av| 精品熟女呻吟久久91| 亚洲导航深夜福利| 肉丝网站91| 久久久亚洲精品中文字幕人妻| 欧美日韩97在线| 国产又爽又黄| 亚洲女毛多水多21P| 精品超碰中文在线| 91亚.色| 国产欧美精选激情视频| 91视频观看网站| 97超碰色情| 婷婷久热| 4tube欧美女厕所| 很黄很色的视频在线观看| 亚洲操操操| 黑人精品欧美一区二区蜜桃| 丁香五月综合| 午夜男女爽爽爽影院视频| 校园春色制服丝袜中文字亚洲| 劲爆欧美人妖三区91| 思思热久久成人| a人欧美综合天堂麻豆| 一区二区精品日韩欧美在线观看 | 激情四射婷婷六月天| 午夜福利精品| 欧美Ⅴ性爱| 另类图片五月| 日韩激情毛片一级久久久| 九九拍拍精品视频在线播放| 天天射天天操天天干天天吃2018| 久久香蕉超碰97国产精品| 青青青国产手线观看视频2| 91天堂| 成人五月天色网| 中文字幕女同在线| 91xingse| 超碰人人干天天射| 日本色婷婷| 亚洲成a人v欧美综合天堂下载 | 国产成人精品必看| 91情色在线| 97免费在线视频| 久操在97| 美女露胸露屁股| 亚洲成人性| 91观看 国产白丝| 青青草白白色| 亚 欧 美 综合| 国产 热久久久久国产精品| 精品视频久久| 欧美色道啊| 久久欧洲| 精品久久久久9999| 天天日天天操心| 国产精品久久久久久久黄无码| 亚洲天堂资源在线| 亚洲区 欧美区| 国产和美国毛片| 91N综合网| 国产成人主播| 久久仑合| 丁香婷婷激情五月天无毒不卡| 亚洲AV成人在线| 国产一区二区在线电影| 亚洲成人免费中文字幕| 国产精品成人AV片免费看网站| 久久久涩| 亚欧操逼片在线观看| 97精品第3页| 视频在线观看一二三区| 色色色综合网| 精品少妇后入一区二区三区四区人妻巨乳| 精品伊人久久久大香线蕉小说| 中国一级操逼视频| 午夜视频黄| 91超碰在线播放| 精品一二三区四视频| 天天综合影院91| 91 丝袜在线| 口爆欧美91| 婷婷综合五月天| 亚洲色啪| 久久人妻97久久久久久久| 啊啊啊好爽快点啊啊啊嗯嗯| 乱人伦 国语对白:视频直接看| 淫妻综合网| 荡小穴在线观看| 日韩不卡网操逼中文字幕日韩| 亚洲成人妻日韩在线| 亚洲欧美内射| 日韩性爱一级片| 欧美性爱三区二区| av中文字幕在线熟女| 色噜噜人妻丝袜AV资源| 91neishe| 长长久久免费视频| 国产精品suv一区| 国产精品高朝久久久久久久| 国产精品乱码久久| 两性色网| 中文字幕丝袜美腿| 97在线亚洲| 97综合网| 激情婷婷五月天| 色嘟嘟人妻天堂网| 2017,超碰| 日韩成人性日韩成人性爱视频在线免费观看| www.99色| 全球成人中文在线| 精品视频一区二区| 日韩欧美性吧婷婷乱伦大香蕉 | 五月情色天| 欧美性爱无码一区二区三区| 五月丁香狠狠爱| m欧洲一级午老| 亚洲97在线观看| 色色操| 玖色av| 国产强上视频在线观看| 大香蕉92| 色噜噜婷婷| 免费超碰97在线观看| 亚91网| 日韩精品在线观看网站| 欧美人妖内射| 手机看片1024你懂的国产| 国产中文字幕在线| 丝袜视频网国产90| 午夜福利视频在线一区| 欧综合网| 欧洲综合视频| www.AV有限公司一区| 后入内射蜜桃臀| 蜜臀AV网站| 亚洲日本男人天堂网| 欧美熟女丝袜| 自拍偷拍国产欧美日韩韩| 免费黄色片。| 97视频观看| 国产农村妇女毛片精品久久| 国产日韩欧美三级片| 嗯嗯啊啊好大好爽| 人妻中文字幕精品无码| 国产欧美美女免费观看视频| 麻豆熟妇乱妇熟色A片在线看| 强被迫伦姧在线观看无码网站| 丁香六月啪啪| 操逼啊啊啊91| 欧美性区| 啪啪资源网| 精彩国产视频播放1区2区| 秋霞鲁丝午夜无码一区二区三| 综合久久久久久久综合网| 蜜臀亚洲中文| 国产精品久久久久无码A√| 久久久久久波多野吉衣高潮| 操逼无码操逼| 欧美日韩国产人人| 亚洲成人网站在线观看| 中文字幕在线免费观看 | 久久久久人| 丰满高潮18xxxx| 夜夜高潮夜夜爽国产伦精品| 亚洲夜夜欢无码一区二区| 91久久精品美女高潮喷水| 日本色婷婷| 欧美一区二区三区互相| 欧美天堂超碰97| 操屄不卡视频| 亚洲一区在线观看欧洲| 精品人妻久久久| 亚洲色图在线视频| 黄色视频特级毛片| 97精品一区二区视频| 日韩国产九九精品一区二区三区毛片| 欧美一区二区亚洲天堂| 免费福利视频中文字幕| 欧美少妇色图| 久久激情视频| 九九九九免费高| 亚洲最大91网| 五月婷婷色| 国产成人手机视频激情| 久久久久久久伊人精品| 亚洲av强奸乱伦| 熟妇人妻精品一区二区| 大吊色| 亚洲av淫乱| 国产www色在线观看| 蜜臀久久久99久久久久 | 偷拍 精品另类 凸凹了四区| 亚洲综合中文字幕有码| www.大香| 中文字幕成人理论在线| 91爆操视频| 殴美在线AⅤ| 一本大道不卡一二三区| 免费伦费视频在线观看| 91社操逼| 亚洲成A∨人影院在线欢看| 国产乱人伦AVA麻豆软件.| 欧美日本一区二区a人| 无码国产Av| 日韩亚洲精品一区二区| 亚洲乱码尤物193YW| 国产高清精品福利| 大香蕉乱伦视频网| 国产一级片| 殴美牲| 久久久久中出| 99蜜桃臀久久久欧美精品网站| 综合色拍| 3级毛片一二| 亚洲天天操| 午夜人人操| 日韩精品碰碰| 大香蕉久操| 性色一线| 色九九九综合| 久久久无码精品人妻二区 | 啊啊啊啊啊啊在线观看| 日韩操逼性鲍| 深田咏美亚洲精品福利社 | 欧美玖玖爱免费玖玖| 后入综合久久| 蜜臀在线视频| 国产精品无码av在线| 女人爽到高潮潮喷18禁网站| 婷婷大香蕉| renqi久久久久久久久久久久| 91亚洲不卡一区| 日韩精品电影| 亚洲丝袜少妇在线| 人人妻人射| 东北女人高潮视频| 日本成人免费一区二区三区| 亚洲aV性爱| 亚洲天堂女优在线| 亚洲久草AV色图| 国产精品人妻无码久久久互動交流 | 无码操逼网| 亚洲男人天堂2019| 日韩ab网| 亚洲男人天堂AV| 操逼啊啊啊91| 91亚洲欧美色图| 欧美日韩人妻精品系列一区二区三区| 亚洲国产精品99久久久| 大香蕉免费中文| 99精品伊人| 精品久操| 国产日韩精品人妻久久久久色欲网站 | 狠狠久久亚洲欧美专区| 96久久久精品| 性无码专区2020| 在线无码操| 青青草原人妻| 不卡视频一区蜜桃视频| 欧美亚洲尤物久久| 丁香五月天久久精品视频一区二区三区| 国产9熟妇视频网站| 国产曰批免费观看久久久| 少妇毛片久久| 试看60秒 爽| 啊视频在线| 午夜精品人妻二区三区| 无码外流操逼视频| 婷婷色香| 久久精品国产亚洲AV先锋| 五月天婷婷综合网| 91精品人妻一品二品三品| 亚洲砖码砖专无区2023| 欧美精品久久96人妻无码| 欧美日韩不卡传媒| 精品国产精品一区二区| 91 亚欧| 超碰碰激情97+久| 日本精品网站在线中文| 麻豆AV短剧| 三级日韩一区二区三区| 用力操死我| 激情五月综合开心五月| 天操老女人| 91精品无码人妻系列| 啊啊啊轻点在线观看| 激情综合五月丁香| 91亚州| 人妻 制服 日韩 中文 在线| 亚洲 自拍偷拍 欧美| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 爱爱啊啊啊| 日本在线不卡123| 国产传媒日韩欧美| 中文字幕一区 二 区 三 四 五 区日 日 骚 | www…国产操逼| 超碰97人人乐| 欧美午夜精品久久久久久3D| 99999精品| 蜜桃在线观看一区二区三区 | 啊啊啊啊二区好大| 最新三级网址| 日韩综合第八区国产精品| 久草大| 中文字幕欧美丝袜07资源| 美女露胸露屁股| 国产在线强奸视频| 人人摸人人舔一区二区| 射丝袜大香蕉| 久久久久久精品免费看A级| 四虎av在线| 天美麻豆精品视频99| 亚洲av国产av综合av卡| 成人天天爽| 色色五月天婷婷| 日韩电影在线观看网址| 日韩欧美天天爽爽爽天天爽爽 | 日本黄色天堂| 日本三级中国三级99人妇网站| 超碰78| 亚洲精品一卡二卡三卡福利视频网站| 超碰成人国产| 伊人影院日本| 国产精品久久久蜜臀| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 日韩78m视频| 成人网址在线观看| 久草精品国产99| 婷婷精品国产欧美精品亚洲人人爽| 涩涩五月天| 一级成人性爱| 污色区网站| 亚洲国产天堂| 91精品91久久久久77777| 欧美日韩国产电影| 91蜜臀在线久久久久| av资源在线观看少妇| 91人妻人人澡人人爽人人精品| 伊人午夜福利视频| 欧美黄色图片| 婷婷五月天成人网| 国产精品久久久久亚洲av| 成人线上超碰| 国产精品禁久久久精品| 国产精品熟女九九九| 96精品在线| 国产精品无套内谢| 国产精品爆乳懂色蜜乳| 抽插亚洲无码| 国产不卡的视频| 校园春色中文字幕AV| 精品人妻1237| 无码日韩网站| 国产精品探花视频| 成人免费看吃奶视频网站| 国内外内射高清视频| 小情侣高清国产在线视频| 日本伦乱九九九综合| 日本媚薬中文字幕在线| 欧美九一精品久久久熟妇| 午夜大香蕉| 人人妻人人狠人人| 思思热久久成人| 国产AAAAAABBBBB| 日本操逼无码| 99无码| 香蕉人欧美综合| 啊啊啊啊免费视频| 欧美色图片色哟哟| 国产天天噜一噜久久久| 亚洲自拍欧美国产首页网曝| 丁香六月天| av资源在线播放天堂| 国产综合操逼高清| 国产乱伦一二三区| 日本韩欧美在线播放a| 人妻乱仑一区二区三区| 亚洲一欧洲中文字幕在线 | 亚洲啪啪视频一区二区| 欧美高清18A片| 被操高清无码视频| 人妻无一区二区三区| 久久久久亚洲熟妇熟女| 日日夜夜精品视频| 一二三四区电影| 国产丁香精品露脸视频| 超碰在线免费一区二区三区| 色97欧美| 中文字幕第2页| 上特色A在线| 日韩免费a级毛片无码a∨| 91香蕉国产尤物视频| 青娱乐福利99| 欧美成人四级在线播放| 日韩卡一卡二卡三在线| 在线国产一区二区av| 亚洲激情AV| 亚洲av在线免费观看| 色色操| 无码99| 久操操| 少妇蹲下买菜露大唇0| 午夜视频久久久| 天美91| 久久精品日韩| 日本黄 R色 成 人网站| 日韩99神马视频播放片在线播放| 综合久久久久久久久91| 国产东北女人在线视频| 精品人体无圣光凹凸| 色婷婷丁香| 色婷婷导航| 伊人久久亚洲中文字幕| 伊人色综合超碰| 青青欧美| 九九热AV| 日韩av在线免费网站| 九九热视频在线观看| 欧美色66| 啊啊啊啊啊啊啊在线| 午夜在线播放| 亚洲欧洲日韩天堂av| 激情五月丁香五月| 久久一二三四不卡| 日韩本不卡视频在线观看| 欧美片第一页| 国产精品成人在线| 91九九九小逼| 搡老女人老熟女91老熟女综合网| 日韩偷拍一区二区三区| 国产超碰人人操| 国产精品色哟哟| 欧美色综合网| 乱伦图av| 欧洲色| 久久99深爱久久99精品| 九九九久久久| 大香蕉五月天婷婷| 日韩欧美丝袜诱惑| 婷婷爽人人婷婷爽视频| 黑人黄片在线免费观看| 曰本熟女视频| 亚洲丝袜诱惑| 亚洲一区中文字幕一区| 久久久久78| 激情综合网亚洲| 丁香五月天啪啪| 日韩中文字幕宗合在线| 青青在线视频日韩欧美| 国产久久成人| 精品99999久久久久久| 九九九999久久久网站| 特级毛片特黄久久免费看| 国产日本熟女顶级一区二区三区视频| 欧美伦乱| 亚洲一区二区中文字幕| 六月婷婷一区二区三区| 欧美人人操人人插| 天天操av懂色| 草草草草视频| 强奸乱伦av电影| 丝袜狠狠草尤物人妻av91| 日韩综合97p| 在线播放成人网站| 亚洲少妇综合在线播放| 午夜精品99久久久久传媒| 91色亚洲| 强奸国产在线| 日韩精品电影| 人妻 中文 日韩| 东京热av男人的天堂| 亚洲欧洲日本精品中文a∨| 97在线免费看| 久久久精品,3| 色色色热| 男人天堂2017| 青青青操| 综合久久久久久久久91| 色哟哟-国产专区| 乱性AV| 91国产大片| 国产日韩精品无码去免费专区国产| 久久中出在线| 懂色av色欲av蜜臀av| 新视频sss国产| 99在线无码精品秘 入口黑人| 欲香欲色天天天综合和网| 人妻献身系列第54部| 国产视频第2页| 青青操轻轻| 97在线视频免费看| 91ise欧美| 强奸乱伦AV一天堂网| 久久一二三四不卡| 人妻系列无码专区中文有码| 久久久内射良家| 久久久久久久人妻| 欧美亚洲清纯| 日韩中文字幕二区| 亚洲黑人在线| 天天夜夜久久| 囯产操逼片| 熟女精品日韩一区二区三区| 有码人妻系列| 熟女精品va中文字幕| 欧美丰满少妇交换91欧美精品| 夜夜爽33333| 国产家庭乱伦表演| 97在线资源| 国产成人亚洲精品自产在线| www久久国产精品| 男人的天堂无码| 青青草视频久久| 操逼网站网站| 91男人天堂网| 亚洲精品人妻吞精av | 午夜爽爽爽在线观看永久入口姬片| 久久国99999| 99热国产| 天天操人人操狠狠插| 欧洲一区二区| 1区2区3区中文字幕日韩| 久久一区二区三区入口| 欧美91精品国产自产| 97频视在线| 国产91 丝袜在线播放00-百度| 欧美一二在线| AV九九| 新久久AV| 国产成人久久精品蜜臀| 狠操91,com| 人人妻人人操人人乐| 综合伊人网12色| 超碰吊日色| 搞中出视频在线观看| 激情第四色| 成人性爱美曰韩| 日韩成人高清一区二区| 超碰九九| 老女人老91妇女老热女| 旡码电影特区| 99精品在线| 亚洲欧洲精品视频发布| 欧美色www亚洲国产阿娇要播| 欧美综合色| 青青草视频导航官网| 95人妻爽爽人人做人人澡| 国产av又色又爽又黄| 亚洲国产精品无码AV久久| 久久久亚洲熟妇资源| 日韩精品怡红院| 日韩精品人妻中文字幕有码午| 激情五月综合| 久久鲁干| 免费作爱一级视频| 日日夜夜精品视频| 国产精品乱码久久久久久| 欧美熟女妇同| 91欧美偷拍| 天天干一区二区| 一色网男人的天堂| 狠狠狠狠狠狠| 91久久久久久久久18| 亚洲最新a在线观看| 色色香蕉| av最新免费中文字幕| 国产亚洲深夜激情| 色欲久久久久综合网| 亚洲欧美人妻| 国产精品com| 久久男人的天堂| 爱爱啊啊啊| 日本一区不卡| 97操| 亚洲无码精品AV久久久| 91精品人| 女性喷水高潮在线观看| 四虎国产精品永久在线囯在线| 丰满熟女一区二区三区在线播放| 久久线上视频免费看| 操熟女91| 97超碰日韩| 国产 日韩 欧美一区| 搡老女人老熟女91| 91国产操逼视频| 日本黄大片在线观看视频| 无码不卡八戒| 一区二区三区黄色片a| 精品一区二区成人| 岛国视频免费在线观看| 亚洲欧美日韩制服另类| 人妻一区二区三区视频| 亚洲国产尤物yw在线观看| 加勒比人妻综合| 色综合 加勒比| 成人一二三区| 极品销魂美女一区二区 | 国产伦精品免编号公布| 国产夫妻一区二区| 欧美亚洲日韩16色| 天欧美在线| 极品一区二区三区免费| 欧姜老司机| 夜草网站| 国产精品成人福利在线| 国产成人精品亚洲日本| 嗯啊不要在线| 亚洲永久AV无码精品秋霞| 91久久伊人婷婷青青草| 亚洲AV在线资源| 超碰人妻久久| 国模无码人体一区二区三| 久草视频在线视频在线视频在线观看| 熟女视频久久| 夜夜高潮夜夜爽| 六月丁操逼| 东京热精品97综合网| 992视频一区| 无码人妻一区二区三区色欲aⅴ| japan日本高清乱xxxx| 另类在线| 青青草色情网站视频| 久久超碰天天| 久久久久亚洲熟妇熟女| 日本欧美韩国国产在线| 亚洲国产一区二区入口| 婷婷午夜| 亚洲区限制级| 台湾佬大香蕉| 3d成人精品一区二区| 97人妻色| 后入福利视频| 在线a亚洲视频播放在线| 成人免费福利在线观看| 色狠狠综合| 亚洲老熟妇xxx| 九九九草| 国产精品不卡一区二区三区av| 91在线精品| 亚洲日韩av一区二区三区百合| 美女上床网站| 人妻一二三区| 久久久艹艹艹| 日日日大屁股骚女人精品| 中文字幕av一区二区三区人妻少妇| 欧美精品久久96人妻无码| 国产女人与拘做受视频免费| 天美传媒国产原创中文字幕亚洲欧美另类| 欧美 传媒 麻豆 日韩 偷拍| 九九热av| 日本三级A片网站com| 亚欧精品久久久久久久久久久| 国产精品国产| 无码人妻精品一区二区中文| 久久国产三区| 老熟女阿 国产91| 婷婷丁香五月天综合东京热| 爽爽爽免费视频| 欧美一二三| 丁香六月婷婷久久综合| 中文一区二区| 久9re热视频这里只有精品| 天天干,夜夜爽| 色噜噜人妻av中文字幕| 插穴性爱视频在线观看| 黑丝日韩av丝袜av| 性色AV蜜色av色欲av| 后入美女国产| 伊人少妇久久久| 少妇内射视频| 变态乱伦伪娘灌肠一区二区| 欧美国产视频| 一级人妻性爱视频| 亚射在线| 飘花国产午夜精品不卡| 天天做天天爱天天爽AV| 久久的免费性爱视频| 国产精品天美传媒| 熟女熟妇伦久久影院毛片一区二区| 韩国免费播放一级毛片| 亚洲男人的天堂V| 日本乱人伦片中文三区| 偷拍亚洲高清图片| 日本羞羞的视频在线播放| 蜜臀久久99精品久久久久免费观| 尤物视频视频官网| 国产久久一区二区三区野外在线| 中文字幕一区二区视频在线观看| 不卡免费av在线播放 | 图片区小说区| 人伦四五区| av大香蕉| 九九九九精| 强上我不卡卡| 九九视频黄色片| 九九九九九九九九九五码| 国产精品盗摄 偷窥盗摄| 人人澡人人弄| 久久免费精品视频免一| 天天摸天天操视频| 国产欧美日韩女同性恋ww喷水精品| 无码78| 91天堂视频| 亚洲av影音先锋| 日韩成人小视频| 99热日本| 亚洲图片欧美| 精品四五区| 综合免费无码中文| 69精品| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 78久久| 欲女人妻性色av| WWW4虎| 强奸a片网| 亚洲国产成人精品999| 亚洲在线观看| 日日夜夜国产综合| 精品久久久亚洲AV成人网站| 国产一级内射高清视频| 亚州色站 日韩电影| 首页中文字幕中文字幕免费| 日本欧美不卡| 开心六月色| 狼狼色丁香久久婷婷综合五月| 毛片99-全集电影手机免费观看完整-B029AV | 婷婷爱五月| 久久东京伊人一本到鬼色| 久久香蕉国产线看观看亚洲女人 | 日本日逼高清| 亚洲熟女综合一区二区| 男人网站婷婷| 黑丝内射一区二区三区| 日韩人妻一二三区视频| 91爱| 欧美久久人体| 成人五月天色网| 欧美综合网A| 精品对白久久不卡| 久久风骚城市人| 久久一本大香蕉| 草久久久| 熟妇人妻一区二区三区| 日韩av乱伦| 亚洲制服欧美另类内射| 亚洲国产精品9999在线观看| 亚洲麻豆av一区二区| 国产97在线 | 亚洲| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 欧美色就是色| 日韩一卡二卡三卡| 亚洲 欧美 日本 国内 首页| 99热18这里只有精品| 欧美国产一区二区三区麻豆传媒| 有码人妻系列| 青青草自拍视频在线播放| 国产按摩一区二区三区| 色婷婷网| 柠檬AV导航| 国内三级自拍小视频在线观看| 伊人久久大香大香线蕉中文| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久久久久亚洲Aⅴ无码| jizzjizz欧美| hd成人一区二区在线| 精品久久人妻成人网| 五月丁香激情综合网| 色九月婷婷| 亚洲色图激情小说| 99999无码| 97综合日韩| 亚州色图欧美| 偷拍五区| 亚洲欧美天| 国产97视频|