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

ARTICLE DETAIL

資訊詳情

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

SOME/IP服務(wù)端實(shí)現(xiàn):CommonAPI與vsomeip配置、Stub及排障實(shí)踐

SOME/IP服務(wù)端實(shí)現(xiàn):CommonAPI與vsomeip配置、Stub及排障實(shí)踐 做SOME/IP通信如果沒(méi)被服務(wù)端折騰過(guò)真不好意思說(shuō)做過(guò)車載通信。CommonAPI和vsomeip這套組合客戶端側(cè)只要調(diào)方法、收事件看起來(lái)還算清爽真落到服務(wù)端實(shí)現(xiàn)難點(diǎn)就變成了另一件事怎么讓客戶端穩(wěn)定地找到你、正確地回包、不丟事件、不崩進(jìn)程。這篇是服務(wù)端部分的第三篇默認(rèn)你已經(jīng)對(duì)CommonAPI的C接口和vsomeip的SD機(jī)制有基本概念下面專門寫實(shí)現(xiàn)服務(wù)端時(shí)真正花時(shí)間的那些事角色分工、版本匹配、配置、Stub骨架還有幾個(gè)我實(shí)測(cè)過(guò)才敢寫出來(lái)的坑。1. 服務(wù)端到底是什么角色先理清三層的關(guān)系再動(dòng)手1.1 SOME/IP、vsomeip、CommonAPI各自管哪一段很多剛開(kāi)始做車載通信的同事會(huì)把SOME/IP、vsomeip、CommonAPI混為一談排錯(cuò)的時(shí)候經(jīng)常把協(xié)議問(wèn)題當(dāng)成代碼問(wèn)題、把版本問(wèn)題當(dāng)成網(wǎng)絡(luò)問(wèn)題。這三個(gè)東西其實(shí)分工相當(dāng)明確SOME/IP是協(xié)議規(guī)范規(guī)定消息怎么封裝、方法怎么請(qǐng)求、事件怎么通知、SD服務(wù)發(fā)現(xiàn)報(bào)文長(zhǎng)什么樣。它是一套約定。vsomeip是SOME/IP的開(kāi)源實(shí)現(xiàn)負(fù)責(zé)網(wǎng)絡(luò)收發(fā)、SD報(bào)文、路由、TCP/UDP連接管理。你可以把它理解為快遞網(wǎng)點(diǎn)網(wǎng)絡(luò)它知道包裹怎么從這個(gè)節(jié)點(diǎn)運(yùn)到那個(gè)節(jié)點(diǎn)。CommonAPI是跨進(jìn)程通信的上層接口框架它定義了你寫代碼時(shí)用的方法、事件、字段這些抽象。它把底層SOME/IP細(xì)節(jié)屏蔽掉讓你像調(diào)本地函數(shù)一樣調(diào)用遠(yuǎn)程服務(wù)。我的建議是遇到任何通信異常先判斷它發(fā)生在哪一層。是CommonAPI的接口簽名對(duì)不上是vsomeip的配置把IP/端口搞錯(cuò)了還是SOME/IP協(xié)議本身在該場(chǎng)景下的機(jī)制問(wèn)題比如事件組訂閱關(guān)系層與層之間互相甩鍋是最常見(jiàn)的浪費(fèi)時(shí)間方式。1.2 服務(wù)端和客戶端關(guān)注點(diǎn)完全不同客戶端側(cè)的核心訴求是怎么把請(qǐng)求發(fā)出去、結(jié)果拿回來(lái)而服務(wù)端側(cè)的任務(wù)更重服務(wù)端是權(quán)威數(shù)據(jù)的持有者是事件生成的源頭是多個(gè)客戶端并發(fā)訪問(wèn)的匯聚點(diǎn)。用表格看更直觀關(guān)注點(diǎn)客戶端側(cè)服務(wù)端側(cè)核心目標(biāo)找到并調(diào)用遠(yuǎn)程服務(wù)被穩(wěn)定發(fā)現(xiàn)、持續(xù)提供數(shù)據(jù)方法調(diào)用發(fā)請(qǐng)求、等返回接收請(qǐng)求、解析參數(shù)、回Reply事件收發(fā)訂閱事件組、收廣播按事件組廣播數(shù)據(jù)字段操作遠(yuǎn)程讀取、遠(yuǎn)程設(shè)置維護(hù)本地權(quán)威狀態(tài)并同步失敗場(chǎng)景服務(wù)下架后重試或切換備用避免誤發(fā)、崩潰、掉線時(shí)造成客戶端超時(shí)服務(wù)端具體要做的事歸納起來(lái)就四件注冊(cè)和發(fā)布服務(wù)、處理方法請(qǐng)求、廣播事件、維護(hù)字段狀態(tài)。很多坑都源于沒(méi)有區(qū)分客戶端視角和服務(wù)端視角。比如我明明注冊(cè)成功了為什么客戶端看不到——這類問(wèn)題幾乎都集中在SD協(xié)商環(huán)節(jié)而不是代碼有沒(méi)有寫對(duì)。2. 第一道坎環(huán)境準(zhǔn)備和版本匹配先解決“跑不起來(lái)”2.1 依賴庫(kù)和編譯順序CommonAPI vsomeip的服務(wù)端工程常規(guī)依賴包括Boost、CMake、Python3部分代碼生成工具依賴它以及兩個(gè)核心庫(kù)CommonAPI核心庫(kù)和CommonAPI SOME/IP綁定層綁定層又依賴vsomeip本身。我的編譯順序是固定的先編CommonAPI核心庫(kù)再編vsomeip然后編CommonAPI的SOME/IP綁定層最后編譯你自己的服務(wù)端程序。順序一旦顛倒后編譯的庫(kù)可能在鏈接階段找不到前一個(gè)庫(kù)的符號(hào)。大致命令如下# 1. 安裝基礎(chǔ)依賴 sudo apt-get install cmake build-essential libboost-system-dev libboost-thread-dev # 2. 編譯 commonapi-core git clone commonapi-core倉(cāng)庫(kù) cd commonapi-core mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX/opt/automotive .. make -j$(nproc) sudo make install # 3. 編譯 vsomeip git clone vsomeip倉(cāng)庫(kù) cd vsomeip mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX/opt/automotive .. make -j$(nproc) sudo make install # 4. 編譯 commonapi-someip-tools 或綁定庫(kù) git clone commonapi-someip-tools倉(cāng)庫(kù) cd commonapi-someip-tools mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX/opt/automotive .. make -j$(nproc) sudo make install # 5. 編譯你自己的服務(wù)端工程 cd /path/to/your-service mkdir build cd build cmake -DCMAKE_PREFIX_PATH/opt/automotive .. make如果你不是源碼編譯而是用包管理器直接安裝那么省事不少但要注意包管理器里的版本往往不是最新且多個(gè)庫(kù)之間未必匹配。我個(gè)人傾向固定版本的源碼構(gòu)建因?yàn)榻桓盾囕d環(huán)境時(shí)開(kāi)發(fā)者需要完全可復(fù)現(xiàn)的版本鎖定。2.2 版本矩陣別迷信“最新版”CommonAPI vsomeip最讓人頭疼的就是版本匹配。很多人喜歡各庫(kù)都拉最新版本結(jié)果運(yùn)行時(shí)出現(xiàn)各種invalid cast、找不到符號(hào)。它們的接口在演進(jìn)綁定層生成的代碼和運(yùn)行庫(kù)之間如果太新太舊即使編譯過(guò)了運(yùn)行時(shí)也會(huì)在加載階段或第一次調(diào)用時(shí)翻車。我整理了一份示例組合注意是示例具體以你所在代碼倉(cāng)庫(kù)官方文檔的版本矩陣為準(zhǔn)commonapi-corecommonapi-someip-toolsvsomeip建議3.2.x3.1.x3.1.x / 3.3.x同代組合兼容性較好3.1.x3.0.x2.10.x老項(xiàng)目常用跨大版本混用跨大版本混用跨大版本混用不推薦編譯過(guò)也可能運(yùn)行崩我的經(jīng)驗(yàn)是拿到一個(gè)新工程先把頂層README里L(fēng)ocked Versions或Dependencies章節(jié)看一遍確認(rèn)這組庫(kù)是哪幾個(gè)版本配在一起的再據(jù)此決定自己項(xiàng)目鎖哪一版。不要在今天編譯通過(guò)后過(guò)兩個(gè)月突然升級(jí)其中一個(gè)庫(kù)這往往是黑暗調(diào)試的開(kāi)始。2.3 LD_LIBRARY_PATH和示例工程綁定層運(yùn)行時(shí)要通過(guò)dlopen加載vsomeip共享庫(kù)如果LD_LIBRARY_PATH沒(méi)包含安裝目錄進(jìn)程會(huì)在啟動(dòng)階段報(bào)錯(cuò)或崩潰。這個(gè)坑特別隱蔽因?yàn)榫幾g時(shí)能找到庫(kù)運(yùn)行時(shí)卻找不到。我用一個(gè)腳本固定環(huán)境變量每次編譯運(yùn)行前source一次export LD_LIBRARY_PATH/opt/automotive/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH/opt/automotive/lib/pkgconfig:$PKG_CONFIG_PATH另外不要一上來(lái)就寫自己的服務(wù)端業(yè)務(wù)代碼。先把綁定層倉(cāng)庫(kù)里自帶的examples跑通。比如先跑通一個(gè)簡(jiǎn)單的服務(wù)端注冊(cè)、客戶端發(fā)現(xiàn)并調(diào)用方法的example再開(kāi)始改造成自己的服務(wù)。這個(gè)習(xí)慣幫我省了大量時(shí)間——因?yàn)槿绻鹐xample都跑不通問(wèn)題基本在環(huán)境或版本不在你的業(yè)務(wù)邏輯。3. 服務(wù)端主流程怎么設(shè)計(jì)從配置文件到Stub實(shí)現(xiàn)3.1 先看vsomeip的網(wǎng)絡(luò)配置服務(wù)端到底綁定在哪張網(wǎng)卡上服務(wù)端實(shí)現(xiàn)的第一步不是寫代碼是寫配置。vsomeip需要一個(gè)JSON格式的配置文件里面至少指定服務(wù)端的IP地址、診斷地址、端口等信息。一個(gè)極簡(jiǎn)示意見(jiàn)下面注意不同版本字段名稱可能有出入以你的vsomeip版本自帶的樣例配置為準(zhǔn){ unicast: 192.168.0.11, diagnostic_address: 0x1051, ports: { someip-ipc-port: 7001, someip-sd-port: 30490 }, applications: [ { name: my-audio-service, id: 0x1100 } ] }這個(gè)配置里unicast是最容易被忽略的。如果開(kāi)發(fā)機(jī)有多塊網(wǎng)卡比如以太網(wǎng)、Wi-Fi、Docker虛擬網(wǎng)卡而vsomeip拿到的主機(jī)IP不是你客戶端能訪問(wèn)的那個(gè)網(wǎng)段SD報(bào)文會(huì)從錯(cuò)誤網(wǎng)卡出去客戶端永遠(yuǎn)發(fā)現(xiàn)不了服務(wù)。我剛做這個(gè)的時(shí)候排查了一下午才發(fā)現(xiàn)是unicast沒(méi)顯式指定vsomeip取了默認(rèn)路由的第一塊網(wǎng)卡而那塊網(wǎng)卡恰好和測(cè)試環(huán)境不在同一網(wǎng)段。端口部分一般不用動(dòng)但你要知道someip-sd-port默認(rèn)是30490服務(wù)事件和方法數(shù)據(jù)也都走這里或TCP對(duì)應(yīng)端口。很多人抓包只抓業(yè)務(wù)端口忘了SD也走UDP導(dǎo)致看到的現(xiàn)象是客戶端在找服務(wù)服務(wù)端完全沒(méi)響應(yīng)。3.2 CommonAPI綁定層的映射配置服務(wù)ID、方法ID、事件IDCommonAPI接口定義文件*.fidl里只有邏輯上的方法名、事件名但它最終要通過(guò)SOME/IP綁定層映射到數(shù)字ID上。綁定層的部署配置文件負(fù)責(zé)完成邏輯接口到SOME/IP ID的映射。大致結(jié)構(gòu)類似下面這樣具體格式隨綁定層工具版本變化但概念一致{ someip: { service: { audio-controller: { service_id: 0x60F0, instance_id: 0x0001, method_ids: { SetVolume: 0x0A01, GetVolume: 0x0A02 }, event_ids: { VolumeChanged: 0x0B01 }, eventgroup_ids: { eg-volume: 0x0001 } } } } }這些ID不是隨便填的。服務(wù)ID區(qū)分不同服務(wù)實(shí)例ID區(qū)分同一服務(wù)的不同實(shí)例方法ID用于路由請(qǐng)求事件ID和事件組ID決定事件從哪來(lái)、往哪去。一個(gè)小失誤比如方法ID沖突就會(huì)造成A調(diào)用了方法結(jié)果B服務(wù)收到了這是最詭異的一類通信錯(cuò)亂。我的建議是把服務(wù)和事件ID做成一個(gè)中央清單不要散落在各個(gè)服務(wù)模塊的配置里。多個(gè)人并行開(kāi)發(fā)的時(shí)候服務(wù)ID沖突這種事比你想象的常見(jiàn)。3.3 繼承Stub骨架實(shí)現(xiàn)業(yè)務(wù)邏輯CommonAPI用工具根據(jù)fidl接口定義生成兩套骨架客戶端用的Proxy服務(wù)端用的Stub。服務(wù)端要做的是繼承生成的StubDefault類或者對(duì)應(yīng)版本生成的類實(shí)現(xiàn)里面的虛方法。下面是一段用戶自定義Stub的示意代碼// AudioControllerStubImpl.h #include AudioControllerStubDefault.hpp class AudioControllerStubImpl : public AudioControllerStubDefault { public: AudioControllerStubImpl() { init(); } // 方法客戶端遠(yuǎn)程調(diào)用SetVolume時(shí)會(huì)進(jìn)入這里 void SetVolume( const std::shared_ptrCommonAPI::ClientId clientId, uint16_t volume, SetVolumeReply_t reply) override { // 處理業(yè)務(wù)邏輯比如校驗(yàn)、落盤、更新內(nèi)部狀態(tài) if (volume maxVolume_) { volume maxVolume_; } volume_ volume; // 回復(fù)調(diào)用方 reply(CommonAPI::CallStatus::SUCCESS, volume_); // 如果需要通知所有訂閱了該事件的客戶端 fireVolumeChanged(volume_); } private: uint16_t volume_ 0; uint16_t maxVolume_ 100; };注意fireVolumeChanged是生成代碼里的公共事件廣播方法名實(shí)際項(xiàng)目里它可能叫fireVolumeChangedEvent以你生成的代碼為準(zhǔn)。服務(wù)端要實(shí)現(xiàn)的就是更新自己的狀態(tài)、回復(fù)調(diào)用方、廣播變化。這里有個(gè)重要理念服務(wù)端是權(quán)威數(shù)據(jù)源不要讓遠(yuǎn)端值繞過(guò)你直接寫內(nèi)存否則多個(gè)客戶端讀到的狀態(tài)會(huì)不一致。3.4 main()里怎么注冊(cè)服務(wù)服務(wù)端程序的入口核心動(dòng)作是加載綁定層、創(chuàng)建工廠、創(chuàng)建Stub、注冊(cè)服務(wù)。不同版本的CommonAPI注冊(cè)寫法略有差異但核心流程一致#include CommonAPI/CommonAPI.hpp int main() { // 加載某個(gè)綁定層vsomeip就是 vsomeip auto runtime CommonAPI::Runtime::load(vsomeip); if (!runtime) { // 處理加載失敗 return -1; } auto factory runtime-createFactory(); auto stub std::make_sharedAudioControllerStubImpl(); // 注冊(cè)服務(wù)。不同版本地址字符串格式不同以生成代碼/示例為準(zhǔn) bool registered factory-registerService( stub, local:audio-controller:AudioController:someIP:0x60F0); if (!registered) { // 注冊(cè)失敗處理 return -1; } // 主線程不能退出讓后臺(tái)IO線程持續(xù)運(yùn)行 while (true) { std::this_thread::sleep_for(std::chrono::seconds(1)); } return 0; }這里重點(diǎn)提醒注冊(cè)成功不代表已經(jīng)可以提供服務(wù)。CommonAPI的registerService返回成功表示綁定層的路由信息已經(jīng)準(zhǔn)備好了但SD的Offer上報(bào)可能還要等下一輪SD周期??蛻舳丝傄?jīng)過(guò)一個(gè)發(fā)現(xiàn)窗口才能看到服務(wù)這在測(cè)試?yán)锖苷e一看到客戶端慢了幾百毫秒就以為出故障。3.5 方法、事件、字段服務(wù)端的三種接口要區(qū)別對(duì)待方法Method是請(qǐng)求-響應(yīng)模式客戶端調(diào)用服務(wù)端處理并回復(fù)。事件Event是服務(wù)端主動(dòng)通知客戶端訂閱某個(gè)事件組后服務(wù)端通過(guò)fireXxx廣播。字段Field是屬性操作底層其實(shí)拆成了Get方法和Set方法但CommonAPI把語(yǔ)義包裝成RemoteGet/RemoteSet。三種接口在服務(wù)端實(shí)現(xiàn)時(shí)的注意點(diǎn)不同方法不要在回調(diào)里做耗時(shí)的同步操作。CommonAPI分發(fā)到回調(diào)的線程池大小有限如果一個(gè)方法的處理里sleep了100毫秒同一時(shí)間其他方法的響應(yīng)也會(huì)被堵住。復(fù)雜業(yè)務(wù)應(yīng)該把任務(wù)投遞到獨(dú)立的工作線程。事件只有在客戶端訂閱了事件組之后廣播才有意義。很多事件系統(tǒng)的坑不是服務(wù)端沒(méi)發(fā)而是服務(wù)端根本不知道哪些客戶端訂了什么一股腦發(fā)、發(fā)完了發(fā)現(xiàn)全被丟棄。字段服務(wù)端是權(quán)威狀態(tài)??蛻舳薙et字段后要不要廣播變化給所有訂閱者取決于接口語(yǔ)義。我的習(xí)慣是只要字段真正變化了就主動(dòng)廣播一次寧可多一次通知也不要讓其他客戶端拿到過(guò)期數(shù)據(jù)。4. 服務(wù)端真正容易踩的坑排查手法和現(xiàn)場(chǎng)記錄4.1 抓包是服務(wù)端排障的第一手段在沒(méi)有抓包的情況下猜SOME/IP問(wèn)題基本等于閉著眼修車。服務(wù)端注冊(cè)不成功、方法沒(méi)響應(yīng)、事件沒(méi)送到這些問(wèn)題的答案幾乎都在網(wǎng)絡(luò)報(bào)文里。wireshark自帶SOME/IP和SOME/IP-SD解析器抓到報(bào)文后能直接看到OfferService、FindService、SubscribeEventgroup這些關(guān)鍵動(dòng)作。抓包過(guò)濾最簡(jiǎn)單的辦法udp.port 30490SD端口業(yè)務(wù)流量看對(duì)應(yīng)UDP/TCP業(yè)務(wù)端口。重點(diǎn)觀察三步服務(wù)端有沒(méi)有周期性發(fā)送OfferService如果沒(méi)有問(wèn)題在服務(wù)端配置或注冊(cè)流程??蛻舳擞袥](méi)有發(fā)FindService如果沒(méi)有問(wèn)題在客戶端服務(wù)端可能壓根沒(méi)收到請(qǐng)求。雙方服務(wù)ID、實(shí)例ID是否一致不一致會(huì)在報(bào)文里看到在找另一個(gè)服務(wù)。我踩過(guò)最窩囊的一次服務(wù)端和客戶端用的服務(wù)ID完全對(duì)不上服務(wù)端注冊(cè)的是0x60F0客戶端配置寫的是0x60F1。抓包后兩秒鐘看出來(lái)代碼層面卻查了一個(gè)多小時(shí)。4.2 服務(wù)已注冊(cè)但客戶端找不到排查鏈路這類問(wèn)題高發(fā)我一般按順序檢查現(xiàn)象最可能原因驗(yàn)證方法客戶端一直FindService服務(wù)端沒(méi)有Offer服務(wù)端沒(méi)注冊(cè)成功或vsomeip配置錯(cuò)誤抓包看OffService報(bào)文是否存在服務(wù)端發(fā)Offer了客戶端不收網(wǎng)段不通ping對(duì)端檢查多網(wǎng)卡和unicast配置Offer和Find都通了方法調(diào)用無(wú)響應(yīng)方法ID或接口版本不匹配抓包看Request/Response的method_id服務(wù)端網(wǎng)卡配置了DHCPIP變化導(dǎo)致客戶端老連接失效靜態(tài)IP或檢測(cè)IP變化后重新Offer服務(wù)端進(jìn)程注冊(cè)本身是運(yùn)行時(shí)動(dòng)作不是啟動(dòng)時(shí)自動(dòng)完成的。我見(jiàn)過(guò)有人把服務(wù)ID寫進(jìn)配置文件就以為萬(wàn)事大吉結(jié)果代碼里根本沒(méi)調(diào)用registerService。所以見(jiàn)到客戶端找不到服務(wù)時(shí)先確認(rèn)服務(wù)端有沒(méi)有真的執(zhí)行到注冊(cè)那行代碼再看SD報(bào)文。4.3 事件組訂閱的坑為什么事件“發(fā)”了客戶端收不到事件的路線不是服務(wù)端廣播給所有客戶端而是客戶端先訂閱某個(gè)事件組服務(wù)端根據(jù)訂閱關(guān)系向該組內(nèi)的客戶端發(fā)送事件。如果事件ID映射錯(cuò)了或者事件組ID兩邊不一致wireshark里能看到客戶端發(fā)了SubscribeEventgroup但服務(wù)端后續(xù)的Publish事件報(bào)文卻發(fā)不出或發(fā)錯(cuò)目的地。排查事件類問(wèn)題我建議抓包順序看三處客戶端有沒(méi)有發(fā)送訂閱請(qǐng)求到服務(wù)端IP服務(wù)端是否收到訂閱請(qǐng)求事件組ID對(duì)得上嗎服務(wù)端在事件觸發(fā)時(shí)有沒(méi)有實(shí)際發(fā)出Publish報(bào)文如果第3步已經(jīng)發(fā)出但客戶端收不到優(yōu)先懷疑多播/路由/防火墻。如果第3步?jīng)]發(fā)出那是服務(wù)端邏輯問(wèn)題——最可能是事件沒(méi)有真正觸發(fā)或者事件組ID映射錯(cuò)了。4.4 方法回調(diào)里的隱形阻塞問(wèn)題有一次我給一個(gè)服務(wù)端加了日志落盤每次方法回調(diào)都寫一行日志。測(cè)試時(shí)發(fā)現(xiàn)客戶端超時(shí)率飆升。抓包看Request和Response之間的時(shí)間間隔正常應(yīng)該幾毫秒實(shí)際到了幾百毫秒。原因是日志是同步刷盤而回調(diào)線程只有那么幾個(gè)所有方法請(qǐng)求都在排隊(duì)等磁盤IO。當(dāng)時(shí)還把問(wèn)題想復(fù)雜了以為是隊(duì)列滿了、以為是網(wǎng)絡(luò)抖動(dòng)。后來(lái)把日志改成異步超時(shí)率立刻歸零。這件事給我的教訓(xùn)是服務(wù)端方法處理必須異步化回調(diào)里只做最輕量的參數(shù)解析和狀態(tài)更新真正的業(yè)務(wù)邏輯和IO丟到獨(dú)立線程池。想做同步的時(shí)候先問(wèn)問(wèn)自己如果這個(gè)操作耗時(shí)100毫秒其他客戶端的請(qǐng)求誰(shuí)處理5. 從Demo到量產(chǎn)穩(wěn)定性和可維護(hù)性的幾個(gè)習(xí)慣5.1 注冊(cè)服務(wù)前的“設(shè)備狀態(tài)初始化”registerService一旦生效客戶端隨時(shí)可能發(fā)現(xiàn)服務(wù)并調(diào)用方法。所以注冊(cè)前服務(wù)端的內(nèi)部狀態(tài)必須完成初始化包括從存儲(chǔ)里恢復(fù)的配置、傳感器校準(zhǔn)值、默認(rèn)參數(shù)等。否則客戶端可能第一次調(diào)用就讀到一個(gè)未初始化的中間狀態(tài)。我見(jiàn)過(guò)一個(gè)服務(wù)端把初始化放在注冊(cè)之后異步去做結(jié)果客戶端在100毫秒內(nèi)就調(diào)用了Getter讀到全是0。我后來(lái)把初始化邏輯全部移到注冊(cè)之前并且加了一個(gè)ready標(biāo)志作為字段字段的第一個(gè)判斷條件未初始化直接返回錯(cuò)誤碼。5.2 進(jìn)程退出時(shí)先注銷再關(guān)閉其余資源服務(wù)端進(jìn)程被kill -9和正常退出客戶端感知速度完全不同。正常退出時(shí)應(yīng)該先把服務(wù)從SD中撤回讓客戶端盡快知道這個(gè)服務(wù)下架了然后銷毀CommonAPI運(yùn)行時(shí)和vsomeip資源。如果不做這一步客戶端只能通過(guò)超時(shí)機(jī)制發(fā)現(xiàn)服務(wù)消失這段時(shí)間里所有方法調(diào)用都在等一個(gè)不可能回來(lái)的回復(fù)。實(shí)踐中我在SIGTERM和SIGINT信號(hào)處理函數(shù)里先調(diào)用注銷邏輯再退出主循環(huán)。注意信號(hào)處理函數(shù)里不要做復(fù)雜操作只置一個(gè)退出標(biāo)志主循環(huán)檢查后執(zhí)行清理退出。5.3 服務(wù)ID和事件ID集中管理車載通信場(chǎng)景里服務(wù)很多參與方也很多服務(wù)ID一旦沖突SD路由會(huì)亂套。我的習(xí)慣是建立一個(gè)配置中心或至少一個(gè)集中的頭文件/JSON目錄把服務(wù)ID、實(shí)例ID、方法ID、事件ID、事件組ID全部登記并在評(píng)審時(shí)把ID變更當(dāng)作接口變更來(lái)對(duì)待。有一次我們兩個(gè)模塊并行開(kāi)發(fā)A模塊把服務(wù)ID寫成0x6001B模塊也寫了0x6001結(jié)果測(cè)試環(huán)境里客戶端一會(huì)兒連到A、一會(huì)兒連到B。抓包看到兩個(gè)服務(wù)端都在Offer同一個(gè)服務(wù)ID問(wèn)題才暴露。從那以后我再也不相信大家各自注意點(diǎn)就行。5.4 事件廣播頻率與訂閱狀態(tài)要結(jié)合服務(wù)端事件不是越快越好也不是越多越好。高頻周期事件如果不看客戶端訂閱情況會(huì)大量占用CPU和網(wǎng)絡(luò)。比如一個(gè)傳感器數(shù)據(jù)事件客戶端沒(méi)訂閱時(shí)你也在周期廣播浪費(fèi)還發(fā)現(xiàn)不了。實(shí)現(xiàn)時(shí)要先查事件組里有沒(méi)有活躍訂閱者有訂閱再?gòu)V播。還有一點(diǎn)周期性事件建議在廣播前判斷數(shù)據(jù)有沒(méi)有變化。變化才發(fā)能大幅降低總線負(fù)載。比如音量事件客戶端只關(guān)心音量變化你每秒發(fā)10次相同音量值既占帶寬又增加對(duì)端解析負(fù)擔(dān)。真正要做到變化才發(fā)可能需要增加一條比較邏輯但收益非常明顯。最后再分享一個(gè)小技巧我個(gè)人做這套東西最大的感受是不要在寫業(yè)務(wù)代碼之前跳過(guò)驗(yàn)證鏈路。無(wú)論你多熟練先跑通官方examples再抓包看一輪SD交互最后才寫自己的Stub實(shí)現(xiàn)。因?yàn)镃ommonAPI和vsomeip的坑太依賴版本和環(huán)境跳過(guò)驗(yàn)證直接寫業(yè)務(wù)出問(wèn)題時(shí)你根本分不清是自己的代碼問(wèn)題還是鏈路問(wèn)題。抓包工具用順手之后你會(huì)發(fā)現(xiàn)自己定位問(wèn)題的速度翻倍。還有一個(gè)小習(xí)慣每次跑服務(wù)端前先清一次可能殘留的舊進(jìn)程否則舊實(shí)例還在Offer服務(wù)新實(shí)例注冊(cè)時(shí)會(huì)和舊實(shí)例爭(zhēng)搶造成服務(wù)在卻連不上的幻覺(jué)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
性爱综合网| 后入式五六区| 天天综合网91| 丁香五月av| a人片中文字幕一区二区| 97免费视频在线| 亚洲熟女av日韩熟女| 亚州人妻| 蜜乳AV.COM| 久操B网| 97中文字幕一区| 91艹B视频| 操操操操操操| 岛国片在线播放| 色蜜AV| 九九热精品视频六| 婷色五月| 91爱| 96AV精品| 国产午夜在线观看| 蜜臀AV一区二区三区激情综合| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 亚洲最新a在线观看| 色诱中文字幕| 亚洲啪啪视频一区二区| 中文久久96| 日韩免费大片一级播放| 欧美成人国产精品| 日韩精品亚洲专区在线影视| 在线日韩日本亚洲国产| 中文有码第五页| 在线午夜成人无码视频| 手机av亚洲丝袜美腿日韩第一页二页| 天天做日日做天天欢。| 日韩欧美久久婷婷网站| 香蕉久久国产AV一区二区| 国产美女高潮视频| yiren97| 亚洲精品国产熟女久久久久久| 性爱AV天堂| 精品亚洲国产成人精品| 亚州色图欧美色图| 色婷婷综合久久久久中文一区二区 | 日本黄色精品专区网站| 制服诱惑亚洲一区二区三区在线观看| 天天看,天天做| 成年人黄色| 一道本东京热加勒比一区二区三区| 女性喷水高潮在线观看| 老鸭窝日丰县女人| 亚洲AV资源| 亚川综合视频| 日韩无码服务区| 亚洲AV无码天美传媒一区| 亚洲情色综合| 日日摸日日碰夜夜爽视频| 欧美亚洲激情小说| 黄色AAAAAAAAAAA大片| 中文三一区| 中文字幕日产av人| 亚洲AV秘 精品久久老牛影视| 亚洲中亚日激情视频| 6080yy午夜理论三级一区二区三区无码| 69一区二区| 国产精品久久久蜜臀| 一区二区三区免费岛国片| 亚洲男人的天堂va亚洲男人社| 家庭乱伦麻豆| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 男人的亚洲天堂| 久久五月视频| 亚洲免费在线探花| 久久这里只有精品9| 校园春色综合色| 亚洲成av人片色午夜乱码| 麻豆精品一区二区三区四区免费观看| 九草九九九| 中文字幕视频2区| 999亚洲国产视频| 91精品人妻一品二品三品| 中文字幕-区二区三区四区视频中国| 亚洲精品视频在线播放| 午夜乱轮操逼视频免费看| 啊啊啊好大好深| 99xav| 欧美天天拍| 欧美精品自慰系列寂寞少妇| 欧美性爱无码一区二区三区| 91人妻在线视频| 狠狠入| 呦女网站| 91久久堂| 99热日| 亚洲天堂自拍| 开心六月色| 淮穴色AV| 丁香五月影院| 五月天啪啪| 日本女人操逼| 激情色色| 欧美黄页在线| 韩国女主播青草福利视频| 青草av在线| 免费观看国产不卡av| 欧美Ⅴ性爱| 欧美亚洲激情| 91综合色| 亚洲春色欧美激情自拍| 国产色综合亚洲色综合吹潮| 日韩一级久久毛片| 国产女同视频在线播放| 最新中文字幕精品在线| 91动漫操逼视频| 亚洲成人性| 91精品国产日韩欧美综合| 日产欧美电影一区二区三区| 免费看国产曰批40分钟怎么下载| 中文字幕高清精品一区| 性久久| 91精品女厕偷拍视频| 国产第12页| 看免费一级在线播放毛片| 91啦人妻| 国产精品嫩草久久久久| 熟女五十路一区二区三| 可以在线观看AV的网站| 九九色图| 欧美亚洲丝袜美女电影| 国产午夜视频| 色在线69堂| 亚洲日韩东京热一区| 96国产污污污丝袜| 97天天插| 国产综合久久久麻桃个| 91啦人妻| 欧美在线播放aaaa| 91色艳| 欧美综合第一| 五月天亚洲网| 久久老女人| 亚洲男人综合| 美中日韩无码| 一级黄碟在线看| 亚州高清av| 亚洲中文字幕av| 91久久| 天天狠操| 婷婷精品| 久久水蜜臀亚洲AV无码精品| 婷婷8月天青娱乐| 91丝袜在线观看| 91精品无码久久久久久久| 精品无码久久久久久国产浪潮| 91成人在线免费视频| 狠狠色色| jiujiujiujingpin| 久久精品熟妇丰满人妻99| 国产精品不卡一区二区三区av| 国产精品一区二区亚洲人成毛片| 亚洲操人| 884t在线| 八戒午夜福利理论片| 免费看A片毛毛片在线播| 久久一二三四五六七八九区区区 | 日韩一级特黄av毛片| 成片免费播放| 操逼无毒无码免费视频| 人人么人人操| 精品久久人妻成人网| 天堂九九九九九九九九九| 亚洲男人天堂2013| 中文久久| 麻豆黄色五月天| 熟女熟妇一区二区三区视频| 色欲Av人妻精品一区二| 日本色婷婷| 人妻熟妇久草在线| 91一区二区三区蜜桃| 日日夜夜天天| 职场同事知名国产国产精品久久欧美日韩 | 欧美性爱另类综合| 日韩9999| 欧美色欧美| 99人人干| 亚洲欧美变态| 国产三级日产三级韩国三级 | 日韩无码黄色片| 91九九九馒头| 欧美劲爆第一页| 欧美成人一区二区三区在线播放| 欧天美中出| 欧美日韩国产成人高清| 天天干天天插| 91内射| 婷婷色影院| 99热8| 久久社区一区二区三区| 日韩中文字幕av在线播放| 亚洲国产精品成人久久蜜臀| 成人AV素股で擦久久| 美女啊啊啊啊啊| 另类在线| 青青草一区二区高清无码视频| 精品久久久久久中文| 亚洲 图片 欧美 色图| 精品福利| 嗯嗯嗯啊啊啊在线免费观看| 亚洲毛片基地专区| 极品白嫩福利在线| 人妻少妇久久中文字幕一区二区 麻豆| 国产精品青草综合久久| 久草毛片| 日韩成人精品中文字幕| 东京热天堂网| 91亚洲欧美色图| 综合av社区| 欧美激情欧美精品| 国产一进一出视频网站| 嗯嗯啊啊好大好爽| 午夜丁香| 天天肏天天干| 中美日韩毛片| 欧美日韩日产免费网站看| 久久精品视频在线观看| 蜜乳性色无码专日粉嫩骚逼AV| 狠狠爱夜夜干| 任你爽视频| 久久久青青草| 校园春色亚洲欧洲| 嫩草一区二区在线观看| 国产搭汕a级片| www.狠狠干.coom| 欧美人与动性人交a| 青青草亚洲一区| 国产最火爆久久国产网站网站| 欧美少妇内射| 国产精品一二三在线看| 色图四区| 亚洲精品欧洲精品| 强奸a片网| 伊人九九| 黄网站黄视频网站进入口 | 火箭成精品视频884必出精品| 久久本道| 亚洲一本色道中文无码aV天美| 黑人精品欧美一区二区蜜桃| 精品无人区麻豆乱码久久久| 黄片无码在线制服| 3PAV乱伦视频| 91亚洲欧美综合高清在线| 久操婷婷| 26uuu国产亚洲综合| 国产一区二区三区,在线观看观看 五月开心久久AV官网 | 九九热精彩视频| 五月天婷婷激情| 永久免费av无码网站国产app| av东京热男人的天堂| 超碰免费人人| 国产aⅴ无码片毛片一级网站| 日日躁夜夜躁狠狠躁超爽| 亚洲天堂自拍| 久久久九97| 中文字幕一区二区在线日韩精品| 精品亚洲| 67914在线兔费成人视频| www.一本大99| 水野优香在线观看| 手机看片1025| 国产精品 久久久精品一牛| 少妇熟女视频一区二区三区| 大香蕉综合久久| 久久98| 午夜乱轮操逼视频免费看| 国产精品在线免费| 在线啊啊啊| 欧美日韩一干二干| 欧美第38页| 屌色在线97视频| 国产日产精品久久快鸭的功能介绍| 久久激情婷婷| 一起草高清无码| 性色高清..……| 97精品综合久久网| www.97在线| 天天日夜夜爽| 亚洲天堂无码| 五月天激情影院| 人干人人人操人人摸| 3PAV乱伦视频| 欧美狠狠| 久久久久亚洲| 久久一区二区三区四区五区| 91色欧美| 99热在线只有精品| 91天天综合日韩欧美| 亚洲熟女少妇免费视频| 国产第二页| 麻豆福利视频导航| 亚洲一二三四区机械| 天天操综合网| 操操啪| 99在线免费观看| 桃花色涩综合影院| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久操免费电影| 婷婷激情丁香| 国产午夜精品在线观看| 极品销魂美女一区二区| 无码人妻精品一区二区中文| 黄在线| 91精品啪在线观看国产城中村| 亚洲乱伦图片视频| 911粉嫩人妻| 91狠狠综合久久| 精品视频久久久久九九九九9999| 中文字幕一区 二 区 三 四 五 区日 日 骚| 亚州精人品大香蕉| 日韩美女,国产传媒,视频一区| 校园春色中文字幕AV| 亚洲 综合 第一页| 五月天伊人网| 九九视频黄色片| 加勒比在线视频一区二区三区 | 欧美亚洲自拍另类人妻| 激情五月天插| 99视频自拍| 花野真衣| 2019午夜福利视频| 欧美东京热青青草| 免费成人在线观看91| 欧美亚洲色图另类国产| 日韩欧美经典在线观看| 天天综合色电影| 国产SV一线| 亚洲情色一区二区三区| 啪啪资源网| 青青草视频导航官网| 久久久久久波多野吉衣高潮| 超碰97欧美日韩| 超碰吊日色| 香蕉欧美| 在线视频日韩欧美国产| 视频在线观看一二三区| 99精品丰满人妻无码| 久久精品国产亚洲av水密被窝| 久久久少妇| 精品国产一区二区三区在线播出| 美女黄色一级A视频| 超碰 另类 欧美| 91精品免费| 啊啊啊操死我| 亚洲操人| 大香蕉综合在线| 一卡二卡在线播放| 手机看片91人妻| 欧美日韩国产中文精品字幕自在自线 | 黄色片,com| 深田咏美亚洲精品福利社| 色哟哟国产精品免费网址| 国产精品久久久九九九| a片 xxxx受爽视频| A 天堂在线观看视频| 资源在线观一 二| 美女91在线观看| 美欧色综合| 噜噜噜在线视频| 综合色99| 日韩熟女视频二区| 手机在线视频国内精品| 懂色AV一区二区三区| 欧天美中出| 亚洲 在线| 精品无码久久久久久久久果冻糖心| 国产黄色影片在线观看| 最新加勒比丝袜在线| 久草精品一区 | 精品网站9999| 欧美日韩色| 伊人久久大香线蕉无码| 污污污8888| 日本操逼视频在线| 天天综合精品| 男人的天堂一区| 女人 A一级| 精品国产72| 麻豆亚洲AV成人无码久久精品| www.伪伪| 啊啊啊啊二区好大| 蜜乳中文字幕a在线| 丁香五月婷婷基地| 日本一卡二区在线| 色综合av男人天堂| www.男人天堂| 蜜臀在线视频| 97精品熟女少妇一区| 天天摸夜夜摸| 中文字幕国产在线天堂| 91精品国产综合久久久蜜臀| 啊啊啊免费视频| 九九综合久久| 欧成人在线| 九久9精品| 四虎精品亚洲| 五月综合久久| 久久一区二区蜜桃| 操我啊啊啊啊啊| 亚洲天天在线| 精品美女少妇一区二区三区| 欧美一区二区日韩三区| 人妻 制服 日韩 中文 在线| 在线国产福利网址导航| 久偷拍欧美日韩三区| 少妇一区二区三区高速| 欧美日韩亚洲高清不卡一区二区三区| 日日干天天干夜夜爽| 欧美成不卡网| 性久久久| 果冻传媒一区二区三区| 五月婷色| 少妇久久| 性欧美天天| 亚洲精品成人动漫在线| A啊啊在线观看| 人人操人人操人人操人人操人人操人人人11.CM | 少妇内射www在线观看视频| 久久首页| 婷婷精品久久av影视| 婷婷久热| 老司机天天操| 97中文字幕一区| 天天淫人人妻日日色| 欧美日韩啪啪电影| 色色婷婷五月天| 9丨久久九九九| 中文字幕黑人大片| 大香网站| 国产91美女视频| 一色网男人的天堂| 91性色| 1024手机看片欧美日韩| 8050午夜少妇无码| 人妻丝袜一区二区三区在线| 日韩 欧美 校园一区| 国产男人又猛又粗又爽| 欧美色97| 婷婷色网| 婷婷伊人綜合中文字幕| 另类亚洲一区二区三区| 熟女熟妇伦久久影院毛片一区二区 | 久久久久国产亚洲一区欧美色图日韩 | 蜜臀精品1区2区| 天天干夜夜一操| 9 1果冻精品视频| 日本一区二区三区精品| 新婚人妻扶着粗大强行坐下| 偷拍精品一区二区三区| 激情人妻另类| 人妻精品4K4K4K4K4| 久久婷婷综合国际产色怕| 玖草在线视频| 久久9精品网站| oumeisetu综合| Blackedraw视频一区二区| v91av| 综合av影片| 激情99| aaaa黄片| 日韩免费三级黄片电影| 欧美日韩一干二干| 欧美日韩成人在线| 亚洲强奸乱伦影视网| 精品亚洲| 精品传媒在线一区| 超碰诱惑| 99热国产精品| 啊啊啊啊啊好大好舒服想要| 九九久久九九久久| av天堂5| A片A5445444| 蜜屁av| 亚洲天堂一二| 欧美玖玖爱免费玖玖| 欧美精品丝袜久久久中文字幕| 人妻激情另类| 亚洲天堂区| 欧美日韩性爱操大逼| 日韩操p| 人人操人人摸人人骑| 四季av一区二区凹凸精品小说| 中文字幕一区二区三四五区日日骚| 久久精品欧美一区蜜桃| 人人乐大香蕉| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 极品久久久久久久久久久久久久| 精品乱子一区二区三区99| 久操不卡视频| 国产高潮AA片免费看| 爱av免费| 成人网站 免费观看| 国产福利小视频高清在线观看| 国产真乱mangent| 2023天天操夜夜操| 嫩草美女久久| 天天躁日日躁成人字幕aⅴ| 国产极品精品美女视频| 成在线人在线观看视频| 综合久久六月久久婷婷| 五月天激情四射| 91精品大奶人妻| 99精品无码| 五月色丁香| 国产av白丝| 狠狠搞 亚洲91| 亚洲人妻熟妇三十三区| 中出人妻中文字幕91在线| 熟女熟妇伦久久影院毛片一区二区| 素人伊尹大香蕉免费下载视频| 九久久精| 蜜臀中文字幕| 亚洲好看强奸乱伦| 午夜精品探花| 日本大片日本一区二区免费高清| 欧美色图片91| #NAME?| 精久久久| 欧美巨大性舒爽顶到了| 欧美一二三级精品在线| 性开放中文AV高清无码免费看| 国产网红精品| 国产欧美精品日韩区二区麻豆天美| 情侣开房子拍 日韩无码 女的很漂亮| 96AV久久久| 加勒比色综合| 国产精品久久久亚洲第一牛牛_在线观看| 久久内射| 日韩精品 视频一区二区| 熟女突然公开看18禁影片| 亚洲激情四射| 国产污视频麻豆传媒一区二区| 日韩少妇在线视频| 青青在线视频免费| 成·人免费午夜在线观看| 操迟操逼在巾线Fre看| 久久精品99| 亚洲熟女综合| 蜜臀网址在线| 精品少妇人妻av久久免费| www.色操逼| 九久久九精品视频| A啊啊在线观看| 激情欧美97| 国产乱色国产精品免费视| 国产精品免费视频不卡| 国产精品密臀网在线观看| 97在线播放 | 中文字幕一区二区三四五区日日骚| 欧美亚州综合网图片| 91人妻精华帖| 97视频在线观看播放与子乱对白在线…… | 日少妇视频| 中文字幕av亚洲在线| 爆乳免费黄网站| 99re在线视频国产| 亚洲精品性爱片| 九九色综合| 天天摸天天舔天天操| 人妻精品免费一二三区| 欧美日韩99| 人人搡人人肉久久精品| 成年人网站在线免费观看| 欧美一区二区亚洲天堂| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 婷婷深爱五月| 人人搡人人肉久久精品| 草草草视频在线免费看| 日韩成人精品中文字幕| 色偷偷超碰亚洲| 国产丝袜美女在线一区| 少妇超碰在线| 97chaopengongkai| 日韩免费性爱视频在线观看| 九九国产| av午夜影院在线播放| 欧美综合色站| 东北少妇高潮zzzz| 成人精品电影| 人人模人人看| 国产欧美精品日韩区二区麻豆天美| 欧美熟妇精品黑人巨大91| 日本性爱不卡视频| 国内97干免费看| 亚洲精品人妻在线| 97色涩| 欧美性生活男人的天堂| 亚洲色图国产另类| 免费αV在线视频| 久九九九九九九热| 黄片qw| yiren97| 51国产午夜精品视频| 99re8超碰| 免费中文综合精品| 秋霞午夜视频一区二区| 欧美性爱日韩性爱| 亚州九九九精品视频| 2019天天干天天操| 婷婷五月天色网| 亚洲国产日韩欧美熟妇在线| 国产后入式在线观看| 丝袜大香蕉| 骚女天天综合网| 一本一道人妻久久一区二区三区 | 日韩午夜国产| 亚洲一区二区三区欧美日韩| 欧美激情一| 婷婷伊人网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 九九精品无码专区免费| 亚洲熟女乱色一区二区三区久久久| 国产黄色 A 片免费看| 五月天欧美色图| 丁香激情网| 色姑娘综合网| 天天夜夜久久| 精品久久久亚洲AV成人网站| 亚洲天堂加勒比| 亚洲AO在线| 中文字幕亚韩| 精品一区二区三区麻豆| 麻豆性爱视频在线播放| 嫖老熟女A片一二三区| 国产精品午夜福利| 欧美最婬乱婬爆婬性视频| 色婷婷视频| 精品人妻15区| 91久久久视| 天天插天天操| 日韩免费簧片| 久久久久幕乱码| 亚洲色偷偷色噜噜狠狠99网| 国产色产精品在线观看| 欧亚不卡| 亚洲色图日韩丝袜制服一区二区五月在线| 久久久精久久久| 高清无码 国产精品| 亚洲日韩天堂| 少妇精品久久久八区九区| 99精品无码| 顶级丝袜熟女一区二区三区| 试看60秒 爽| 色大香蕉97N| 小草精彩毛片| 92午夜免费福利视频| 三上悠亚在线毛片91| 黄站在线免费观看| 三上制服丝AV| 99人人干| 老熟女乱子伦中文字幕一区二区| 九热久| 91天天综合在线观看| 中文字幕乱碼在线| 婷婷色中文字幕| 久久激情亚洲精品无码?V| 亚洲一二三四区| 久久精品男人的天堂| 色九九九九| 男人的天堂2018东京热啪啪啪| 国产熟女完整版中字| 在线观看不卡一区二区三区| 亚洲一区二区AV| 大香交| SUV一区二区在线看| 91爱综合| 又黄又爽在线观看视频| 亚洲欧美国产日本一区二区三区| 国产精品人妻熟女aⅴ| 性色AV网站| 91天天综合网| 日韩人妻丝袜美腿中文| 九九热精彩视频| 东北女人被操| 大香蕉伊人在线成人AV在线观看| 亚洲情色婷婷五月天| 在线播放中文字幕| 综合婷婷| 中文字幕 国产 精品| 久操网线| 国产a级午夜毛片| 手机在线观看不卡无码av| 激情无码日韩| 国产午夜激片Av毛片不卡| 免费日韩黄片| 青娱乐亚洲自拍| 手机在线中文字幕国产 | 97超碰中文| 蜜臀av中文字幕| 久久久91福利姬| 日本黄色天堂| 久久久免费高清中文视频| 日本免费一区二区不卡| 99re这里只有精品2| 国产AV线| 九九av| 亚洲日本天堂| 大但人体久久久久| 色逼综合| 免费岛国一级片| 2017天天插| 老司机福利青青草| 国产av激情无码久久天堂| 久久精品中文字幕观看| 18禁精品网站在线看| 免费在线黄片视频| 青娱乐欧美激情一区二区 | 黄色av一区二区在线| 九热视频| 色啪网| 怡红院视频在线| 成人在线视频一区| 很狠操| 玖玖爱视频网站| 国产精品夜夜| 精品美女久久久久| 黄色性爱网网| 屌逼麻豆| 神马久久久久眼| 欧美天堂第二区| 中文字幕免费在线观看| 日韩精品资源专区二区| 欧美一区二区三区另类精品| A片 AV一级在线播放观看免费 | 91久久精品蜜臀| 亚洲综合图文| 久久精品无码熟妇一区二区三区视频导航| 亚洲交性| 欧美大香蕉同搞| 九九色综合| wwwss在线观看| 天天看片麻豆| 亚洲色性| 亚洲囯产精品女人久久久| 91麻豆va国产精品| 丁香五月天婷婷姐| 丰满熟女人妻一区二区三五十一路| 91老司机在线| 伊人五月天激情| 99亚亚热| 丝袜色综合| 国产v片在线免费观看| 黑人黄片在线免费观看| 久久av网| 992大香蕉| 人妻干天天| 亚洲 图片 综合91| 人妻熟女一区二区| 强被迫伦姧在线观看无码网站| 成人福利视频网| 天天干天天日天天射黄色大片| 久久一二三四五六七八九区| 日本爽爽爽爽爽爽免费视频| 久久午夜伦| 日本孕妇孕交| 插入逼91| 国产乱码久久| 婷婷丁香人妻 | 日本布卡一区二三区| 变态乱伦伪娘灌肠一区二区| 久久男人的天堂国产| 欧美综合色| 欧美偷拍区| 天天日日本| 日韩综合色图| 91综合在线| 中文字幕精品三级久久久| 国产一区二区三区白丝| 在现视频女上位好爽| 天天干夜夜操一区二区| 国产精品探花视频| 97超碰巨乳| 色y情视频免费看| 91色碰| 亚洲人久久久久日| 丁香色婷婷| 91九色丰满高潮| 人人妻人人狠人人| 欧美日韩亚洲高清不卡一区二区三区| 亚洲国产一级黄色视频| 人妻天天夜夜爽一区二区| 久久精品女同亚洲女同13| 午夜福利视频在线一区| 久久久久久久久久黄色网| 国产农村妇女毛片精品久久| 五月婷婷久久综合| 欧美特黄视频网站| 熟女人妻一区二区三区| 亚洲瓯美色图| 91被操| 成人老鸭窝人人在线视频| 精品人妻一区二区免费蜜桃视频| 五月婷婷综合网| 久久粉色| 大香蕉伊人亚洲| 久久精品人妻一区| 国产黄色动态精品| 眼镜人妻101.com| 大香蕉欧美伊| 国产精品激情久久久久久久| 激情小说亚洲视频| 日韩成人网址| 日本色日夜干| 麻豆福利视频导航| 亚洲色系另类精品国产| 传媒免费一区二区三区| 九色在线熟女国产黑人| 91美女高潮| 大香蕉男女超碰精品在线| 欧美色青| 大香蕉啪啪啪啪在线| 啪啪资源网| 97超色| 丁香五月偷拍| 好色综合| 四虎在线观看网站| 午夜男人一级A片7777| 97爱亚洲| 91艹逼精品| 亚洲AV无码久久久国产精品| 国产AV中文| 97亚洲欧美日韩| 91黑人无码激情在线| 果冻传媒A片麻豆熟妇人妻| 日韩av熟女一区二区三区成人| 亚洲黄色视频在线观看视频| 少妇丝袜在线观看AV| 天天操天天插| 8x福利精品第一福利视频导航| 青青草玖玖爱| 青青青操| www.av在线视频| 亚洲欧洲日韩中文字幕一区| 亚洲棕合电彰| 黄片免费看黄片免费看| 国产色图乱伦| 天天插天天操天天摸天天射天天看| 色五月综合| 国模无码人体一区二区三| 国产熟码AV| 欧美嗯啊……在线观看视频免费| 男人的天堂2018| AV色五月天| 麻豆60秒| 强奸乱亚洲| 香伊人在线| 麻豆成人AV| 天堂伊人久久| 精品无码一区二区| 粉嫩在线一区二区懂色| 人人看人人插| 99999国产| 极品色电影院| 国产精品九9| 丁香五月自拍| 黄片aaaaa一区| 久久久新亚洲AV| 亚洲骚逼少妇| 欧美亚洲日韩16色| 国产嫩草精品A88AV在线| 日本肉体xxxx裸交| 特级毛片特黄久久免费看| 精品无吗m| 欧美日韩不卡传媒| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 精品女同一区| 麻豆精品三区视频| 欧美亚综合色图| 欧美精品四区| 免费毛片在线播放| 国产美女mm131爽爽爽爽| 超碰精品国产无码| 中文字幕欧美日韩三级| 亚91网| 欧美第五页| 校园春色宗合网| 媚薬在线视频麻豆| 日本午夜福利视频| 操我啊啊啊啊啊| 九九色色| 精品 码产区一区二-1080P高清在线www-B029AV| 久久直播国产| 精品亚洲黄色片 国产精品导航一区二区| 成人一二| 黄色免费网| 91精品人| 国产精品97视频| 天天综合网~91| 97中文字幕一区| 2017天天操天天日| 亚欧操逼片在线观看 | 人人性爱视频免费| 9 7超碰在线免费观看| 91狠婷| 亚洲高清无毛一区二区| 中文字幕亚韩| 婷婷大香蕉| 老熟女91av| 鸥美极品| 国产精品无码av嫩草| 人妻天堂综合网| 少妇色综合| 啊啊啊啊好多水| 亚洲操逼视频网站| 久久久久密臀一区二区| 97操B| 麻豆国产96在线| 九九九久久久久| 男人综合网| 国产强上视频在线观看| 嗯……啊…嗯嗯…啊…好舒服| 91精品导航| 日本3级一区二区免费| 久久精品一区一起草| 国产午夜激片Av毛片不卡| 91亚洲丝袜| 久精品无码av一区二免费国产在线观看 | 91jk色拍| 久久神马| 男生女生啊啊啊啊| 国产女人高潮嗷嗷嗷叫小说| 夜夜国产一区| 亚洲人妻中文高清| 无码二级三级| 98色网| 老司机天天操| 香蕉国产97| 台湾肥佬网一区二区三区| 淫荡少妇免费| 成年无码动漫av片无尽在线 | 欧美日综合| 精品网站9999| 999国产精品999| 1769一区| 97精品全部| 国产农村妇女精品一二区| 中文字幕一区二区免费在线| 91精品导航| 亚洲第一色页夜| 一区二区三区四区色图| 中文精品一区二去| 丰满人妻一区二区三区蜜桃视频| 中文字幕97色| 亚洲影视综合网| 国产做?爰片久久毛片?片美国| 色吧5亚洲| 日韩91网站| 漂亮人妻被强中文字幕hd| 亚洲日韩欧美一区二区| 有码人妻系列| 大香蕉操久久| 99热亚洲| 人妻少妇视频在线播放| 国产Aα| 午夜国产乱伦视频| 亚洲色婷婷久久91| site:sinbotex.com| 国产搭汕a级片| 97久久久久| 中文字幕一区二区三区四五区| 午夜性| 亚洲 欧美 另类 日韩 人妻一区| 色婷婷五月综合激情中文字幕| 久久精品中文字幕观看| 另类图片欧美激情综合| 亚洲色图综合| 蜜臀AV午夜精品久| 本道在线| 欧美在线电影| 欧美影院一区二区三区| 日本人妻伦在线中文字幕| 又大又大又大又粗爽高潮观看| 日语五十路和六十路亚洲国产精品| 97精品国产| 一级特级aaaa毛片免费观看| 97人人干| 青青草视频在线观看一区二区| 情色五月天久久久| 日韩少妇在线视频| 欧美宗合色| 日韩熟女乱伦中出| 亚洲婷婷五月天| 日日A∨| 91亚洲欧美激情| 中文字幕一区二区在线日韩精品| 日韩乱伦影音先锋| 国色天香av| 亚洲宗合网| 国产色产精品在线观看| 久久久久久久久成人av解说| 久久9久9久99久9久9| 97中文字幕一区| 欧美亚洲色图另类国产| 青青11操操操操操操操操| 亚洲淫色网中文| 亚洲日韩精品久久久久一区壹牛 | 免费簧片在线观看| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 国产熟女一区二区| 欧美视频一区二区在线| 亚洲中文字幕有码视频一区二区三区| 超碰在线在公开超碰在线在公开| 青娱乐淫乱1314| 91久久国产综合久久| 夜夜嗨一区二区三区直播内容| 家庭乱伦网站国产| 国产精品久久久久999| 人人操人人色网| 蜜桃久久久久久久| 久久日本熟妇熟色一区| 色综合美国| 日韩亚洲欧美中文字幕| 欧美日韩99精品麻豆传媒| 亚洲欧美不卡线| 久久欧美按摩999| 亚洲中字幕日本一区二区三区| 女色视频社区| 中文字幕一区二区三区字幕| A啊啊在线观看| 日韩乱伦影音先锋| 色97欧美| 精品久久久中文字幕不| 亚洲自拍天堂| 96精品久久久| 野狼激情网| 波多野42部无码喷潮在线观看| 亚洲少妇在线影音| 日本韩欧美在线播放a| 国产久久久久久| 久久久熟妇熟女国产| 99热只有这里有精品| 中文字幕午夜精品久久久| 91N欧美| 亚洲一级性爱视频免费看| 亚洲色婷婷综合久久一区二区三区| 99热99re超碰精品| 性videos欧美熟妇hdx| 亚洲蜜臀精品视频久久| 九九视品黄色| 天天爽人人综合免费7799| Sekablack无码一区| 伊人久久AV诱惑悠悠| 97爱啪| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 91在线美女| 大香蕉五月天| 国产精选三级在线观看| 日本久久女同性恋视频| 亚洲情色 欧美| 精品人妻一区二区三区免费视频| 久偷拍| 人妻插插人妻人| www超碰| 亚洲综合激情五月久久| 超碰成人免费| 3p国产色噜噜一区| 户外裸露刺激视频第一区| 日韩簧片免费看| 国产亚洲日韩欧| 国产一进一出视频网站| 国产在线播放成人免费| 精品一区二区三区麻豆| 久久系列| 亚洲欧美一区二区网址| 一级人妻性爱视频| 一本大道不卡一二三区| 乱伦av.com| 99热啪啪| 亚洲综合影视| 久久久一区二区| 久9久9久9久9久9久9| 综合色区偷拍| 国产亚洲精品无码三区| 日韩综合成人免费视频| 操逼操网| 图色综合网| 2025亚洲男人天堂| 日本天天干天天日一区| 色妺妺AⅤ| 欧美黄色大片在线观看| 久久久久国产精品片区无码直播| 一区二区三区视频在线观看免费| 女优视频第10页| 无毛精品| 亚洲av性爱电影| 熟女六十路| 国产精品视频播放| 玖色av| 日本免费专区| 九九九久千久久激情蜜桃在线看 | 日韩ab网| 狠狠91| 人妻少妇蜜桃视频欧美一区| 蜜桃色院一区久久| 3PAV乱伦视频| 草草影院在线视频| 久久成人东京热人妻| 国产精品一区午夜福利| 人人操人人精品影片| 老女人综合| 色吧综合网| 日本精品加勒比海一区| 亚洲黄色网址视频| 久久精品99久久久久久| 日韩无码精品综合久久| 99.色网| 亚洲色图亚洲| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久精品99| 色一色综合网| 区自美91| 色色五月天婷婷| 日韩小电影| 激情五月综合| 中国人高清www色视频免费| 97精品国产97久久久久久| 天堂亚洲欧美| 91亚州日韩高清| 黄色操人| 偷拍综合亚洲| 超碰成人免费| 曰韩人妻中文字幕在线| 女同性恋一区二区三区精品视频| 国产精品麻豆免费视频| 日韩高清一二三| 久久婷婷伊人| 久久黄片国产一区二区| Aa东京男人的天堂| 乱色视频中文字幕| 国产精品爆乳懂色蜜乳| 亚洲天堂资源| 久久久久13| 亚洲色 国产 欧美 日韩| 夜夜嗨视频| 好舒服视频| 亚洲精品丝袜| 天堂精品在线| 色综合天天| 91美女视频| 91久久国产精品| 97公开久久| 久久黄色网址| 天天日日夜夜| 欧美日韩99| 中文字幕一二区二三区人妻专区| 亚洲图片第一页| 一区二区三区一亚洲中文字幕、综合区灬 | 亚洲āv网址在线观看| 亚洲综合在线91| 偷拍导航视频网站| 97就爱干| 精品国产乱码久久久兰草影视| 久久av网|