亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Flink實時數(shù)據(jù)分析平臺實戰(zhàn):從數(shù)據(jù)采集到可視化大屏

Flink實時數(shù)據(jù)分析平臺實戰(zhàn):從數(shù)據(jù)采集到可視化大屏 1. 從需求到架構(gòu)先想清楚實時到底意味著什么接到一個實時數(shù)據(jù)分析平臺的需求時我心里第一反應(yīng)不是寫Flink代碼而是先問對方一句話你說的實時是秒級、分鐘級還是小時級這個問題問出來很多需求就瞬間清晰了。我見過太多團隊一上來就鋪Flink集群、搞大屏結(jié)果做了三個月發(fā)現(xiàn)核心指標(biāo)延遲五分鐘就能滿足白費了一堆功夫。Java工程師做實時數(shù)據(jù)平臺有個天然優(yōu)勢Flink本身就是Java/Scala生態(tài)你熟悉的Spring Boot、Maven、JVM調(diào)優(yōu)經(jīng)驗全部能復(fù)用。相比Python系或者純SQL系的數(shù)據(jù)棧Java團隊啃Flink的上手成本要低得多。這篇實戰(zhàn)文章我就圍繞數(shù)據(jù)采集→實時計算→可視化大屏這條完整鏈路把從零搭建一個實時數(shù)據(jù)分析平臺的架構(gòu)思路、核心代碼、踩坑記錄都講透。1.1 先拆需求你的大屏是不是假實時大多數(shù)實時數(shù)據(jù)分析平臺的真實需求拆開來看無非三類指標(biāo)監(jiān)控類比如訂單量、成交額、在線用戶數(shù)要求秒級或分鐘級刷新行為分析類用戶點擊流、頁面路徑要求準(zhǔn)實時但允許一定延遲預(yù)警通知類比如異常流量、交易失敗率飆升要求延遲越低越好這三類需求對技術(shù)選型的影響完全不同。我之前遇到一個做污水處理可視化大屏的項目客戶說實時結(jié)果詳細(xì)了解才知道污水?dāng)?shù)據(jù)本身是五分鐘采集一次那你就算用Flink做到毫秒級計算也沒有意義瓶頸在采集端。反過來如果是電商大促的實時成交大屏每秒鐘都有成千上萬條訂單事件那你就需要認(rèn)真設(shè)計從采集到展示的每一層。所以第一步永遠(yuǎn)是做延遲預(yù)算端到端延遲 采集延遲 傳輸延遲 計算延遲 存儲延遲 展示刷新延遲。把每一項都列出來標(biāo)出可接受范圍后續(xù)所有技術(shù)決策都有依據(jù)。1.2 端到端鏈路的分層設(shè)計我做的實時數(shù)據(jù)分析平臺標(biāo)準(zhǔn)鏈路分五層層級組件選型職責(zé)采集層Filebeat / Flink CDC / HTTP SDK將日志、數(shù)據(jù)庫變更、業(yè)務(wù)事件統(tǒng)一送入消息隊列傳輸層Kafka削峰填谷、緩沖削流解耦采集與計算計算層Flink實時ETL、窗口聚合、狀態(tài)計算、規(guī)則匹配存儲層Doris / ClickHouse / Redis結(jié)果表存儲、維度數(shù)據(jù)緩存、大屏查詢加速展示層Vue ECharts / DataV可視化大屏、指標(biāo)卡片、趨勢圖表這套鏈路跟傳統(tǒng)的離線數(shù)倉最大的區(qū)別在于數(shù)據(jù)不是按天批量加工而是以事件流的方式持續(xù)流動。Flink跑在Kafka和存儲之間相當(dāng)于一個永不停止的計算引擎——上游數(shù)據(jù)來了就算算完就寫寫完后端到端延遲通??刂圃诿爰?。關(guān)于架構(gòu)理念現(xiàn)階段我做項目基本直接采用Kappa架構(gòu)思路不再搭建Lambda架構(gòu)。Lambda那套實時鏈路離線鏈路雙跑、最終結(jié)果合并的方案維護成本太高兩套代碼邏輯要一致本身就是災(zāi)難?,F(xiàn)在Flink的流批一體能力已經(jīng)相當(dāng)成熟一套代碼可以同時跑實時和離線Kappa架構(gòu)足夠覆蓋絕大多數(shù)場景。1.3 為什么選Flink而不是Spark Streaming每次做技術(shù)選型都要面對這個問題。我的答案很直接如果你的場景需要事件時間處理、精確一次語義、豐富的狀態(tài)管理Flink是當(dāng)前最優(yōu)解。事件時間處理數(shù)據(jù)在網(wǎng)絡(luò)上傳輸會有延遲和亂序Flink的Watermark機制可以基于事件真正發(fā)生的時間進行計算而不是基于數(shù)據(jù)到達時間。這在處理日志類數(shù)據(jù)時尤其重要——用戶點擊發(fā)生在10:00:00但因為網(wǎng)絡(luò)抖動這條日志10:00:10才到如果你用處理時間計算就把這10秒的誤差算進指標(biāo)里了。精確一次語義Exactly-OnceFlink通過Checkpoint 兩階段提交保證即使任務(wù)崩潰恢復(fù)數(shù)據(jù)也不會重復(fù)或丟失。做交易類指標(biāo)時這是剛需。狀態(tài)管理Flink可以把中間結(jié)果存在內(nèi)存或RocksDB中實現(xiàn)跨事件的聚合計算比如統(tǒng)計每個用戶的累計訪問次數(shù)這是純SQL流處理引擎很難做好的。當(dāng)然Spark Streaming在吞吐量上和微批處理也有自己的優(yōu)勢但說實話真心追求實時性的場景Flink的靈活性和生態(tài)完整度更適合。更何況現(xiàn)在Flink CDC已經(jīng)是數(shù)據(jù)庫實時采集的事實標(biāo)準(zhǔn)配合Java開發(fā)效率很高。2. 數(shù)據(jù)采集層的工程落地三種來源一套規(guī)范數(shù)據(jù)采集是整個實時鏈路的起點也是臟活累活最多的地方。很多同學(xué)把精力都花在Flink計算邏輯上結(jié)果數(shù)據(jù)源沒管好后面計算、展示全是垃圾進垃圾出。這里我按來源類型分開講。2.1 日志類采集Filebeat Kafka是黃金組合服務(wù)端日志是最常見的實時數(shù)據(jù)來源。我通常用Filebeat做日志采集器它比Flume輕量太多部署就是解壓一個二進制文件配置也簡單filebeat.inputs: - type: filestream enabled: true paths: - /data/logs/*.log fields: app_name: order-service log_type: business output.kafka: hosts: [kafka1:9092, kafka2:9092, kafka3:9092] topic: app-order-log partition.round_robin: reachable_only: true這個配置看起來簡單但有幾個細(xì)節(jié)務(wù)必注意不要用filestream直接用Kafka producer consumer方式Filebeat自帶背壓機制Kafka不可用時會暫停讀取本地文件不會丟數(shù)據(jù)。這是它作為采集端的核心理由。fields里打上應(yīng)用名和日志類型標(biāo)簽后面Flink消費時可以根據(jù)這些字段路由到不同處理邏輯。每個應(yīng)用單獨一個topic或者至少按業(yè)務(wù)線分topic。我曾經(jīng)見過所有應(yīng)用混在一個topic里的架構(gòu)Flink消費端要做大量過濾還會互相影響消費速度非常痛苦。2.2 數(shù)據(jù)庫變更采集Flink CDC到底怎么部署熱搜詞里flink cdc pipeline部署和flink cdc安裝部署出現(xiàn)頻率很高說明這個方向已經(jīng)成了實時數(shù)據(jù)平臺的主流需求。Flink CDC基于數(shù)據(jù)庫日志Binlog/Redo Log捕獲變更不打業(yè)務(wù)表對業(yè)務(wù)系統(tǒng)零侵入。部署上有兩種形態(tài)形態(tài)一Flink CDC作為Source接入Flink作業(yè)DataStreamSourceString stream env .addSource( MySqlSource.Stringbuilder() .hostname(localhost) .port(3306) .databaseList(shop) .tableList(shop.t_order) .username(cdc_user) .password(cdc_pwd) .deserializer(new JsonDebeziumDeserializationSchema()) .build() ) .setParallelism(1);這種形態(tài)適合在Flink作業(yè)里實時消費數(shù)據(jù)庫變更。注意setParallelism(1)很關(guān)鍵因為單個MySQL實例的Binlog讀取是單線程的并行度設(shè)置高了反而會出問題。形態(tài)二Flink CDC Pipeline獨立部署如果你的目標(biāo)是數(shù)據(jù)庫實時同步到另一個存儲可以用Flink CDC Pipeline也就是之前的CDAS它基于Yaml配置就能完成整庫同步不需要寫一行Java代碼source: type: mysql hostname: localhost port: 3306 username: cdc_user password: cdc_pwd tables: shop\.* sink: type: doris fenodes: doris:8030 username: admin password: admin123Pipeline形態(tài)適合快速落地但是如果你想在同步過程中做數(shù)據(jù)加工比如字段映射、類型轉(zhuǎn)換、過濾還是寫Java代碼更靈活。我的建議是同步裸數(shù)據(jù)用Pipeline需要加工用源碼。關(guān)于Flink CDC最大的坑是存量數(shù)據(jù)與增量數(shù)據(jù)的一致性問題。Flink CDC默認(rèn)會先做一次全量快照再切換到Binlog增量這個過程對數(shù)據(jù)庫有一定壓力。建議在業(yè)務(wù)低峰期做首次同步并且監(jiān)控好源庫的IOPS和連接數(shù)。2.3 業(yè)務(wù)主動上報HTTP SDK Kafka注意采樣與限流有些數(shù)據(jù)源既不是日志也不是數(shù)據(jù)庫而是客戶端行為埋點前端點擊、APP啟動等。這時候通常是業(yè)務(wù)方直接調(diào)用HTTP接口上報你在接口里把數(shù)據(jù)寫入Kafka。這個環(huán)節(jié)最常見的坑是突發(fā)流量打垮寫入服務(wù)。我在某個項目中遇到過前端埋點日志突然暴增導(dǎo)致上報接口被瞬間打滿Kafka客戶端批量發(fā)送超時丟了一批數(shù)據(jù)。后來做了三層保護SDK端批量發(fā)送不要一條一條發(fā)HTTP請求在SDK內(nèi)攢批比如攢夠100條或500ms顯著降低請求頻率服務(wù)端限流單機QPS上限設(shè)置好超出部分直接丟棄并記錄日志注意埋點數(shù)據(jù)丟幾條通常不影響大屏指標(biāo)趨勢但要保證不拖垮服務(wù)Kafka端分區(qū)數(shù)規(guī)劃根據(jù)峰值吞吐預(yù)估分區(qū)數(shù)分區(qū)數(shù) 目標(biāo)吞吐量 / 單分區(qū)吞吐量。例如目標(biāo)10萬條/秒單分區(qū)吞吐約2萬條/秒分區(qū)數(shù)至少5個數(shù)據(jù)采集層的通用規(guī)范也很重要。所有上報數(shù)據(jù)統(tǒng)一JSON格式包含event_id全局唯一、event_time事件發(fā)生時間、source數(shù)據(jù)來源、biz_body業(yè)務(wù)字段。有了這個規(guī)范后續(xù)Flink側(cè)做解析、去重、Watermark定義都有據(jù)可依。3. Flink實時計算核心狀態(tài)、時間語義與Sink的坑到了計算層就是Flink的主戰(zhàn)場。這里我把最高頻的三個技術(shù)點拆開講這三個點也是面試和實戰(zhàn)中最容易翻車的狀態(tài)管理、時間語義、自定義Sink。3.1 狀態(tài)與Checkpoint為什么你的作業(yè)重啟丟數(shù)據(jù)Flink的狀態(tài)State是它區(qū)別于普通流處理引擎的核心能力。簡單理解狀態(tài)就是算到一半的中間結(jié)果。比如你要統(tǒng)計每分鐘每個商品的累計銷售額這個累計值就需要保存下來這就是State。我見過很多使用者在應(yīng)用里定義了一個MapState來保存用戶維度的累計數(shù)據(jù)然后把Checkpoint間隔設(shè)置成5分鐘。結(jié)果某個凌晨Flink作業(yè)因為OOM掛掉了恢復(fù)后發(fā)現(xiàn)損失了將近10分鐘的統(tǒng)計結(jié)果。復(fù)盤時發(fā)現(xiàn)Checkpoint間隔太大狀態(tài)恢復(fù)點太靠前中間的數(shù)據(jù)全丟了。這里必須記住一個基本參數(shù)組合state.backend: rocksdb state.checkpoints.dir: hdfs:///flink/checkpoints execution.checkpointing.interval: 60s execution.checkpointing.mode: EXACTLY_ONCE execution.checkpointing.timeout: 5min我的經(jīng)驗是線上作業(yè)至少每分鐘做一次Checkpoint太頻繁會影響性能但5分鐘就太長了。另外一定要用RocksDB作為狀態(tài)后端——數(shù)據(jù)量一大純內(nèi)存Heap狀態(tài)分分鐘把JVM堆撐爆。RocksDB是把狀態(tài)寫到本地磁盤內(nèi)存只是緩存可靠性和容量都更好。3.2 事件時間與Watermark亂序數(shù)據(jù)怎么算Flink的窗口計算有個經(jīng)典三選一ProcessingTime、EventTime、IngestionTime。做實時大屏我強烈建議用EventTime也就是按業(yè)務(wù)事件發(fā)生的時間來劃分窗口。但EventTime帶來的問題是數(shù)據(jù)可能亂序到達。用戶點擊發(fā)生在10:00:00的日志可能到10:00:30才到Flink。如果你正好在做每分鐘點擊量的滾動窗口這條數(shù)據(jù)就會被算到10:01的窗口里指標(biāo)就錯了。解決方案是Watermark水位線它表示事件時間小于等于這個值的數(shù)據(jù)都已經(jīng)到達了。DataStreamOrderEvent withWatermark orders .assignTimestampsAndWatermarks( WatermarkStrategy.OrderEventforBoundedOutOfOrderness( Duration.ofSeconds(30) ) .withTimestampAssigner((event, timestamp) - event.getEventTime()) );forBoundedOutOfOrderness(Duration.ofSeconds(30))的意思是容忍最多30秒的亂序。代價是窗口結(jié)果會延遲30秒才輸出。這里就是業(yè)務(wù)延遲和數(shù)據(jù)準(zhǔn)確率的權(quán)衡。如果大屏指標(biāo)允許延遲30秒這個配置就合理如果要求秒級延遲那就要接受部分亂序數(shù)據(jù)會算錯窗口。窗口計算上我做實時指標(biāo)統(tǒng)計會用TumblingEventTimeWindows滾動窗口AllowedLateness的組合stream.keyBy(OrderEvent::getProductId) .window(TumblingEventTimeWindows.of(Time.minutes(1))) .allowedLateness(Time.seconds(30)) .aggregate(new CountAggregate()) .process(new WindowResultFunction());allowedLateness的意思是窗口正常計算后還會等30秒的遲到數(shù)據(jù)遲到數(shù)據(jù)到達時單獨觸發(fā)一次計算輸出更新。這樣既保證了主鏈路結(jié)果快速產(chǎn)出又能修正部分亂序數(shù)據(jù)帶來的誤差。3.3 自定義DataSource與DataSink從入門到放棄再入門熱搜詞里flink 自定義 data source和flink 自定義 data sink出現(xiàn)頻率極高我猜是因為官方文檔的示例太簡單一上生產(chǎn)就漏出各種問題。這里我把兩個痛點講透。自定義DataSource通常是為了從非標(biāo)準(zhǔn)源讀數(shù)據(jù)。核心是繼承RichSourceFunction或?qū)崿F(xiàn)SourceFunctionpublic class MetricSource extends RichSourceFunctionMetricEvent { private volatile boolean running true; private transient KafkaProducer producer; Override public void open(Configuration parameters) { producer new KafkaProducer(...); } Override public void run(SourceContextMetricEvent ctx) throws Exception { while (running) { // 模擬讀取外部數(shù)據(jù)源 MetricEvent event readFromExternalSystem(); synchronized (ctx.getCheckpointLock()) { ctx.collect(event); } } } Override public void cancel() { running false; } }注意兩點一是collect操作必須在ctx.getCheckpointLock()鎖內(nèi)執(zhí)行否則Checkpoint時的狀態(tài)一致性會出問題數(shù)據(jù)可能重復(fù)或丟失。二是cancel()方法里要釋放外部連接資源否則作業(yè)取消時連接泄漏時間長了會把源系統(tǒng)連接池打滿。自定義DataSink的坑就更多了。我之前寫過自定義Sink寫入某個內(nèi)部監(jiān)控平臺代碼如下public class MonitorSink extends RichSinkFunctionMetricEvent { private MonitorClient client; Override public void open(Configuration parameters) { client MonitorClient.connect(monitor-server:8080); } Override public void invoke(MetricEvent value, Context context) throws Exception { boolean success client.send(value); if (!success) { throw new RuntimeException(send metric failed: value); } } Override public void close() { client.close(); } }這段代碼看起來沒問題生產(chǎn)上卻出過事故監(jiān)控平臺的單機處理能力有限Flink端并發(fā)寫入量一大client.send就頻繁超時我讓invoke直接拋異常結(jié)果Flink作業(yè)一直在重啟上游Kafka消費被阻滯整個實時鏈路癱瘓。3.4 從事故學(xué)到的Sink設(shè)計原則那次事故之后我給自己定了幾條Sink設(shè)計的鐵律也分享給你寫外部系統(tǒng)必須做重試和熔斷不能一失敗就拋異常重啟作業(yè)。應(yīng)該捕獲異常做有限次數(shù)重試重試仍失敗就寫本地容災(zāi)文件或者發(fā)告警跳過保證主鏈路不中斷區(qū)分業(yè)務(wù)錯誤和系統(tǒng)錯誤數(shù)據(jù)格式錯誤比如字段缺失屬于業(yè)務(wù)錯誤直接throw沒問題因為重試一萬次也還是會失敗外部系統(tǒng)不可用屬于系統(tǒng)錯誤應(yīng)該讓作業(yè)保留現(xiàn)場繼續(xù)運行等待外部系統(tǒng)恢復(fù)批量寫入優(yōu)先于逐條寫入能批量就別單條單條寫的性能開銷太大了。Flink提供了JdbcBatchingOutputFormat支持?jǐn)€批提交但要注意攢批參數(shù)batchSize和batchInterval要配合好另外熱搜詞里flink的jdbc連接器異常是個高頻問題。我遇到過的大部分情況是連接池耗盡和連接空閑超時。Flink JDBC Sink的每個并發(fā)Task都會建自己的連接你在連接池里配置了最大連接數(shù)10結(jié)果Flink作業(yè)并行度是20直接就有10個Task拿不到連接報錯。解決辦法很簡單要么把連接池最大連接數(shù)設(shè)成大于等于Flink并行度要么給連接設(shè)置合理的maxRetryTimes和connectionTimeout。4. 高頻事故復(fù)盤Flink Sink到Hive表數(shù)據(jù)不落盤的根因這一節(jié)我要重點復(fù)盤一個幾乎每個做Flink接數(shù)倉的人都會踩的坑——Flink sink Hive表數(shù)據(jù)不入表。這個熱搜詞出現(xiàn)得如此頻繁說明大家都在這上面栽過跟頭。我把排查鏈路完整還原出來你以后遇到可以直接照著查。4.1 現(xiàn)象與第一反應(yīng)當(dāng)時的情況是Flink作業(yè)運行狀態(tài)正常沒有報錯但查詢Hive表時發(fā)現(xiàn)數(shù)據(jù)一直是空的或者只有很久以前的一部分?jǐn)?shù)據(jù)。我第一反應(yīng)是是不是SQL寫錯了結(jié)果檢查Flink SQL和Table Schema都對得上Kafka source也在正常消費。于是開始逐步排查。4.2 排查鏈路四個層面逐個擊破第一層看Flink作業(yè)日志別被正常騙了打開TaskManager日志結(jié)果發(fā)現(xiàn)了端倪日志里出現(xiàn)了大量Need to partition the files into Hives format和Abortable相關(guān)的詞。這個信息很關(guān)鍵——Flink寫Hive是按照分區(qū)來管理的如果你沒有開啟自動提交分區(qū)數(shù)據(jù)寫入的是臨時目錄永遠(yuǎn)不會變成Hive的正式分區(qū)。第二層確認(rèn)Hive表的分區(qū)提交機制Flink寫Hive表默認(rèn)配置涉及兩個核心參數(shù)。如果你的Hive表是分區(qū)表必須顯式開啟分區(qū)提交并且設(shè)置正確的提交觸發(fā)策略CREATE TABLE hive_orders ( order_id BIGINT, product_id BIGINT, amount DOUBLE ) PARTITIONED BY (dt STRING, hour STRING) WITH ( connector hive, sink.partition-commit.trigger partition-time, sink.partition-commit.delay 0s, sink.partition-commit.policy.kind metastore,success-file );sink.partition-commit.trigger如果沒配或者配成process-time意味著Flink按數(shù)據(jù)到達時間來決定提交分區(qū)不是按數(shù)據(jù)的事件時間。我當(dāng)時就是用了process-time結(jié)果業(yè)務(wù)上凌晨的數(shù)據(jù)被算到了早上的分區(qū)等了一早上沒看到該有的數(shù)據(jù)。第三層檢查寫入文件格式與可見性很多剛用Flink寫Hive的同學(xué)不知道Flink寫Hive默認(rèn)是寫ORC或Parquet格式文件到分區(qū)的臨時目錄然后通過Table Metastore注冊分區(qū)。但文件從寫入中到可見之間有一個提交環(huán)節(jié)。如果你看到HDFS上分區(qū)目錄下已經(jīng)有Parquet文件但查詢不到數(shù)據(jù)大概率就是分區(qū)提交沒有正確執(zhí)行。還有一種可能是你寫的是非分區(qū)表Flink寫非分區(qū)表會把數(shù)據(jù)直接寫到表的目錄下。但我見過一個案例表本身是分區(qū)表Flink SQL里卻只指定了分區(qū)字段的部分值導(dǎo)致Sink端認(rèn)為這是一個不可寫分區(qū)就一直默默丟數(shù)據(jù)。排查方法是用SHOW PARTITIONS hive_orders看分區(qū)元數(shù)據(jù)是否存在。第四層Hive Streaming協(xié)議與Metastore對接Flink寫Hive底層有兩種協(xié)議一種是通用的Hive Streaming API通過HiveTableSink另一種是直接寫文件然后調(diào)用Metastore注冊分區(qū)。前者需要開啟hive.streaming.enabled老版本。如果你用的是較老版本的Flink和Hive建議用hive-streaming-client包并顯式開啟dependency groupIdorg.apache.flink/groupId artifactIdflink-connector-hive_2.12/artifactId version你的版本/version /dependency注意Flink和Hive的版本兼容矩陣很挑剔Flink 1.14之前和Hive 3.1.0有兼容問題Hive Streaming API在部分版本上是broken的。最穩(wěn)妥的做法是Flink 1.15配Hive 3.1.2同時把Metastore從嵌入式切換為獨立部署避免并發(fā)寫入時Metastore鎖沖突。4.3 問題根因與修復(fù)最終我們定位到了根因Flink作業(yè)里寫Hive表的并行度設(shè)置過高默認(rèn)等于Kafka分區(qū)數(shù)每個并發(fā)Task都在嘗試寫同一個分區(qū)的臨時文件而且Flink內(nèi)部會出現(xiàn)文件內(nèi)容不完整的競態(tài)。配合開啟分區(qū)提交后問題消失。修復(fù)后的經(jīng)驗總結(jié)成一條Flink寫Hive表并行度不建議大于1。因為Hive表Sink的文件寫入不是天然按key分區(qū)的多個并行度同時寫一個分區(qū)文件合并和提交的復(fù)雜度會指數(shù)上升。要么做rebalance并設(shè)置并行度1要么就用bucket功能把數(shù)據(jù)按字段散列到多個文件讓Flink自己去整理。還有一個很小的點容易被忽略檢查你的作業(yè)是在本地IDEA跑還是集群跑。本地跑Flink時HDFS路徑如果寫的是hdfs://...會直接連不上集群如果寫的是本地路徑file://...那數(shù)據(jù)其實是寫到你個人電腦磁盤上Hive當(dāng)然查不到。這種環(huán)境不一致問題我遇到過不止一次。5. 可視化大屏的實時感數(shù)據(jù)刷新頻率、聚合策略與接口設(shè)計實時計算做完數(shù)據(jù)源源不斷寫入結(jié)果表了最后一步是可視化大屏。很多團隊在這里其實沒有技術(shù)問題但做出來的大屏看起來不實時——有實時數(shù)據(jù)卻沒有實時感。這節(jié)講講大屏之后端數(shù)據(jù)接口設(shè)計。5.1 大屏的數(shù)據(jù)不要直連數(shù)據(jù)庫查詢我剛做第一個實時大屏項目的時候犯過低級錯誤大屏前端每5秒輪詢一次數(shù)據(jù)庫原始明細(xì)表SQL里現(xiàn)場做SUM和GROUP BY。這種做法的結(jié)果是數(shù)據(jù)庫CPU飆升、查詢越來越慢、大屏的實時變成了每10秒才刷新一次因為查詢耗時就占了5秒。正確的思路是打一層結(jié)果表。Flink實時計算出來的指標(biāo)本來就已經(jīng)按分鐘/小時粒度聚合好了直接寫入結(jié)果表比如dashboard_metrics大屏端每5秒查詢的就只有幾行聚合好的數(shù)據(jù)查詢耗時基本在毫秒級。這才是實時大屏該有的性能。5.2 大屏接口的三種刷新模式輪詢模式前端每N秒調(diào)一次后端接口適合指標(biāo)值更新不頻繁、需要簡單穩(wěn)定的場景。N一般設(shè)為5秒或10秒。WebSocket推送Flink側(cè)結(jié)果更新時后端主動向已連接的大屏客戶端推送數(shù)據(jù)適合大屏數(shù)量多、希望即時刷新、減少無效請求的場景。SSE流推送如果你只做單向數(shù)據(jù)推送SSE比WebSocket更簡單基于HTTP協(xié)議兼容性和調(diào)試成本都低很多。這三個模式可以混合使用關(guān)鍵指標(biāo)用WebSocket推送次要指標(biāo)用輪詢兜底。前端技術(shù)棧我用得比較多的是Vue ECharts大屏布局用Grid實現(xiàn)自適應(yīng)。如果你不想花太多時間調(diào)布局可以直接用現(xiàn)成的DataV或者大屏編輯器但要注意編輯器的數(shù)據(jù)接入?yún)f(xié)議是否支持實時推送。5.3 減少大屏刷新壓力聚合結(jié)果表 緩存策略大屏本身有幾十個圖表如果每個圖表都單獨去查一次結(jié)果表也是壓力。我的做法是按業(yè)務(wù)場景把大屏所需的指標(biāo)打包成一個JSON大接口一次查詢返回所有圖表的數(shù)據(jù)。比如實時成交大屏這個場景接口返回的數(shù)據(jù)結(jié)構(gòu)大致是{ timestamp: 1715673600000, gmv: 102400.5, orderCount: 1287, userCount: 846, trend: [...], rankList: [...], geoDistribution: [...] }大屏端拿到這個JSON各自渲染對應(yīng)的圖表組件。這樣一個接口的查詢時間通常能控制在50ms以內(nèi)刷新頻率甚至可以提到1秒。還有一點給結(jié)果數(shù)據(jù)加Redis緩存。Flink寫入結(jié)果表的同時把熱數(shù)據(jù)同步一份到Redis大屏接口優(yōu)先讀Redis而不是查Doris或ClickHouse。Redis查詢是純內(nèi)存操作性能遠(yuǎn)高于OLAP數(shù)據(jù)庫。但要注意最終一致性——如果Flink寫入結(jié)果表成功但寫Redis失敗緩存里就是舊數(shù)據(jù)。我的解決方式是結(jié)果表帶一個update_time大屏接口拿數(shù)據(jù)時會比對Redis緩存時間和本地時間超過5秒則強制回源查結(jié)果表。5.4 大屏可視化的實時感還有視覺層面說實話大屏的實時感一半靠數(shù)據(jù)一半靠視覺設(shè)計。有幾位項目里的前端同學(xué)總結(jié)過一些經(jīng)驗非常有效數(shù)字跳動效果關(guān)鍵指標(biāo)成交額、訂單數(shù)用滾動數(shù)字代替靜態(tài)數(shù)字視覺上強化正在變化的感受刷新閃光提示每次刷新成功后給指標(biāo)卡片加一個淡入的閃爍效果說明我更新了時序圖的時間軸ECharts的時間軸坐標(biāo)保持固定寬度數(shù)據(jù)向右側(cè)推進給人一種趨勢正在流動的感覺最后更新時間顯示大屏角落永遠(yuǎn)顯示數(shù)據(jù)截至 HH:mm:ss讓使用者知道數(shù)據(jù)有多新這些都是細(xì)節(jié)但對于不懂技術(shù)的領(lǐng)導(dǎo)來說看起來實時和數(shù)據(jù)實時同等重要。6. 全鏈路延遲測量與容災(zāi)沒有指標(biāo)就沒有發(fā)言權(quán)實時平臺上線只是開始真正難的是讓它穩(wěn)定運行、出了問題能快速定位。這一節(jié)講講我怎么給實時鏈路做體檢和急救。6.1 延遲指標(biāo)每個環(huán)節(jié)都要有鐘表我構(gòu)建的任何實時平臺都會在數(shù)據(jù)流里埋一個端到端延遲衡量機制。思路很簡單在數(shù)據(jù)入口打上時間戳在每個關(guān)鍵節(jié)點記錄觀察時間。我在采集端會在每個事件的頭部塞一個ingest_time然后Flink計算層、存儲層、接口層分別在日志里記下當(dāng)前時間。通過一條測試數(shù)據(jù)就能算出延遲環(huán)節(jié)計算方式常見瓶頸采集延遲Kafka收到時間 - 事件發(fā)生時間日志攢批時間過長、Filebeat端阻塞傳輸延遲Flink收到時間 - Kafka收到時間Kafka broker配置、網(wǎng)絡(luò)帶寬計算延遲Flink輸出時間 - Flink收到時間窗口尺寸、狀態(tài)大小、反壓存儲延遲數(shù)據(jù)庫落庫時間 - Flink輸出時間Sink并行度、批量提交間隔展示延遲大屏收到時間 - 數(shù)據(jù)庫返回時間前端輪詢周期、接口查詢耗時實操里我會寫一個LatencyMonitor的Flink作業(yè)專門消費Kafka的監(jiān)控topic解析每個事件的ingest_time并計算延遲分布P50/P95/P99再寫入監(jiān)控面板。延遲一旦超過閾值就觸發(fā)告警。6.2 每個環(huán)節(jié)的容災(zāi)機制實時鏈路比離線鏈路脆弱得多任何一個環(huán)節(jié)抖動都會波及到后面。我的容災(zāi)設(shè)計分三層數(shù)據(jù)源頭采集端必須保證數(shù)據(jù)不丟。Filebeat有本地backlog機制Flink CDC有Binlog位點記錄Kafka有多副本。這三層可以保證即使整個實時平臺崩潰數(shù)據(jù)還在源端或Kafka里躺著。Flink作業(yè)打開Checkpoint配合RestartStrategy自動恢復(fù)。我常用的策略是fixed-delay3次重試間隔10秒。如果3次都失敗就不盲目重啟了發(fā)告警讓人工介入避免無限重啟導(dǎo)致狀態(tài)反復(fù)加載、Kafka消費位點反復(fù)跳躍的惡性循環(huán)。存儲與展示結(jié)果表要設(shè)計冪等寫入Flink重啟后重放數(shù)據(jù)不會產(chǎn)生重復(fù)數(shù)據(jù)。大屏端接口要做降級——如果結(jié)果表查詢失敗至少返回緩存數(shù)據(jù)或者數(shù)據(jù)暫不可用的明確提示而不是白屏。6.3 數(shù)據(jù)積壓是最大的坑三招止損實時鏈路最怕的故障就是數(shù)據(jù)積壓——Kafka里堆積了大量未消費的數(shù)據(jù)Flink作業(yè)無論如何都追不上這時你看到的大屏是越來越舊的數(shù)據(jù)實時性徹底丟失。數(shù)據(jù)積壓的典型原因和處理方式Flink作業(yè)遇到瓶頸看Flink UI的Backpressure指標(biāo)如果Source端顯示High/Medium說明是下游處理不過來需要增加并行度或優(yōu)化算子邏輯如果Sink端顯示High說明寫外部系統(tǒng)慢了需要檢查外部系統(tǒng)的連接池、批量參數(shù)。上游突然峰值流量比如大促秒殺采集量瞬間漲10倍。這時候Flink集群如果沒有彈性擴縮容只能硬扛。我的建議是Kafka的topic保留時間設(shè)長一點7天等峰值過去后Flink作業(yè)自動追趕消費。Sink端故障比如ClickHouse或Doris暫時不可用Flink的Sink會積壓數(shù)據(jù)在算子內(nèi)部。如果積壓太嚴(yán)重我在Doris不可用期間會臨時把結(jié)果寫到Kafka的另一個備份topic等Doris恢復(fù)后重放。數(shù)據(jù)積壓其實是實時平臺的急性病處理原則是先止損、后排查——先通過擴容或調(diào)整并行度把消費速度提上來再來分析瓶頸根因。反之如果先停下來查根因積壓只會越來越多雪上加霜。6.4 關(guān)于實時平臺到底需要多實時的一些個人體會做完整條鏈路我的體會是實時平臺的技術(shù)難點從來不是某個單一組件而是整個鏈路的平衡工程。很多時候你不需要追求極致的秒級延遲只要端到端控制在10秒內(nèi)大屏的體驗已經(jīng)相當(dāng)好了。為了那個極致實時你付出的代價可能是系統(tǒng)復(fù)雜度翻倍、穩(wěn)定性踩坑無數(shù)。給新手的最實際建議是先用最簡單的方案跑通全鏈路——Kafka Flink 結(jié)果表 大屏接口把延遲指標(biāo)測出來再針對瓶頸做優(yōu)化。不要一上來就上CDC、上高級狀態(tài)、上復(fù)雜窗口先把骨架立起來。數(shù)據(jù)和可視化這條路上跑通的那一刻獲得的成就感比任何理論推演都來得實在。希望這篇實戰(zhàn)經(jīng)驗貼能幫你少走幾步彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 午夜啊啊啊| 国产精品日本无码A片| 天天摸夜夜摸| www.成人无码| 日韩精品人妻中文字幕有码午| 国产熟女完整版中字| 久草这里只有精品 | 久热99999| 五月婷婷色色| 美女一区二区国产精品| 天天日天天操天天射河南省| 色哟哟 日韩精品| 自拍啪啪视频| 老熟妇一区二区三区| 91美女视屏| 久久性爱免费送| 亚洲在线| 在线不欧美| 偷拍亚洲情色| 伊人嫩草| 久9久9久9久9久9久9| 欧美色图私拍91| 一区二区三区精品黑丝白丝酒店对鸡| 乱伦一二三区| 91视频观看网站| 日韩免费簧片| 人妻五十路在线| 国产少妇与亚洲av| 亚洲欧洲小说图片视频| 久操大香蕉| 日本www操操操| 国产日韩区| 中国人高清www色视频免费| 欧美淫乱视频| 熟女人妇一区二区三区| 国产在线视视频有精品| 黄片无码在线制服| 欧美亚洲另类在线蜜桃| 六月丁丁香| 99re9在线| 精品区9| 色官网在线| 插日本熟女视频| 91人妻做a观看视频| 欧美一级美片在线观看免费| 岛国免费视频在线| 日本护士高潮| 天天日天天爽| 欧美日韩情色一区二区| 操人妻丝袜高跟| 97色欧州| 亚州熟妇精品| 欧美色干| 亚洲性爱成人| 色综合色综合网| 婷婷五月天综合网| 97一本大道亚洲一区| 黄色不卡视频| 四虎影视精品| 日韩精品99久久久久久中文字幕 | 色男人色天堂东京热| 粉嫩小泬久久久一区二区| 夜夜爽爽夜夜精品视频| 久久老熟女| 99999re| 伊人网免费视频| av无码精品久久久久| 性爱乱伦一区| 亚洲人在线成线成人| 人妻熟妇久草在线| 国产一级高清免费观看| 激情小说成人日本无码一| 99ri精品| 91久久久老司机| 久久9精品网站| 亚洲色欧美| 成人无码电影在线观看网| 日韩在线观看字幕精品| 日韩二级| av橘色网站| 中文字幕在线免费观看2| AA特级绝黄| 人人妻人人操人人乐| 啊啊啊好舒服视频在线观看| 屁股久久久久久| 日韩免费大片一级播放| 呦呦一区| 日韩丝袜二区| 国产十八禁视频| 天堂亚洲精品| 色综合av男人天堂| 国产熟女二区| 中日韩免费看男女操逼大全| 秋霞视频一区二区| 亚洲欧美一区二区不卡视频播放| 久久区| 欧美少妇性爱网站| 麻豆AV短剧| 久久久久亚洲| 亚洲综合小说另类图欧美视频激情小说色五月天 | 亚州欧美在线| 欧美麻豆成人同性GⅤ在线| 日产国产精品中文久久婷婷| 九九热三级片| 亚洲一区二区三区欧美日韩| 东北操逼| 国产成人网| 日韩美女高潮喷水视频| 久热大香蕉| 久久大线蕉一区| 色爱天堂| 亚洲熟妇图片| 欧美激情久操网| 九九久久精品| 97ai亚洲| 免费观看欧美日韩操逼视频| 天堂性色| 九一综合精品视品av| 丰满人妻-区二区三区| 丁香六月东京热| 亚洲成人精品久久久| 亚洲欧美高清无码| 性性欧美| 亚洲一本色道中文无码aV天美| 99热精品国产| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 国产亲戚伦亲在线| 神马九九九| 日韩不卡毛片Av免费高清| 久久超碰免费的| 国产精品不卡高清在线观看| 九九九九88| 人人操人人色网| 九九久久首页| 狠狠操夜夜| 色偷偷人人玩人人舔人人操人人摸人人爽 | 日日操丁香五月天| KK色在线影院| 亚洲性爱高潮影院| 亚洲日本激情| 亚洲色图第四色| 激情久久久| 大香蕉视频啪啪啪啪| 91国产精品在线看| 欧美人人曰人人操人人射射| 久久久久久9999| 日韩中文字幕二区| 在线观看一级α片刺激高潮视频| 蜜臀无码一区二区| 中文字幕在线播放2中文字幕在线观看2| 亚洲清纯综合| 大香蕉伊人一区在线观看| 亚洲av国产av综合av卡| 懂色av中文字幕| 涩五月婷婷| 超清中文乱码字幕| 97天天在线| 色老汉玖玖爱| 99久久婷婷国产综合精品草原| 久久久久久久91| 蜜臀精品1区2区| 操逼视频亚洲| 思思视频免费看网站| 蜜臀在线网站| 久久m| 久久啊哟| 欧美激情综合色综合啪啪五月| 男女无套 免费网站| 日本好吊色视频| 东京热免费视频| 一二三四视频中文字幕在线看| 亚洲精品国产熟女久久久| 综合色色婷婷| 欧美劲爆视频一区二区| 成人av在线播放| 九九人妻| 国产精品乱码久久久久久| 日本熟妇一区二区三区| 超碰成人免费| 九九探花视频在线观看| 色色网91| 水多多映视AV| 边做饭边操逼逼| 97资源站国产精品| 99蜜桃臀久久久欧美精品网站| 亚洲天堂中文字幕无码男同| 97人人干| 丰满人妻一区二区三区在线| 9999免费精彩视频| 国产高清26uuu| 国产精品久久久久久亚洲色欲| 亚洲综合色图欧美| 久欲AV| 亚洲在高跟鞋自慰久久在色线| 91热爆在线| av网页一区二区三区| av网站在线看| 亚洲av噜噜噜噜噜噜| 91色亚洲| 这里都是精品| 熟妇人妻精品一区二区| 欧美一级二级三级| 国产馆| 蜜桃网熟妇| 中文字幕乱偷人妻久久艾草网| 成人无码专区精品视频| 久久久久久久久久久久久久久性生活视频 | 人妻熟女一区二区在线视频| 91情色在线| 欧美色另类| 中韩中文字幕在线观看| 99少妇| 日本布卡一区二三区| 久久中文字幕女同性恋一区| 精品久9| 精品视频久久| 五十路熟女人妻一区二区在线观看| 91美女视频电影| 久久偷偷色综合蜜桃| 毛片麻豆91糖心精品毛情片| 99re在线视频国产| 全国男人天堂网| 亚洲女优有码无码高清| 岛国A V在线免费看| a片自拍直播视频| 青娱乐淫乱1314| 搡老熟女免费视频| 啪啪视频亚洲第一| 日韩AV一区二区三区四四| 五月综合激情网| 天天操狠狠日夜夜干超碰撸com视频在线观看| 五月婷婷色色| 精品亚洲俞拍视频一区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产成人91一区二区三区| 91国产操逼视频| 隔壁邻居波多野结衣中文字幕 | 精品国产乱码久久久久久久久1| 台湾佬激情综合| 中文字幕视频2区| 欧美色图成人网一区二区| 天天操天天日天天干| 麻豆熟妇乱妇熟色A片在线看| 亚洲天堂另类| 粉嫩av久久一区二区三区| 五月天婷精品激情| 插老姨肥穴| 综合天天。| 亚洲美女av无码| 精品v日韩欧美国产| 成人av免费观看| 亚洲天堂另类美腿| 亚欧美综合| 久久的免费性爱视频| 一区二区三区探花在线观看| 天天插天天干| 久久久久密臀一区二区| 777超碰| 国产一进一出视频网站| 97爱免费插| 亚洲综合贴图91| 人人妻人人爱人人玩| 干干干天天| 97超碰jingpin| 俺也射| 中文字幕美女91| 婷婷久草| 久久人人爽av亚洲精品天堂桃色| 久久久久久电影| 嗯嗯嗯好爽| 91少妇通奸网站| 亚洲另类欧美精品| 麻豆国产原创AV色哟哟| 五十路三区在线| 午夜久久无码1000合集| 久久男人网| 91第一页| 红杏大香蕉| 另类图片五月天| 国产最新小视频在线播放下载| 综合网欧美在线| 黑丝制服中文字幕| 水野优香在线观看| 97超碰精品图片| h无码动漫在线观看| 精品97精品97| 青娱乐二区免费| 夜夜操2028| 日逼97| 99久热| 97操B| 欧美人妻一区| 中文精品少妇天堂| www久久99| 婷婷丁香人妻 | 白丝被操91| 亚洲美乱| 熟女探花啪啪| 熟妇亚洲一区二区三区| 91人妻人人澡人人爽人人精品| 国产精品天美传媒| 亚洲av成人精品一区| 欧美日韩99精品麻豆传媒| 蜜桃狠狠色伊人亚洲综合网站| 亚洲色图大香| 久久精品人人做人人看| 欧美日韩亚洲五月天婷婷| 日韩在线一区高清在线| 内射中国少妇高清视频免费视频 | 五月丁香久久| 操一操摸一摸| 青青操视频在线| 亚洲欧美在线观看2021| 99少妇内射| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 深夜激情无码| 欧美翘臀视频网站一区二区三区| 伊人青青一区成人视频在线观看区| 欧美日韩97| 亚洲熟女乱色| 日韩欧美字幕亚洲一区二区| 男女国产精品| 97 九色| 91强热人妻| 亚洲激情深爱文学小说网站| 婷婷色一区| 内射夫妻三片| 成人青青草原伊人| 色哟哟-国产专区| 国产一区二区a毛片| 色九九综合AV| 2010男人的天堂| 精品毛片av一区二区| 99热国产| 熟妇人妻一区二区三在线| 操逼操逼逼操操逼91| 久久风骚城市| 极品粉嫩少妇视频| 91欧美| 大香蕉乱级| 超碰久草| 2019亚洲男人天堂| 精品无吗久久| 五月婷婷基地| 日韩色欲久久一二三四区| 国产精品农村妇女| av草草在线电影| 91 丝袜在线| 深爱五月婷婷| 日本色色色视频| 91天天综合网| 夜夜精品视频| 国产嫩草精品A88AV| 夜夜狠狠躁日日躁色视频| 九色婷婷| 国产精品成人福利在线| 尤物网站91| 蜜臀99久久精品久久久久久| 黄资源| 少妇蜜汁| 一二三区在线| www色婷婷| 在线国产福利网址导航| 性影在线视频| 国产精品 久久久精品一牛| 97碰久久| 97在线免费视频| 性欧美第一页| 噜噜噜噜天天狠狠| 大香交| 久久精品视频一区三区小泽玛利亚| 日韩女优中文字幕| 野狼激情网| 黄色av一区二区在线| 啪啪AV导航| 久久久久久亚洲Av无码| 91色人妻| 免费人成在线观看网站品爱网| 日韩一级欧美一级国产一级台湾 | 上海一级黄片| 性爱免费视频成人| 天天干天天日天天射黄色片| 国产精品无套内谢| 少妇人妻好深太紧了vr91| 欧美真人抽搐一进一出gif| 超碰97综合在线| www.人人摸在线视频| 懂色av中文字幕一区二区三区天美| 久久99999| 久久久久久久久久黄色网| 亚洲精品蜜桃久久久一区二区三区| 91蜜臀熟女| 99热超碰| 青青草视频久久久久| 日日干夜夜操视频h| 麻豆福利视频导航| 亚洲色丰满少妇高潮| 狠操91,com| 乱色老一区二区三区的观看方式| 综合少妇网| 欧美AB在线| 欧美乱伦专区| 亚洲国产精品9999在线观看| 丁香五月综合| 六月婷婷五月丁香| 91色黑人少妇| 精吧天堂| 精品久久久久久久| 2019精品国产无码成人| 殴美在线AⅤ| 久久久夜夜嗨免费视频| 黑操B| 欧美性战999| 亚洲色悠悠久久88| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 色区久久| 日本不卡二三区| 九热超碰| 在线日韩日本亚洲国产| 免费看A片毛毛片在线播| 污啪啪啪视频| 日韩美女,国产传媒,视频一区| WWW美腿丝袜香蕉中文| 91中出视频| 秋霞操逼片| 久久久97| 中文字幕久久精品一区| 蜜臀久久99精品久久久久久婷婷| 久久黄色视频一区二区三区| 狠狠干婷婷| 99蜜桃臀亚洲成人在线观看| 一起草视频在线| 飘花国产午夜精品不卡| 久久久爆乳翘臀一线天伦理视频| 超碰在线97国产| 另类小说欧美激情校园春色| 亚洲精品一二区| 中文字幕五区| 无码二级三级| 中国大陆国产高清AⅤ毛片| 日韩AV片| 一区二区三区麻豆| 日韩国产成人自拍视频| 啊啊啊好湿国产一二| 久久三区四区| 欧美黄色片AAAAA| 啊啊啊啊啊好大好舒服想要| 精品无码久久久久久久久果冻糖心| 色综合久久av| 日本啊啊啊啊啊视频| 亚洲熟女人妻中文字幕一区二区| 欧美日韩国产色图在线| 久久久久久久久久精| 国产精品久久久吖| 青青11操操操操操操操操| 亚洲第二页| 久久久国产亚洲精品系列| 大香蕉十区| 91亚洲高清| 91Chinese在线| 快播久久人人aV| 欧美少妇性爱网站| 91高潮喷水美女| 久久草草亚洲蜜桃臀| 中文啪啪视频| 日本人妻最新在线中| 中文字幕av色| 电家庭影院午夜69久久夜色精品国产69乱 | 丁香婷婷色五月| 国产三级中文字幕粉嫩| 偷窥自拍亚洲天堂网爆| 激情婷婷丁香网| 亚洲超碰AV| 啊啊啊男女| 激情丁香婷婷| 99热伊人| 久久久久久大| 国产精品蜜臀久久久久无码AV| 啪啪视频mP4| 国产毛片片精品天天看视频| 啊啊啊好湿久久| 先锋影音av先锋一区| 超碰99热中文字幕| 日韩 欧美 另类 人妻| 大香蕉色欲AV| 免费一级视频特黄色大片| 亚洲精品 欧美97色色| 色五月激情综合网| 欧州91高潮| 日本三级日本三级三级人妇四虎| 伊人五月天婷婷| 老女人老91妇女老热女| 精品国产精品一区二区| 亚洲欧洲自拍| 久色99999| 欧美色色色| 日本潮催一卡操| 久久九精品| 99热99色| 国产女同视频在线播放| 精品无人区麻豆乱码1区2区图片| 懂色综合久久久| 日韩免费高清大片在线| 亚洲AV色图一区| 日韩素人无码一区二区三区三州| 亚洲无码太久| 91丝袜人妻| 欧美日韩电影一区二区| 国产日比| 久久一区二区高清免费| 精品无码久久久久久久久果冻糖心| 麻豆性爱视频在线播放| 91狠狠综合久久| 狠狠色噜噜狠狠狠狠2018| 久久久久久久久9| 天天天乱色综合全| 日本有码影片下载 | 超碰欧美在线欧美| 91AV老熟女视频| 精品一区二区人妖| 欧美一区二区日韩三区| 少妇熟女一区二区三区| 日本黄页视频在线观看| 日欧美色| 99亚亚热| 久久久久久AV无码免费网站| 国产特级毛片AAAAAA高潮流水 | 一区二区三区四区色图| 日韩精品亚洲专区在线影视| 日韩激情毛片一级久久久| 久久97超碰| 熟女高潮精品一区二区| 欧美 亚洲 综合 制服 另类| 中文有码第五页| 99热这里| 91婷婷| 乱欲一区二区| 黄视频免费| 国产女人视频三四五区| 丰满人妻-区二区三区免费看| 国产和美国毛片| 成人热久久精品| 特级大荫道BBwBBwBBW| 狠狠操狠狠插| 国产最火爆久久国产网站网站| 久久9精品网站| 色偷综合| 久久国产99精品72福利| 国产精品青草综合久久| 亚洲综合另类小说色区亚洲成av人片在www| 97超碰中文在线| 国产97综合| 春色综合免费| 97视频www| 麻豆av一区二区三区| 啊啊啊啊啊啊啊国| 91国产精品在线看| 蜜色网色哟哟| 成人情色一区二区| 99综合视频| 中文字幕在线观看视频www| 精品偷拍13p欧美dodk视频| 亚洲天堂一区二区久久| 成年人网站在线免费观看| 久一区久久蜜桃| 精品国产乱码久久久久久网站入口| 国产久9| 一区二区三区色综合| 国产青青美女玩逼视频| suv精产一二三区| 亚洲精品黄码久久久久| 啊啊啊好大好深| 国产精品白丝AV| 2020中文字幕在线观看| 亚洲三级。日韩三级| 色姑娘综合网| 张柏芝国产一区在线观看| 欧美人妻少妇| 国产最新小视频在线播放下载| 国产黄色视频久久| 久操视频资源站公开| 国产AV激情无码久久无码| 亚洲精品无码成人久久久99| 欧美很很操视频| 久久婷婷亚洲| 久久天堂婷婷网| 五月天春色激情网| 中文字幕少妇色| 操淫穴亚洲五月丁香| 99re在线视频国产| 欧美性夜| 欧美精品23| 国产特级毛片AAAAAA高潮流水| 日韩亚洲精品一区二区| 五月丁香啪| 91在线美女| 欧美成人午夜免费福利785| 青青草日韩无码| 免费看污网站| 亚洲美腿丝袜香蕉影视欧美成人| 男同专区一区二区三区在线| 美女久久久| 永久免费发布性爱网| 国产亚洲色婷婷久久99精品91| 九九九九九九九九九九九免费国产| AV老汉| 韩国轻伦国内自拍一区| 91热色| 99re超碰| 5月婷婷6月六月丁香| 黄色AV影视| 丁香7月婷婷| 狠狠爱大香蕉| 综合操逼| 91中文精品日韩欧美在线| 久久精品99| 最新av网站在线观看| 人妻-91porn| 91一起操| 日本久久久精品电影| 天天综合欧美| 婷婷色五月激情| 久草婷婷| 内射小黄片| 婷婷亚洲色| 欧洲精品网| 色哟哟 日韩精品| 亚洲色诱惑| 天天热精品| 欧美人与动性人交a| 92福利社视频| AV男人天堂网| 日本一区二区三区免费观看| juliaann精品熟女一区| 美女黄页网站| 制服乱伦| 熟妇激情| 久久国产热视频97电影| 99在线观看无大码| 天天噜| 美女诱惑爱爱| 亚洲狠狠入| 在线看免费无码AV天堂的| 九九九久久久久| AV中文字幕三四五| www.色婷婷| 91精品操美女| 丁香婷婷久久 | 欧美日韩另类在线播放| 有码免费观看| 97精品视频| 国产精品熟女AV中文字幕在线播放| 亚洲人妻色图| 天堂蜜桃无码视频一区二区| 97超碰超| 亚洲天堂另类美腿| 久久男人的天堂| 久久综合久久综合人久久夜精品| 大香蕉日韩| 超碰超碰欧美| 97这里只有精品| 手机不卡视频不卡在线一二三区| 蜜臀99久久精品久久久懂爱| 日韩精品一区二区三区四虎影视| 日本二三四区| 看日韩美女二区三区免费操逼视频| 欧亚日韩三区| 插欧洲美女欧美精品| 欧美性五月| 日本大片日本一区二区免费高清| 伊香蕉综合久久久久久久噜噜噜 | 女色视频社区| 亚洲天堂精品日韩电影| 花野真衣| 芊芊操逼视频无码| 日韩精品电影| 天天综合精品| 日韩福利电影网| 婷婷五月天无码| 亚洲AV无线| 国产AV线| 国产精品一二三区福利| 天天激清| 黄色一区三区| 五月丁香亭亭| 国产精品一区二区校花| 香蕉色网| 成 人 影视 一区 二区 三区 四区 | 本道在线| 观看免费区二区三区二| 久久久久久久伊人精品| 老熟女综合网| 欧美少妇第一页| 亚洲天堂在线怕怕视频| 二级毛片| 97久久久久久久精| 97欧美性爱| 欧美啪啪色吧在线| 国产诱惑| 色综合美国| 99热只有这里有精品| 玖玖久久久| 亚洲天堂自拍| 六月丁香久久| 两女互慰AV高潮喷水在线观看| 91欧美www| 裸模AV女优| 92福利社视频| 国产操偷| 欧美爆乳精品一区二区| 欧美亚洲色的图| 啊啊啊啊啊啊啊好爽不要| 国产亚州高清国产拍精| 亚洲图片色图欧美另类| a啊啊啊啊啊啊啊啊一区二区| 欧美综合97www| 国模精品一区二区三区苹果色戒| 日本操逼视频免费| 玖玖久久久| 啊啊啊啊啊啊啊在线| 色五月69夫妻| 另类小说五月天| 黄片www.| 香蕉久久AⅤ...| 日韩有码 一区二区三区| 综合熟妇一区二区三区| 一区二区三区 丝袜 高跟 美腿| 国产网站在线播放| 国产精品麻豆成人av| 欧美大片91| 夜夜嗨免费视频| 久久婷婷欧美| 日本精品国产视频| 成人片在线播放| 欧美午夜视频免费观看| 一起草三级AV电影在线观看| 插插综合网天天影视网| 天天日美女的B| 99久久9| 骚逼一区二区| 性老妇一区二区三区| 久久久久精| 成人福利视频网| 国产绿奴视频在线观看| 国产精品分类在线观看| 91日韩国产欧美亚洲另类精盘州至城都| 九九九九免费高| 狠狠图片青青草| 99精品丰满人妻| 99啪啪视频| 99啪| 国内精品999| 夜夜嗨一区二区| 屌逼麻豆| 欧美九九99久久精品| 超碰日本97美女人妻人人玩人人爱| 97精品国产97久久久| 97九色人妻| 99综合自拍| 青青操在线亚洲视频观看欧美在线| 大香蕉伊人在线成人AV在线观看| 久久9亚洲| 欧美 日韩 另类 亚洲| 天天影视射综合网| 九99久久| 麻豆91熟妇人妻中文字幕茄子| 青青草福利视频| 国产日本一区二区三区蜜臀在线观看| 国产偷拍网站| 日韩欧美午夜一区二区| 久久成人午夜精品影院| 成人午夜小视频手机在线看| se吧提供国产乱老熟视频胖女人 | 人妻久久久久久久久久久久久久久| 五月天婷婷欧美三区| 丝袜美腿诱惑亚洲欧美视频在线观看| 人妻精品综合中文字幕在线| 99re69综合| 国产外初女出血视频| 欧美色爱综合| 黄色成人网久久久久久| 亚洲天堂AV在线播放| av国产无码| 蜜臀少妇一区二区| 日产123区精品免费观看| 2019男人的天堂| 国产在线综合福利网站| 一区二区三区探花在线观看| 色丁香五月婷婷| 少妇国产不卡| 男人天堂最新手机版在线青青草| 夜夜夜爽www精品视频| 人人干黄色| 天天干天天狼在线视频| 中文字幕亚洲欧美在线不卡| 丝袜美腿校园春色| 久艹日日日| xxxx网站亚洲精品| 人妻天天操天天爽视频免费| 99只有精品| 97欧美精品| 亚洲一曲日韩精品| 天美av在线观看| 白丝在线一区| 久操91视频| 亚洲欧洲日韩国产自在线| 少妇国产不卡| 综合网亚洲1| 久久久久亚洲AV无码专区少妇| 国产无马av| 91伊人久久在线| 国产在线播放成人免费| 婷色五月| 精品国产乱码久久久兰草影视| 亚洲欧美综合| 女人爽到高潮潮喷18禁网站| 亚洲日韩东京热一区| 97色色色| 人妻熟女一区在| 亚洲资源网| 亚洲阿v天堂无码z2018| 天堂8在线新版官网| 偷拍五区| 老司机福利青青草| 日本午夜久久电影| 熟妇无码视频三区| www.伪伪| 精品999日本| 新亚洲无码| caopeng97| 男人的天堂久久| 97婷婷色| 亚洲中文字幕一区| 狠狠激情综合狠狠操中文字幕| 精品美女在线视频| 激情小说图片亚洲首页| 97资源超碰| 97超碰人人操人人操| 五月天婷婷综合网| 久久αⅴ| 五月天伊人| 成人怡红院| 久久东京伊人一本到鬼色| 97在线无精品| 成人免费福利在线观看| 亚洲日韩东京热一区| 999亚洲国产视频| 黑人与人妻| 久久久免费的精品| B049AV在线播放| 亚洲国产午夜真人一级片中文字幕精品黄网站 | av网站在线看| 久久这里都是精品| 日本性感人妻91| 91在线限制级| 密乳AV免费观看| 午夜福利区| 91小视频| 91精品国| 亚洲中文字幕有码视频一区二区三区| 怡红院网站在线视频| 日韩操人| 亚洲欧美一区二区网址| 99999无码| 中国国产精品一区视频| 国产亚洲精品美女| 久久老子无码午夜伦不卡| 91痴汉| 99热色这里只有精品| 欧美岛国精品在线观看| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 精品久久99| 国产成年女黄特黄| 欧美老妇女内射网址| 色爱三区| 超碰色97| 青娱乐手机日韩在线视频| 欧美亚洲尤物久久| 999精品久久久久久久| 精品网站9999| 另类一区| 新怡红院| 亚洲天堂人人妻| 狠狠操狠狠爱| 翔田千里A片一区二区| 视频黄站| 日本一区三级韩国| 在免费jIzzjIzz在线视频| 午夜亚洲| 欧美人妻中出| 五月天社区| 亚洲人妻在线一区| aa片毛片| 久九9精品| 精品国产污一区二区三区| 国产av波波国产精品| 日本男人天堂| 日韩精品操少妇| 97天天爽| 精品国产人成在线| 亚洲日韩人妻中文字幕一区| asc国产精品| 艳美熟妇先锋一二三区| 青草av在线| а√天堂资源官网在线资源| 羞答答AV中文字| 啪啪视频mP4| 亚洲五月天激情| 亚洲无线码欧洲精品区别| 搡老女人老91妇女老熟女| 日韩欧美中文字亚洲慕| 中文字幕日产av人| 91国产精品在线看| 亚洲AV噜噜狠狠网址蜜桃动漫| 日本阿v天堂在线观看| 亚洲综人| 成人天天爽| 蜜臀AV成人精品蜜臀AV久久| 美女诱惑爱爱| 色色丁香| 成人无码影片视频在线| 草草影院最新网址| 欧美91在线| 午夜精品久久久久久久久久久久久| 激情欧美日韩女同久久| 东京成人一区| 91+欧美| 激情婷婷丁香| 桃色五月天| 久久高清欧美国产| 亞洲久久直播| 人人做,人人操,人人摸| 国产午夜福利专区综合| 色哟哟 日韩精品| 性91| 色吧91| 欧美自拍网| 少妇的嫩逼图片| 死我十八禁| 极品人妻少妇综合| 精品国产乱码久久久久久久| 中亚黄色三级大片| 久久亚洲天堂| 粉嫩AV输入| 一二视频神马久久传媒| 超碰人人妻| 黄页大片在线观看| 人妻插插人妻人| 欧美性猛交美女自慰91| 久久久久久久久久久久久9999| 麻豆人妻精品一区二区| 偷窥自拍亚洲色图| 色五月第四色| 在线视频一区二区传媒| 综合欧美日韩在线| 久草草一二三四区久久| 亚洲国产中文字幕| 欧美韩国你懂得在线| 国产情色在线| 精品一区二区三区18| 亚洲丝袜在线观看| 蜜臀久久99精品久久久久| 性开放中文AV高清无码免费看| 午夜性| 91在线精品| 四虎国产精品永久入口| 日韩免费a级毛片无码a∨| 97视频网站| 人妻丝袜一区二区三区在线| 国产精品动态一区二区三区四四| 久久鲁夜| 少妇第一页| 大鸡巴久久| 国产99999| 国产一区在线观看无码AV | 五月天综合网| 天天插天天舔舔天天干| 9999亚洲精品| 日韩精品午夜操呦呦不卡影院| 一本色道人妻久久| 黄色视频60分钟| 蜜桃视频成a人v在线| 九九成人| 九九九九精品一区| 人妖欧美一区二区| 伊人四虎综合| 92大香蕉| 免费观看性欧美一级| 欧美一区二区三区日韩| 99热这里都是精品| h色99999| 91热热色| 波多野结衣先锋影音| 国产成人资源| 好屌色综合| 色欧洲| 小视频玖玖| 91AV老熟女视频| 国产久9| 12一15性XXXX粉嫩国产| 探花激情视频| 白 大 人妻 区 在线| 麻豆一区二区AV天美| 亚洲小电影免费涩涩成人在线高清| 91精品人妻电影| 丰满搜索结果 -第18页- 久久高清无码| 欧美高清91| 国产精品亚洲色婷婷久久久| 激情五月婷婷| 婷婷五月天无码| 国产乱伦搜索结果91P| 97久久久| 97碰碰日本乱偷人妻中文的| 另类天堂| 岛国AB视频| 久热69九色熟妇97| 久久久亚洲精品中文字幕人妻| 国产精品美女久久久久久网站| 亚洲AV免费在线| 91无摭挡| 人妻色偷色噜| 久久超碰爱| 国产精品九九| 色综合天天| 91网18| 91人妻人人澡人人爽人人精品| 97任你吞精| 欧美在线视频观看一二三四区高清| 老熟女网站| 丁香五月影院| 午夜无码熟妇丰满人妻| 这里只有精品视频在线观看麻豆 | 色欧洲| 天天干天天拍| 蜜桃狠狠色伊人亚洲综合| 国产欧美日韩一区二区三区| 欧美日韩精品国产91| 日韩综合色图| 国产超碰国产97| 日本精品999| 天天干天天干天天| 天天伊人| 欧美美女自慰一区二区三区| 东京男人天堂| 99只有精品| 亚洲欧美啪啪| 中文激情网| 天天日天天色| 中文字幕欧洲有码| 久久婷婷伊人| 草草草草视频| 91久操| 亚洲天天操| 内射日韩大臀美女| 午夜超碰| 国产传媒一区日韩| 丰满少妇一区二区三区免费看| 2020视频1区2区3区| 最新日本中文字幕| 国产精品青青草| 日韩簧片免费看| 日日干夜夜骑| 亚洲成人一区二区精品| 丰满熟妇大乳做爰| 色性综合| 91天天综合网| 欧美少妇性乱| 国产成人无码网站在线视频| 亚洲少妇自拍中文字幕懂色| 色五月综合| 国产一区二区成人av在线播放| 九一屌逼| 夜间福利片1000无码| 区一二区日韩亚洲乱码av电影| 视频黄色国产一级| 日比av无码| 欧美熟爽综合| 国产一在线观看| 麻豆av一区二区| 九九九九久久久| 黄色片一区二区三区四区五区| 久久视频,这里只有精品 | 天天日美女的B| 欧美成人黄网色网站| 夜夜骑夜夜操| 热热色色综合| 黄网在线播放| 亚洲无线码欧洲精品区别| 97中文字幕一区| 日韩国语字幕| 亚洲欧美国产成人综合不卡| 98久久| 麻豆 亚洲 97| 91国产精品在线看| 国产精品999zyz| 日本一二三免费久久| 自拍欧美| 69超碰综合| 亚洲精品国产无码高清| 蜜臀99久久国产| 不卡一区视频| 黑丝少妇| 婷婷丁香五月天综合东京热| 伊人影院日本| 激情人妻另类| 国产av青草| 欧洲色色| 久久天天艹| 97久久久| 亚洲人久久久久日| 二级久久网| 青娱乐 成人娱乐在线| 免费人成?大片在线播放| 国产乱子伦一区二区三区在线观看| 男人的天堂久久狠| 大香蕉国产中文自拍| 日韩女模中文造逼| 亚洲精品人妻在线| 日韩日本欧美在线观看| 亚洲天堂人人妻| 久久色激情一区二区三区| 日日夜夜狠狠| 性开放中文AV高清无码免费看| 91人妻少妇| 九七色图| 97亚洲中文| 日本黄色天堂| 狠操91,com| 青娱乐手机日韩在线视频| 射 色综合| 亚洲欧美大香蕉| 日本片日本片祼观看网站在线看中文版网页在线看 | 丝袜喷水在线| 操人无码| 婷婷久久大香蕉| 大香蕉黄色一区| 天天激情干| 欧美日韩另类在线| 亚洲激情在线观看一区| 96精品久久| 亚洲天堂少妇| 欧美大战久久久伊人| 欧美A√综合网| 国产精品欧美激在线| 色妺妺在线视频| 久久久艹艹艹| 一区二区久久天天干狠狠| 99国内精品| 婷色五月天| 成人综合色网| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 激情视频一二三| 欧洲小说色图视频另类| 熟妇熟女视频一区二区三区| 欧美一级三级| 在现视频女上位好爽| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 日本三级黄页| 国产天天骚|