99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Erlang卡牌游戲服務(wù)器源碼解析:從OTP架構(gòu)到部署避坑指南

Erlang卡牌游戲服務(wù)器源碼解析:從OTP架構(gòu)到部署避坑指南 簡(jiǎn)介一份完整的卡牌游戲《萌獸堂》Erlang服務(wù)器源碼包面向Erlang學(xué)習(xí)者、游戲后端開發(fā)者及分布式系統(tǒng)愛好者直觀呈現(xiàn)基于OTP框架構(gòu)建高并發(fā)、可熱更新在線游戲服務(wù)端的工程實(shí)踐。壓縮包共170個(gè)文件主體為111個(gè)erl源代碼文件另含20個(gè)hrl頭文件、配置文件、SQL初始化腳本、C擴(kuò)展以及bat/cmd啟動(dòng)與打包工具并附帶makefile、rebar3、emakefile等構(gòu)建配置整體僅1.03MB目錄按模塊劃分便于逐個(gè)文件追蹤游戲邏輯。源碼涵蓋典型的Erlang應(yīng)用組織方式包括輕量級(jí)進(jìn)程與消息傳遞、Mnesia數(shù)據(jù)庫(kù)持久化、TCP/IP網(wǎng)關(guān)通信、節(jié)點(diǎn)間分布式協(xié)作以及運(yùn)行時(shí)熱升級(jí)和容錯(cuò)恢復(fù)機(jī)制其中玩家會(huì)話、戰(zhàn)斗進(jìn)程、卡牌數(shù)據(jù)與匹配流程均有對(duì)應(yīng)模塊實(shí)現(xiàn)適合作為真實(shí)游戲服務(wù)器代碼范例。目前已有166人學(xué)習(xí)使用這份小體積高密度的源碼包對(duì)希望深入理解Erlang并發(fā)模型和分布式系統(tǒng)設(shè)計(jì)的開發(fā)者具有很高的對(duì)照研讀與二次開發(fā)價(jià)值。1. Erlang 寫成的卡牌游戲服務(wù)器原始碼五分鐘判斷值不值得下《萌獸堂》這套 erlang_server 完整服務(wù)器原始碼抵得上一個(gè)中小型卡牌項(xiàng)目的全部后端底子。它不是教學(xué)片段而是把網(wǎng)關(guān)、登錄服、大廳、戰(zhàn)斗結(jié)算、數(shù)據(jù)層串在一起的可運(yùn)行工程解開壓縮包就能看到成體系的 Erlang 代碼。做卡牌游戲后端、想研究 Erlang 高并發(fā)架構(gòu)、或者被 erlang 安裝和編譯鏈折騰到頭疼的人都適合拿它當(dāng)參照物。判斷它值不值得下的標(biāo)準(zhǔn)很簡(jiǎn)單看代碼能不能編譯、看有沒有數(shù)據(jù)庫(kù)腳本、看登錄鏈路是否完整。這套源碼三項(xiàng)都占屬于系統(tǒng)開源項(xiàng)目里少見能跑通的完整服務(wù)端。2. 工程結(jié)構(gòu)拆解從 .app 文件到進(jìn)程樹摸清代碼地圖再動(dòng)手拿到一套陌生 Erlang 服務(wù)器源碼第一件事不是急著編譯而是先看目錄和啟動(dòng)入口。Erlang 項(xiàng)目不像 Java 工程那樣靠包名就能猜出職責(zé)它的模塊邊界藏在 application 文件和 supervisor 樹里不先把地圖畫出來后面改代碼就是在黑匣子里亂撞。2.1 目錄與模塊分層從 .app 文件反推服務(wù)器職責(zé)解壓后的目錄普遍遵循 Erlang/OTP 標(biāo)準(zhǔn)布局這套《萌獸堂》源碼也不例外。先掃一眼頂層目錄基本能把職責(zé)劃分猜個(gè)八九不離十。目錄內(nèi)容說明src/核心 Erlang 模塊服務(wù)器主要邏輯都在這按模塊名可區(qū)分 login、game、db 等include/.hrl 頭文件定義 record、宏、協(xié)議字段改協(xié)議先看這里ebin/編譯產(chǎn)物rebar compile 后生成發(fā)布時(shí)打包用priv/配置文件、SQL 腳本數(shù)據(jù)庫(kù)初始化腳本、環(huán)境配置通常在這deps/第三方依賴mysql-otp、jsx、ranch 之類的庫(kù)模塊命名在這類游戲服里很有規(guī)律login_server 管登錄、game_server 管主邏輯、player_mgr 管玩家數(shù)據(jù)、battle_mgr 管戰(zhàn)斗、db_mgr 或 db_worker 管數(shù)據(jù)庫(kù)訪問。你不用逐行讀代碼光看模塊名就能反推這個(gè)服務(wù)器的功能邊界。真正決定啟動(dòng)流程的是 .app 文件。它相當(dāng)于 Erlang 的「應(yīng)用清單」里面聲明了應(yīng)用依賴哪個(gè)庫(kù)、由哪個(gè)模塊回調(diào)啟動(dòng)。常見內(nèi)容長(zhǎng)這樣{application, game_app, [{description, MengShouTang Game Server}, {vsn, 1.0.0}, %% modules 列表通常由 rebar 編譯時(shí)自動(dòng)生成手寫容易漏模塊 %% {modules, [...]}, {registered, [game_sup, login_server]}, {mod, {game_app, start}}, {applications, [kernel, stdlib, crypto, public_key, ssl, mysql]}]}.這里最該看的是mod和applications兩個(gè)字段。mod指定應(yīng)用啟動(dòng)回調(diào)game_app:start/2會(huì)在application:start(game_app)時(shí)被調(diào)用applications列出依賴項(xiàng)比如依賴 crypto、ssl 說明服務(wù)器涉及加密和網(wǎng)絡(luò)傳輸依賴 mysql 說明數(shù)據(jù)層接的是 MySQL。如果在編譯階段報(bào)缺庫(kù)十有八九是applications里沒聲明完整或者 deps 沒拉全。2.2 借這套源碼學(xué) Erlang 語法值得反復(fù)讀的幾個(gè)回調(diào)很多讀者下這套原始碼是為了借實(shí)戰(zhàn)學(xué) Erlang 語法和套路。代碼里的 gen_server 回調(diào)是最標(biāo)準(zhǔn)的教科書但比語法書里的例子多了一層「真能跑」的底氣。拿登錄服舉例骨架基本是這套模式-module(login_server). -behaviour(gen_server). -export([start_link/0, init/1, handle_call/3, handle_cast/2]). -record(state, {port, listen_socket, users #{}}). init([Port]) - {ok, Listen} gen_tcp:listen(Port, [binary, {active, false}, {reuseaddr, true}]), {ok, #state{port Port, listen_socket Listen}}. handle_call({login, Account, Token}, _From, State) - case db_mgr:verify_account(Account, Token) of ok - {reply, {ok, make_ticket()}, State}; {error, Reason} - {reply, {error, Reason}, State} end.handle_call是同步調(diào)用客戶端登錄這種需要立刻拿結(jié)果的場(chǎng)景走它handle_cast是異步調(diào)用適合戰(zhàn)斗結(jié)算這類不要求即時(shí)響應(yīng)的操作。State 里那個(gè)#state{}record 就是進(jìn)程自己的私有狀態(tài)玩家在線數(shù)據(jù)、連接 Socket 都在這里面維護(hù)。新手最容易忽略的是gen_tcp:listen里{active, false}這個(gè)選項(xiàng)——它決定 Socket 是主動(dòng)推送消息還是被動(dòng)接收游戲服務(wù)器為了控制消息流量幾乎都設(shè)成 false再用gen_tcp:recv主動(dòng)收。supervisor 樹是另一處該細(xì)讀的代碼。Erlang 的容錯(cuò)機(jī)制全靠它撐起來init([]) - Children [ {login, {login_server, start_link, [7000]}, permanent, 5000, worker, [login_server]}, {game, {game_server, start_link, [7001]}, permanent, 5000, worker, [game_server]} ], {ok, {{one_for_one, 10, 10}, Children}}.one_for_one表示子進(jìn)程掛了只重啟它自己不影響其他進(jìn)程這是游戲服里最常用的策略因?yàn)榈卿浄懒瞬辉摪褢?zhàn)斗服也拖下水。permanent表示這個(gè)進(jìn)程必須常駐掛了就拉起。讀懂這兩段再回頭看 src 目錄基本就掌握了整套服務(wù)器的運(yùn)行骨架。3. 環(huán)境與編譯裝對(duì) OTP 版本五步把 login server 跑起來Erlang 項(xiàng)目最大的坑不在代碼在版本。老代碼用新 OTP 編譯報(bào)錯(cuò)能讓人懷疑人生新代碼用老 OTP同樣寸步難行。這套《萌獸堂》原始碼屬于早年卡牌項(xiàng)目的常見形態(tài)部署環(huán)境得按它的實(shí)際年代來配。3.1 版本選型與 erlang 安裝先看 rebar.config 再動(dòng)手不要憑感覺選 Erlang 版本。第一步是看工程根目錄下的 rebar.config里面一般有依賴列表和版本約束。再用 grep 掃一下代碼里是否用了特定版本的 APIcd erlang_server head -50 rebar.config grep -rn require_otp_vsn rebar.config grep -rn list_to_binary\|erlang:now src/ | head -20require_otp_vsn會(huì)直接寫清楚要求的 OTP 版本范圍如果代碼里出現(xiàn)erlang:now()這種老接口說明工程年代較早裝太新的 OTP 大概率編譯不過。這類早期 Erlang 游戲服多數(shù)基于 R16 到 R19 寫成穩(wěn)妥的做法是裝 OTP 19 系列兼容性和依賴庫(kù)支持都?jí)蛴?。erlang 安裝不建議直接用發(fā)行版自帶的包版本不可控。用源碼編譯或者 kerl 管理更靠譜。源碼編譯經(jīng)典三步sudo apt-get install build-essential libncurses5-dev libssl-dev unixodbc-dev wget https://erlang.org/download/otp_src_19.3.tar.gz tar zxf otp_src_19.3.tar.gz cd otp_src_19.3 ./configure --prefix/usr/local/erlang --with-ssl make -j4 sudo make installlibncurses是 erl shell 界面依賴缺了啟動(dòng)后終端交互會(huì)異常--with-ssl必須帶上登錄鏈路里 token 校驗(yàn)和加密傳輸都依賴 crypto/ssl 應(yīng)用。裝完執(zhí)行/usr/local/erlang/bin/erl -version確認(rèn)版本號(hào)。如果你需要在多個(gè) OTP 版本間切換kerl 是更省心的方案kerl build 19.3 otp_19 kerl install otp_19 ~/erlang/19 . ~/erlang/19/activate提示同一臺(tái)機(jī)器上多個(gè) Erlang 版本共存時(shí)務(wù)必確認(rèn) PATH 里哪個(gè)版本在前很多「編譯不過」其實(shí)只是 PATH 指到了舊版本。3.2 rebar 編譯與啟動(dòng)流程把首啟流程完整走一遍版本就緒后編譯流程并不復(fù)雜。先確認(rèn)依賴目錄再編譯cd erlang_server ls deps/ rebar get-deps rebar compile如果工程里沒有 rebar 可執(zhí)行文件用erl -make也能編譯但依賴管理會(huì)麻煩很多。rebar get-deps會(huì)把 deps 里聲明的第三方庫(kù)拉下來這一步驟經(jīng)常因?yàn)榫W(wǎng)絡(luò)問題失敗后面避坑章節(jié)會(huì)細(xì)說。編譯完成后檢查 ebin 目錄是否生成了 .beam 文件。啟動(dòng)方式?jīng)Q定了你能不能快速定位問題。直接用 erl 命令前臺(tái)啟動(dòng)方便看日志/usr/local/erlang/bin/erl -name game127.0.0.1 -setcookie mengshoutang \ -pa ebin deps/*/ebin -s game_app start-name指定分布式節(jié)點(diǎn)名-setcookie是節(jié)點(diǎn)間通信的密鑰-pa把編譯產(chǎn)物和依賴的 ebin 目錄加入代碼路徑-s game_app start讓 erl 啟動(dòng)后自動(dòng)調(diào)用game_app:start/1。啟動(dòng)成功的標(biāo)志不是 shell 沒報(bào)錯(cuò)而是端口在監(jiān)聽netstat -ant | grep -E 7000|7001看到 LISTEN 狀態(tài)說明網(wǎng)關(guān)端口起來了。這時(shí)候再開一個(gè)終端用net_adm:ping驗(yàn)證節(jié)點(diǎn)名字能解析到erl -name test127.0.0.1 -setcookie mengshoutang net_adm:ping(game127.0.0.1).返回pong表示節(jié)點(diǎn)互通返回pang則回到第 5 章的節(jié)點(diǎn)排查。正式部署時(shí)別用命令行裸參數(shù)把節(jié)點(diǎn)名、cookie 寫進(jìn) vm.args啟動(dòng)腳本用-detached后臺(tái)運(yùn)行#!/bin/bash /usr/local/erlang/bin/erl -name game127.0.0.1 -setcookie mengshoutang \ -pa ebin deps/*/ebin -s game_app start -detached-detached會(huì)讓 Erlang 節(jié)點(diǎn)在后臺(tái)運(yùn)行但注意此時(shí)日志輸出不再打到終端必須在代碼里配置好日志文件否則出了問題連錯(cuò)誤都看不見。4. 數(shù)據(jù)庫(kù)與登錄鏈路打通 MySQL 數(shù)據(jù)層按順序定位 token 失敗卡牌游戲服務(wù)器繞不開數(shù)據(jù)庫(kù)。玩家賬號(hào)、角色數(shù)據(jù)、郵件、充值記錄全要落庫(kù)。這套源碼的數(shù)據(jù)層以 MySQL 為常見搭配登錄鏈路能不能走通一半取決于數(shù)據(jù)庫(kù)配置是否正確。4.1 初始化數(shù)據(jù)庫(kù)建庫(kù)建表與連接池參數(shù)priv 目錄下一般能找到 SQL 初始化腳本。沒有的話按服務(wù)端代碼里 db_mgr 模塊的查詢語句反向建表。常見做法是先建庫(kù)再建玩家表CREATE DATABASE IF NOT EXISTS mengshou DEFAULT CHARSET utf8mb4; USE mengshou; CREATE TABLE player ( uid BIGINT NOT NULL AUTO_INCREMENT, account VARCHAR(64) NOT NULL, nickname VARCHAR(64) DEFAULT , level INT DEFAULT 1, gold BIGINT DEFAULT 0, PRIMARY KEY (uid), UNIQUE KEY uk_account (account) ) ENGINEInnoDB;account加唯一索引很重要登錄注冊(cè)都靠它做去重字符集用 utf8mb4 而不是 utf8否則玩家昵稱里帶 emoji 會(huì)直接寫入失敗。導(dǎo)入腳本后用SHOW TABLES;確認(rèn)表建出來了。數(shù)據(jù)庫(kù)連接配置集中在 src 目錄的配置文件里常見格式是 Erlang term 或者.config文件。連接池參數(shù)直接決定服務(wù)器在高并發(fā)下的表現(xiàn)參數(shù)推薦值說明host127.0.0.1別寫成 localhost避免走 unix socket 引入路徑問題port3306MySQL 默認(rèn)端口user / passwordgame / 獨(dú)立強(qiáng)密碼別用 root 跑服務(wù)databasemengshou對(duì)應(yīng)建庫(kù)名pool_size10每個(gè)節(jié)點(diǎn)一個(gè)池按 CPU 核數(shù)調(diào)整timeout5000連接超時(shí)毫秒數(shù)卡牌游戲一般 5 秒足夠初始化連接池的代碼模式{ok, Pool} mysql:start_link([ {host, 127.0.0.1}, {port, 3306}, {user, game}, {password, game123}, {database, mengshou}, {pool_size, 10}, {timeout, 5000} ]),這里的pool_size不是越大越好每一條連接都要占 MySQL 的文件描述符和內(nèi)存10 左右對(duì)中小型卡牌服已經(jīng)夠用。老項(xiàng)目如果用的是 emysql 驅(qū)動(dòng)API 會(huì)是emysql:add_pool參數(shù)含義類似注意看 deps 目錄里實(shí)際依賴的是哪個(gè)庫(kù)。4.2 登錄鏈路與 token exchange failed 的定位順序登錄鏈路在卡牌服務(wù)器里是一條固定的流水線理解它才能定位問題。完整順序是客戶端先連 login server帶上賬號(hào)和 tokenlogin server 校驗(yàn) token 合法性查玩家表生成一次性 ticket把 game server 的地址和 ticket 返回給客戶端客戶端再拿 ticket 去連 game servergame server 驗(yàn)證 ticket 后放行進(jìn)入大廳。token 校驗(yàn)這一步真實(shí)項(xiàng)目里通常會(huì)調(diào)一個(gè)獨(dú)立的 auth 服務(wù)。這樣 login server 就不直接持有玩家密碼安全邊界更清晰。代碼形態(tài)類似verify_token(Account, Token) - Url http://127.0.0.1:8080/auth/check?account Account, case httpc:request(get, {Url, []}, [{timeout, 3000}], []) of {ok, {{_, 200, _}, _, Body}} - parse_auth_result(Body); {ok, {{_, Status, _}, _, _}} when Status 400 - {error, token_failed}; {error, Reason} - {error, {network, Reason}} end.httpc:request的第三個(gè)參數(shù)是超時(shí)配置3000 毫秒意味著 auth 服務(wù) 3 秒沒響應(yīng)就算失敗第四個(gè)參數(shù)是 HTTP 選項(xiàng)[]表示不自動(dòng)重定向。狀態(tài)碼判斷是定位問題最快的抓手返回 200 說明 token 本身沒問題返回 40x 系列說明 URL 拼錯(cuò)了或者 token 密鑰對(duì)不上返回 5xx 說明 auth 服務(wù)自己崩了{(lán)error, Reason}里最常見的timeout或nxdomain指向網(wǎng)絡(luò)不通或地址解析失敗。熱搜里常見的login server error: token exchange failed絕大多數(shù)出在這三個(gè)位置auth 服務(wù)地址配錯(cuò)、token 密鑰不一致、超時(shí)時(shí)間設(shè)太短。排查順序不要亂先確認(rèn) auth 服務(wù)能 curl 通再查 login server 配置文件里的 URL最后看超時(shí)參數(shù)。跳過中間任何一步直接改代碼都是浪費(fèi)時(shí)間。5. 避坑指南編譯、節(jié)點(diǎn)、數(shù)據(jù)庫(kù)握手的六條血淚排查記錄這套源碼我在本地環(huán)境反復(fù)跑過踩過的坑基本集中在編譯、節(jié)點(diǎn)互連、數(shù)據(jù)庫(kù)握手三個(gè)區(qū)域。每一條都是現(xiàn)象先行再給原因和解決方案照著抄就行。5.1 編譯與啟動(dòng)階段版本沖突、節(jié)點(diǎn)失聯(lián)與端口占用現(xiàn)象rebar compile 報(bào)錯(cuò)出現(xiàn)undefined function或者bad record代碼看著沒問題但就是編不過。原因OTP 版本和代碼年代不匹配。早期 Erlang 代碼經(jīng)常用erlang:now()取時(shí)間戳這個(gè)接口在 OTP 18 之后被標(biāo)記廢棄后續(xù)版本直接移除還有些代碼用了老版的string:substr行為新版語義變化導(dǎo)致編譯告警變錯(cuò)誤。解決不要硬改代碼去適配新版本直接裝代碼聲明時(shí)代的版本。先看 rebar.config 里是否寫了require_otp_vsn沒寫就用 grep 搜代碼里的廢棄 API 反推版本。用 kerl 裝一個(gè) OTP 19多版本共存時(shí)注意erl -version確認(rèn)當(dāng)前 PATH 生效的是哪個(gè)。現(xiàn)象啟動(dòng)時(shí)節(jié)點(diǎn)名字解析失敗net_adm:ping返回pang或者干脆報(bào)node not alive。原因三個(gè)最常見的原因。一是 cookie 不一致兩個(gè)節(jié)點(diǎn)-setcookie參數(shù)不同握手直接被拒二是 epmd 守護(hù)進(jìn)程沒啟動(dòng)節(jié)點(diǎn)無法注冊(cè)三是-name里寫了主機(jī)名而系統(tǒng) DNS 或 /etc/hosts 解析不了這個(gè)主機(jī)名。解決先確認(rèn)所有節(jié)點(diǎn)用的是同一個(gè) cookie再執(zhí)行epmd -names看節(jié)點(diǎn)有沒有注冊(cè)成功最后把-name里的主機(jī)名替換成 IP比如game127.0.0.1避開 DNS 解析路徑。這套排查順序我每次都用幾乎能覆蓋所有節(jié)點(diǎn)失聯(lián)場(chǎng)景?,F(xiàn)象啟動(dòng)報(bào)eaddrinuse端口被占用或者服務(wù)起來后客戶端連接直接Connection refused。原因上一次啟動(dòng)的節(jié)點(diǎn)沒被干凈殺掉或者同機(jī)多開了多個(gè)實(shí)例搶同一個(gè)端口。Erlang 節(jié)點(diǎn)被 CtrlC 強(qiáng)制中斷時(shí)監(jiān)聽 Socket 可能還沒釋放處于 TIME_WAIT 狀態(tài)。解決用netstat -ant | grep 7000找到占用進(jìn)程的 PIDkill -9清掉再啟動(dòng)。正式環(huán)境建議在啟動(dòng)腳本里先做端口檢查起服前自動(dòng)清理殘留進(jìn)程而不是等報(bào)錯(cuò)了才處理。5.2 數(shù)據(jù)庫(kù)與登錄鏈路socket 握手、token 交換與內(nèi)存膨脹現(xiàn)象啟動(dòng)后日志報(bào)ERROR 2002 (HY000): cant connect to local MySQL server through socket /tmp/mysql.sock數(shù)據(jù)庫(kù)連接池一直初始化失敗。原因連接配置里 host 寫成了localhostmysql 驅(qū)動(dòng)會(huì)優(yōu)先走 unix socket 而不是 TCP但 socket 文件的位置不一定在/tmp/mysql.sock。有些 MySQL 發(fā)行版把 socket 放在/var/run/mysqld/mysqld.sock路徑對(duì)不上自然握手失敗。這一步和前面配置表里的 host 要求是呼應(yīng)的。解決連接參數(shù)里把 host 改成127.0.0.1強(qiáng)制走 TCP如果想繼續(xù)用 socket先執(zhí)行SHOW VARIABLES LIKE socket;查到真實(shí)路徑再填到配置里。記得同時(shí)確認(rèn) MySQL 服務(wù)本身是啟動(dòng)狀態(tài)systemctl status mysql一眼能看出來?,F(xiàn)象客戶端登錄報(bào)login server error: token exchange failed: error sending request for url ...有時(shí)還帶token endpoint returned status 40x。原因login server 調(diào)用 auth 服務(wù)時(shí)網(wǎng)絡(luò)請(qǐng)求失敗或者 auth 服務(wù)返回了錯(cuò)誤狀態(tài)碼。40x 說明請(qǐng)求本身有問題最常見的是 URL 里拼接的 account 參數(shù)帶了非法字符、簽名密鑰不一致網(wǎng)絡(luò)錯(cuò)誤則指向 URL 寫錯(cuò)、auth 服務(wù)沒啟動(dòng)、超時(shí)設(shè)太短三選一。解決先手動(dòng) curl auth 服務(wù)的地址看服務(wù)本身通不通再檢查 login server 配置里的 auth 服務(wù) IP、端口、路徑最后把 httpc 超時(shí)從默認(rèn)值調(diào)到 5000 毫秒以上。這里有個(gè)血淚教訓(xùn)千萬別在沒確認(rèn) auth 服務(wù)存活的情況下改代碼先把請(qǐng)求鏈路用 curl 打一遍。現(xiàn)象服務(wù)器運(yùn)行兩三天后內(nèi)存漲到幾個(gè) G玩家在線數(shù)沒增長(zhǎng)但內(nèi)存一直不降erl shell 里查ets:info發(fā)現(xiàn)某張表 size 大得離譜。原因玩家下線時(shí)狀態(tài)沒清理干凈ETS 表里積累了大量離線數(shù)據(jù)。還有一種情況是 ETS 表的所有者進(jìn)程崩潰后表數(shù)據(jù)沒有 heir 接管導(dǎo)致內(nèi)存無法釋放??ㄅ朴螒蛲婕疑舷戮€頻繁這個(gè)問題幾乎每個(gè)長(zhǎng)跑服都會(huì)撞上。解決打開 observer 定位大表observer:start()后切到 Table Viewer 按 size 排序找到問題表后在玩家 logout 邏輯里補(bǔ)ets:delete或者給表設(shè)置{heir, ...}讓 owner 進(jìn)程崩潰時(shí)數(shù)據(jù)能被其他進(jìn)程接管。日常運(yùn)維建議腳本定期掃描 ETS 表大小超過閾值就告警。現(xiàn)象rebar get-deps執(zhí)行失敗提示拉取依賴超時(shí)或找不到倉(cāng)庫(kù)編譯卡在依賴階段。原因早期項(xiàng)目的 deps 依賴一般指向 GitHub 上的倉(cāng)庫(kù)地址時(shí)間長(zhǎng)了倉(cāng)庫(kù)可能改名、遷移或刪除舊 URL 失效很常見。另外老版本 rebar 對(duì) git 協(xié)議的兼容性也差容易在 clone 階段翻車。解決優(yōu)先看 deps 目錄里是否已經(jīng)帶了依賴源碼帶了就直接注釋掉 rebar.config 里對(duì)應(yīng)的依賴項(xiàng)改用本地 deps 目錄編譯。第二種辦法是手動(dòng)去倉(cāng)庫(kù) clone 對(duì)應(yīng)版本放到 deps 目錄下。最省事的是改 rebar.config把依賴地址換成當(dāng)前可訪問的新地址版本號(hào)保持不變。6. 進(jìn)階驗(yàn)證用 observer 和 tcpdump 給服務(wù)器做一次體檢服務(wù)器能啟動(dòng)、能登錄只是起點(diǎn)真正判斷這套原始碼「能不能扛事」還要看運(yùn)行期的進(jìn)程狀態(tài)和網(wǎng)絡(luò)行為。我一般會(huì)給服務(wù)器做兩件事用 observer 看進(jìn)程和內(nèi)存用 tcpdump 驗(yàn)證協(xié)議幀。observer 是 Erlang 自帶的圖形化監(jiān)控工具啟動(dòng)后在 erl shell 里執(zhí)行observer:start().它會(huì)打開一個(gè)圖形界面能看到整個(gè) supervision 樹、每個(gè)進(jìn)程的內(nèi)存占用、ETS 表大小。重點(diǎn)看兩處System 頁里的內(nèi)存曲線以及 Table Viewer 里各張 ETS 表的記錄數(shù)。如果某張表的數(shù)據(jù)量在玩家離線后不下降說明清理邏輯有遺漏趁早補(bǔ)別等內(nèi)存爆了再救。tcpdump 用來驗(yàn)證客戶端和 login server 之間真實(shí)的協(xié)議幀tcpdump -i any port 7000 -w login.pcap抓完包用 Wireshark 打開對(duì)照 login_server.erl 里的接收邏輯看幀格式。比如代碼里用gen_tcp:recv按二進(jìn)制模式收包幀頭、長(zhǎng)度、命令字、參數(shù)各占幾個(gè)字節(jié)都能在 pcap 里對(duì)上。這一步能驗(yàn)證客戶端發(fā)來的包是不是符合預(yù)期也能反向確認(rèn)協(xié)議解析代碼沒寫錯(cuò)。如果想模擬登錄請(qǐng)求可以寫一個(gè)小的 Erlang 客戶端腳本做冒煙測(cè)試-module(smoke). -export([run/0]). run() - {ok, S} gen_tcp:connect(127.0.0.1, 7000, [binary, {active, false}]), %% 幀格式按 login_server.erl 中 recv 分支實(shí)際解析規(guī)則填寫 gen_tcp:send(S, 16#AA, 16#01, test001), {ok, Data} gen_tcp:recv(S, 0, 5000), io:format(resp: ~p~n, [Data]).幀頭16#AA和命令字位置要按源碼里實(shí)際的協(xié)議定義來填別照抄。返回?cái)?shù)據(jù)能解析出 ticket 或錯(cuò)誤碼說明套接字鏈路和邏輯鏈路都是通的。以前我拿到老代碼總想著一步跑起來結(jié)果每次都在版本和配置上浪費(fèi)一整晚后來養(yǎng)成一個(gè)習(xí)慣拿到源碼先看 rebar.config 定版本再掃一遍所有配置文件的 IP、端口、cookie最后才啟動(dòng)。按這個(gè)順序走啟動(dòng)階段基本不再翻車。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97色在线观看视频| 五月婷婷色播| 最近中文字幕2019视频1| 五月婷婷久久综合| 伊人五月婷婷国产视频| 青青草视频免费观看| 国产精品久久久久久五月天加勒比| 97男人天堂| 五月天激情四射网站| 99九九在线观看免费| 六月丁香久久| 99操免费视频| 欧美综合激情五月天| 日本色色影院| 日本精品人妻无码77777| 色亚洲欧洲| 色欲天天综合网| 亚洲AV综合在线观看| 六月婷婷五月天| 丁香五月亚洲婷婷| 99热这是里只有精品| 日韩ww| 天天日天天干天天插天天射| 久久丁香五月婷婷激情综合网| 日本色99网站| 精品亚洲国产成AV人片传媒| 可以看的av| 国产五月天欧美色| 五月激情丁香| 日本成人小说婷婷六月| 性婷婷| av激情在线| 欧美成人AAA片一区国产精品| 激情 婷婷| 五月丁香A片| 亚洲无码免费看| 操人91| 六月婷婷啪啪| 亚洲va综合va国产va中文| 色婷婷中文字母五月丁香| 六月婷婷最新网址| 九草性爱| 婷婷网影院| 五月婷婷色丁香| 97人人妻人人艹| 六月丁香av| 五月天婷婷色综合| 激情综合激情综合| 天天爱天天狠天天透| 99在线看片| 这里都是精品99| 婷婷情色五月天| 成人综合视频网址| 五月婷婷综合色啪首页| 亚洲欧美成人在线观看| 97人人操人人拍| 亚洲国产精品VA在线看黑人| 无遮羞AV| 欧美婷婷丁香五月| 久99久热| 婷婷五月丁香影院| 六月丁香婷婷尤物| 天天日日夜夜爽。| 日本丁香五月| 婷婷色五月激情| 日韩aaa| 丁香婷婷深情五月亚洲| 丁香花五月天激情| 99久久综合网| 丁香九月色| 亚洲综合五月天婷婷| 99热热热99精品婷婷| 国产暴力强伦轩1区二区小说 | 97热在线精品| 91久久久久久久| 99日本黄站| 夜夜操夜夜操| 色五月91| 四色 爱 婷婷 精品 亚洲 五月天| 99亚洲综合| 五月婷伊人| 激情综合网,五月| 五月丁香网站在线播放| 婷婷色狠狠| 岛国AV网站| 开心五月深爱婷婷| 996er热| 色色色色色色色色五月先| 美欧成人视频| 婷婷成人基地| 98永久精品| 99干日本| 久久66精品| 欧美VA在线观看| 一起草性爱不卡视频| 日日日日日| 五月婷色色| 在线只有精品| 97人人操人人操人人操人人| 天天操夜夜爽天天操| 人妻系列久久久久久久久久久| 色综合网上班开心婷婷久久| 色综合色综合色综合| 天天日天天肏天天奸| 五月天婷婷婷| 99久视频| 五月婷激情| 麻豆雪千夏| 五月天婷婷在线观看| 国产精品人人做人人爽人人添| 97luluse| www.99热日韩.com| 五月激情综合网| 亚洲激情综合| 性爱五月婷婷| 亚洲久久婷婷| 久久九九色| 亚洲无码 图片区| 九九九九九九毛片| 久色中文| 99视频自拍| 超碰人人操人人9| 99久.| 色婷婷九月综合| 91人人网| www. 五月. com| 色婷五月| 五月婷婷色| www。狠狠干。com| 射久久丁香五月| 99热偷拍| 亚洲AV第二区国产精品| 婷婷五月婷| 色婷婷电影| 黄色aa观看aaguochan| 九九黄色网| 丁香五月播播| 开心婷婷五月综合| 婷婷十月丁香| 色婷婷亚洲综合天堂| 超碰操网| 亚洲AV成人片无码网站| 九色PORNY自拍成人精彩视频| 激情五月天啪啪| 99精品在线| 婷婷丁香视频| 天天做天天爱天天玩| 国产69久久久欧美黑人A片| 大香蕉视频99| 久久激情视频| 五月综合色播播丁香婷婷| 日韩精品电影| 亚洲av电影在线| 婷婷五月激情在线视频| 丁香五月婷婷色| 婷婷综合五月色播| 99热精品超碰| 久久九九激情五月天| 婷婷五月天丁香花| 九九色逼| 久久永久网址| 青青青在线视频国产| 日韩成人AV在线| 丁香婷婷激情| 超碰在线视屏| 97九色视频| 夫妻超碰在线| 久久婷婷内射| 婷婷在线播放av| 99视频久久| 超碰国产av| 色婷五月天激情| 北条麻妃九九九国产精品视频| 久婷婷五月激情| 丁香五月天社区| 99久热在线精品| 五月婷婷激情综合av| 99久久婷婷国产综合亚洲| 丁香婷婷激情五月| 影音先锋男人AV资源站| 天天干一干| 欧美日韩aaaa| 色欧美日| 五月亭亭开心网| 天天日天天添| 精品一二三区久久AAA片| 色婷婷婷婷成人网| 九九99视频精品| 天天爱天天操| 亚洲无码成人网| 久久性爱视频网站| 99re热视频这里只精品5| 六月婷婷毛片| 国产美女视频久| 欧美在线视频9| 欧洲一区二区| 天天拍夜夜爽日日| 亚洲旡码| 久久婷婷综合五月| 色综合久久综合中文综合网| 中文无码精品一区二区三区| 日本3级片一区2区| 无码激情AAAAA片-区区| 操逼三区| 丁香激情六月天婷婷| 精品操逼一区二区| 丁香成人五月天| 欧美色骚婷婷五月天| 成人必爱视| 久久se 综合网| 噜噜狠狠色综无码久久合欧美| 丁香五月欧美色综合| 狠狠插狠狠操| 天天日天天爽| 操日本人妻视频| 99re热在线观看| www.色五月| 色色网站在线| 九九亚洲小视频| 99精品高潮| 色情五月婷婷| 在线另类视频| 五月丁花六月丁香综合| 678五月丁香亚洲综合| 激情国产五月| 性一交一乱一交A片久久四色| 夜夜骑福利资源| 色综合色婷色基地| ..真实国产乱子伦对白在线_欧 | 五月激情婷婷六月丁香| 任你日视频| 婷婷五月丁香图片人人操| www.91在线观看| 久久99久久99精品免观看软件| 99九九热视频| 激情五月丁香综合网站 | 婷婷娌伦网| 99er在线观看| 99精品这里只有免费视频| 超级碰人人操人人干| 天天插天天插天天插天天插| 欧美 日韩 成人 在线| 伊人五月久久| 五月天激情综合在线| 丁香伍月婷电影全集| 五月丁香影院| 色~性~乱~伦~噜| 丁香五月另类小说| 五月天艹天天| 这里只有精9| 96精品久久久久久久久| enecarbon-materials.com污K127封锁请涟系@wip1688 | 亚洲无码另类| 99精品视频偷拍| 久久九九99视频| 天天日天天插| 国产真人做爰视频免费| 国外亚洲成AV人片在线观看| 99精品偷自拍| A片试看50分钟做受视频| 激情伊人五月天| 国产在线6| 欧美日韩123| 五月色情婷婷| 五月丁香婷婷狠狠操| 99色色| 五月天婷婷av| 亚洲午夜AV| 色欲午夜无码久久久久久张津瑜 | 日韩久久这里只有精品| 久99久热只有精品国产99| 久久久久妻| 日本三级中文字幕| 第四色婷婷日本| 成人五月丁香社区| 欧日美女Va| 色5在线| 激情五月天婷婷图| 在线观看亚洲视频影院| 色,激情五月天| 婷婷爱在线观看| 色色五月婷婷| 五月天激情网址| 激情综合五月色在线| 五月天亚洲最大成人| 色婷婷91激情小说| 五月婷婷免费| 日本熟女二区| 久久五月婷| 99热精品在线| 欧美精品在线观看| 精品九九婷婷| 丁香五月性| 日本三级中国三级99人妇网站| 婷婷99狠狠| 色婷婷黄色网络| 91艹人| 五月天色婷婷小说| 五月丁香婷婷AV| 婷婷久久丁香五月| 成人美女网| 国产操B| 97婷婷狠狠久久综合9色| 五月婷婷色啪| 亚洲视频丁香网va| 成人丁香五月| 综合久久婷婷| 亚洲精品网址| 色久婷婷网| 天天粽合合合合| 战争与艾拉电影免费观看| 夜夜操激情| 超级碰碰碰97免费| 九月激情婷婷丁香| 亚洲激情综合网| 综合激情网| 五月丁香六月婷婷亚洲综合| 日本久久99| XX色综合| 婷婷色丁香五月| 五月丁香六月婷婷综合免| 婷婷五亚洲| 另类 在线| 极品人妻VIDEOSSS人妻| 久久久久8888| 开心五月深爱婷婷| 北京熟妇搡BBBB搡BBBB| 免费AV在线| 99热这里只有精品10| 99re最新地址| 激情五月天色播| 色色综合热| 久久婷婷精品| 亚洲无码色| 这里只有精品久久| 九九99免费视频| 日日日影院| 婷婷色丁香五月| 99精品综合| 日韩欧美一级大黄网站| 丁香五月在线观看| 欧美黄色一级| 色婷婷丁香五月观看| 97色色视频| 欧美情色一区| 婷婷五月天Av| 久久婷婷丁香| 99热精品超碰| 九九热经典视频在线观看| 九九色精品| av婷婷丁香| 激情五月伊人婷婷| 九九AV| Caop在线| 精品久久99码| 久草五月婷| 深爱激情网噜噜色| 免费看成人AA片无码视频吃奶| 伊人超碰| 色婷婷婷婷| 亚洲 欧洲 国产 伦综合| 91婷婷五月天综合视频| 香蕉久久国产AV一区二区| 丁香五月性爱| 深爱五月激情| 99 r热| 五月丁香婷婷色色色| 极品人妻VIDEOSSS人妻| 性小说五月天| 666555。COm毛片| 久热这里只有精品3| 九热免费视频| 婷婷欧美综合| 狠狠操综合| w婷婷五月婷婷w| 色婷婷六月| 丁香五月天天| 九九碰九九爱97超碰| 婷婷伊人75| 五月婷婷亚洲色视频| 激情婷婷护士激情| 天天摸天天透天天舔| 综合激情九月婷婷,激情综合婷婷中文字| 六月色日韩| 九九热在线精品视频| 丁香五月婷婷基地| 大香蕉九九| 丁香六月婷婷开心| 五月婷婷六月激情| 日日操日日撸| 色综合久久天天综合网| 亚洲AV免费在线| 操国产人妻| 俺去也综合| 亚洲九九免费| 怡春院天天干| 亚洲成人免费在线| 欧爱综合视频| 日本黄色在线观看| 久久婷婷五月| 五月丁香亚洲综合网| 天天做天天视天天谢| 久99热| 国产xxxxx在线观看| 天天日夜夜爽| 六月丁香激情网| 九月婷婷综合网| 婷婷激情九月| 久久九色| 久久九九99视频| 五月丁香六月婷婷无码| 五月婷丁香| 激情玖玖sh| 日本人人xxx| 97在线刺激| www.色婷婷| 丁香五月久久综合| 日韩在线成人电影| 91人妻PORNY九色大屁股| 丁香五月婷婷精品视频| 99在线观看视频| 色婷婷丁香A片区毛片区女人区| 六月色国内综合| 五月天婷婷香蕉狠狠超碰综合| 日本va欧美va国产激情| 婷婷五月天色网久| 五月丁香婷婷婷激情爱爱| 啪啪啪综合网| 99爱视频在线观看这里只有精品| 天天做天天爱天天爽夜夜揉| 日本人妻久久| 亚洲日韩乱码一区二区三区四区| 亚洲成人网站在线播放| 五月婷丁香亚洲| 九九99九九99九九99视频网| 丁香婷婷浪潮AV久久综合| 日韩无码成人电影| www天天色天天射| 这里只有精品偷拍| 丁乡久久| 日本WwW色偷偷丁香花久久久京东热| 五月 激情视频| 久久机热这里只有 | 九九综合图片网| 婷婷五月天网| 久久六月天| 丁香五月欧美| 视色综合| 婷婷日日天天| 婷婷爱综合| pom538精品视频| 丁香六月婷婷缴情欧美| 五月婷婷色| 色欲久久久久久综合网综合网| 综合狠狠干| 99啪啪视频| 丁香六月婷婷色XXXXX| 丁香久久| 99热这里只有精品99| 99视频在线观看视频| 啪啪一区| av网址在线| 色五月自偷自拍婷婷婷婷| 麻豆AV一区二区三区| 婷婷午夜天| 丁香狠狠色婷婷| 日韩五月丁香| 99热这里只有精品 搜| 99视频久久| Www.狠狠| 欧美超级视频97| 成人在线高清| www.99日本| www.久久婷婷| 天久久久久| 99原创自拍视频在线观看| 99视频| 9色在线| 在线成人网址| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 午夜九九电影| 五月天婷婷青青草| 六月丁香六月婷婷欧美| 天天狠狠六月婷丁香影院| 婷婷五月天成人综合网| 色色色色av色色色色| 五月激情网站| 亚洲欧洲午夜成人精品av| 五月色影院| 婷婷在线综合| www婷婷| 久久性爱视频| 熟惀91九色在线| 中文字幕无码AV| 熟女强人妻一区二区三区四区无| 久久久日韩特色特黄AAAA| 九九热内射| 91窝窝| 六月婷婷视频| 综合亚洲六月婷婷在线| 五月六月激情婷婷| 五月丁香六月婷婷开心网| 26uuu亚洲欧美日本| 五月天婷婷成人资源站| 来吧亚洲综合网| 熟女激情网| 五月婷婷开心网| 九九精品热播| 色婷婷综合视频| 欧美色综合天天久久综合精品| 国产性爱在线| 婷婷综合影院| XXXX岛国| 天天影院色| 婷婷五月天激情文学| 无码99| 羞羞嫩草视频| 日韩伊人大香蕉| 99热偷拍| 开心五月激情婷婷| 五月丁香六月欧美综合网站| 国内熟女黄色系列| 婷婷射丁香| 亚洲第一色色色| 五月天电影网| 九九色综合九九色| 色天使久久综合| 久久婷婷网站| 久久久久思思热| 色九月婷婷| 欧美 色婷婷| 五月婷婷七月丁香| 五月婷婷偷拍| 九九综合九九| 久热精彩视频98| 五月色情婷婷开心五月色情| 久久婷五月婷| 国产精产国品一二三在观看| 丁香六月久久| 婷婷97| 99re在线播放| 亚洲AV人人操| 五月久久婷婷丁香| 激情五月天啪啪| 五月婷亚洲精品| 五月婷婷啪啪啪啪| 丁香五月区| 99久久免费精品| www开心激情网| 亚洲激情综合五月婷婷啪啪| 色五月综合网| 六月丁香婷婷网| 久色视频首页| www.思思99热| 天天做天天爱天天玩夜夜爽| 色狠狠综合入口| A色色| 人人色AV| 99热99热99热99热| 青青草成人网| 久久综合丁香| 99热这里只有精品22| 伊人久久艹| 大香蕉九操| 无码任你操| 五月天开心网| 超碰只有精品在线| 99热大| 亚洲超级碰| 婷婷色狠狠| 亚洲无码你懂的| 激情五月婷婷视频一区二区三区| 亚洲熟女色| 久久婷婷青草五月天| 激情综合网之激情五月| 婷婷五月天论坛| 五月激情婷婷丁香| 综合色五月天| 国产亚洲精品久久久久久郑州| 欧美性生交XXXXX无码小说| 日韩国产在线精品| 九九九九热99超碰| 碰碰操91| 久久精品爱爱| 五月婷久久在线| 天天操人人干| 91一起操| 7EzOBIhNq85TO| 综合一啪| 怕怕視頻| 色五月丁香五月婷婷五月成人网| 久久综合影院| 99操| 2013AV天堂| 热99精品视频五月| 婷婷五月天六月综合| 九九在线这里只有精品视频 | 久久永久网址| 初夜av| 色五月人妻| 九九99免费视频| 成人精品视频99在线观看免费| 色婷婷影视99| 久这里只有精品99| 狠狠干综合网| 五月丁香六月激情| 91窝窝| 97成人丁香婷婷| 丁香五月六月婷婷综合激情| 久热91| 99精品视频在线免费观看| 99热这里只是精品| 久久99视频| 秋霞少妇AV网站| 色爽九九| 一區四區歐美日韓| 夜夜爽天天爽| 国产日产亚系列精品版优势| 午夜爱插插| 天天综合图片| 五夜婷婷| 去色色五月天| 五月天婷婷网站| 九九视屏| 五月丁香色色色| 五月婷婷啪| 五月天另类小说久久小说网| 五月天六月色| 欧美日韩成人在线网站| 婷婷五月天视频在线观看| 九九久久99精品免费观看www| 免费黄网不卡AV| 激情婷婷在线中文字幕| 日日爽日日| 成人做爰A片免费看网站找不到了 国产露脸150部国语对白 | 综合色久| 偷偷操99| 狠狠色综合网站久久久久| 亚洲成人网站在线观看| 黄网免费观看| 日日操夜夜爽| 精品无码片| 婷婷五月天激情综合婷婷五月天激情综合 | 日韩 中文 欧美| 五月丁香久久激情综合| 一个色的综合| www.夜夜操| 天天综合网91| 五月天激情国产综合婷婷婷| 久久A热| 丁香成人五月天| 五月丁香六月婷婷啪啪| 色婷婷精品视频| 色五月婷婷91在线| 丁香五月天激情网| 五月色亚洲| 91在线观看www| 天天操天天谢| 国产日产亚洲系列最新| 思思99精品视频| 激情五月天 婷婷| 大香蕉久久久久| 婷婷五月,偷窥偷拍网| www.一起草av| 五月天婷婷无码视频| 婷婷五月欧美综合| 五月丁花色综合网| 色狠狠色噜噜AV天堂五区| 五月婷婷 欧美| 色五月综合| 丁香五月1页| 久久XX| 超碰精品在线| 九九热精品| 99ri视频| 色色五月丁香| caopeng97日韩| 办公室少妇激情呻吟A片在线观看| 九九aV| 激情丁香婷婷| 日日干天天射| 婷婷丁香97| 男人的天堂97| 久99久在线观看| 蜜乳人妻一区二区三区| 激情伊人| 99视频超级精品| BBWCUCKOLD精品熟妇| 九九视频精品在线免费| 五月婷婷福利| 91AV视频| 九九色99| 中文字幕丰满乱孑伦无码专区| 桃色五月天| 天天粽合合合合| 9热网站| 久久精品视频9| 六月综合婷婷开心伊人| 97碰久久| 性婷婷| 国成人网| 成人综合视频在线| 精a品a视a频| 五月丁香综合啪啪| 日韩六六久久电影| 国产小网站| 美女网黄| 免费99情趣网视频| 碰碰碰97国产| 久久久久网站| 99色啊| 丁香99| 婷婷久久综| 在线,国产,色,热视频| 五月综合人妻| 五月综合丁香婷婷| 色丁香综合影院| www.激情五月天.com| 丁香五月91| 五月丁香六月激情网| 六月婷婷最新网址| 色99色| 秋霞簧片| 97色色婷婷五月天| 国产亚洲精品AAAAAAA片| 婷婷五月婷婷五月| 五月丁香综合激情| JlZZJlZZ8JlZZ亚洲熟女| 91大神操美女| 操嫩逼电影| 視频福利乱色| 精品夜夜澡人妻无码AV| 激情五月天视频| 五月天激情小说电影| 99爱在线观看视频| 五月丁香狠狠爱| 丁香花狠狠婷婷亚洲中文字幕| 五月丁香婷婷色色| 99色最新在线视频网站| 天天射影| 丁香五月大香蕉AV| 中字幕视频在线永久在线观看免费| www.色婷婷.com| 婷婷五月天激情网址| 久久久久9久无码视频| 六月丁香婷| 激情综合色播| 激情婷婷丁香五月| 九九RE视频在线精品| 色婷婷激情视频| 成人精品在线| 欧美三日本三级少妇三99| 欧美婷婷五月激情| 黄色AV日韩| 婷婷伊人綜合| 欧美色激情四射| 99色色网| WWW99热| 婷婷五月色播放| 五月天婷婷六月| 99热偷拍| 99热免费18| 亚洲日本韩国| 天天干夜晚夜操| 亚洲性视频| 26uuu欧美日本| 最新五月天婷婷影| 久久66er久久| 色婷婷www| 偷拍九九五月丁香婷婷| 欧美一级a | 美女被肏网站在线看| 大地资源色婷婷视频在线| 999久久久国产精品| 五月天婷婷视频30| 色青青视频| 色五月婷婷久久爱| 九九香蕉网| 人人操五月天| 久久久久久人妻久久久久久久久久人妻久久久| 天天操夜夜夜拍拍拍| 另类天堂| 狠狠爱婷婷爱| 欧美日韩成人免费在线| 色欧美影院| 天天干天天曰天天射| 四LLL少妇BBBB槡BBBB| 久久a热| 婷婷丁香五月亚洲| 9久热| 免费AV播放| 久久新地址| 中文字幕婷婷| 国产精品久久..4399| 婷婷五月丁香色综合| 天天日 天天草| 五月天综合激情网| 日韩AV大全| 99这里只有精品在线观看| 久久久久久草黄色片AV在线观看| 五月婷婷另类| 欧美日本综合网| 丁香五月色色色色| 五月天日日操夜夜操| 香蕉久久国产AV一区二区| 亚洲愉拍99热成人精品| 丁香婷婷六月天| 亚州色婷婷| 91九色小视频| 色久九| 五月丁香六月综合情在线观看 | 九九热这里只有精品23| 思思久久99热| 天天色天天爱天天舔| 黄色99网| 五月丁香婷婷激情澎湃四射| 五月天婷婷视频| 五月婷婷六月情| 久色| 日韩成人精品中文字幕| 五月天婷婷久久| 熟惀91九色在线| 大香蕉福利导航| 4399欧美另类视频| 超碰大香蕉网| 超碰在线99| 超碰人人在线| 色网五月婷婷| 亚洲人妻电影| 我爱大香蕉| 成人婷婷五月天| 日日狠狠久久偷偷四色综合免费| 色色com| 99ri视频| 在线不卡视频| 亚洲色图五月丁香五月婷婷| 色婷婷五月影院| 国产伦理精品高清在线观看网站一区二区 | 欧美97p| 五月丁香六月婷婷啪啪| 噜噜噜狠狠色综合| www.97视频| 久热久操久热久草国产91| 亚洲综合五月天婷婷丁香| 色黑鬼导航| 狠狠干综合网| 色婷婷小说| 97很鲁在线视频| 日韩无码91| 这里只有精品日韩| 26uuu美女三级视频| 色色色色色色色色色色色色色色,网站| 婷婷日欧美在线观看| 狠狠干,狠狠操| 风流少妇A片一区二区蜜桃| 亚洲天堂九九九| 成人日韩欧美| 国语精品探花| 婷婷在线综合| 激情婷婷五月丁香啪啪啪| 在线视频99| www.狠狠狠.com| 色色色9| 九九这里有精品| 99视频日韩| 成人五月天在线观看| 开心婷婷五月中文字幕组| 五月激情天| 少妇性BBB搡BBB爽爽爽视頻 | 丁香婷婷人妻综合网| 色五月婷婷一二| 五月丁香色综合| 中文字幕激情综合| 亚洲五月丁| 大香蕉婷婷五月| 精品一区二区三区四区五区六区| 91婷婷五月丁香碰| 婷婷五月天视频小说| 91碰视频| 狠狠 久久| 美女五月天婷婷| 九九热婷婷| 成人五月丁香花| 五月狠狠| 婷婷五月六月激情| 可以免费观看的AV| www.婷婷.com| 婷婷丁香成人五月天| 丁香激情五月| 久久久.COM| 婷婷五月天伊人网| www.色五月| 99色色热热| 天天干天天拍| 婷婷香蕉香| 五月花婷婷在线精品视频| 超碰在线超碰| 久久青草国| 激情婷婷另类| 久热91| 99久久综合网| 欧美色色色色色| 狠狠精品干练久久久无码中文字幕| 91婷婷搞| 五月天婷婷成人网| 玩熟女五十AV一二三区| sS丁香五月婷婷| 婷婷天堂站| 久久久9久| 激情五月天网页| 婷婷99狠狠躁天天躁| 亚洲AV免费在线| 人人摸人人| 国产三级在线播放| 国产精品久久久久久五月天加勒比 | 五月天综合色| 色五月婷婷影视| 天天色综合图片| 五月婷婷色色爱| 综合激情五月综合激情五月激情1| 婷婷五月色| 欧美六月| 亚洲超碰在线| 99ri在线| 国产精品电影| 中文字幕在线日亚州9| 激情五月,激情综合网| 万月丁香狠狠爱| 久噜久噜| 中文字幕操比影片| 丁香九月婷婷色| 亚洲在线网站| 夜夜骑天天玩天天日| 色五月综合网| 色月视频| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 色婷婷欧美| 色婷婷伊人| 久热人妻| 综合色色网| 丁香婷婷精品视频| 五月婷婷六月激情| 新99思思视频| 国产精产国品一二三在观看| 婷婷五月天激情视频| 99热在线播放| 天天在线天天综合网色| 欧美黑人巨大性生话| 丁香五月人妻熟女| 97色综合| 久久精品视频在这里有| 在线看黄色| 综激情网| 丁香五月天天| 亚洲V国产V欧美V久久久久久| 久久婷婷五月草视频| 免费看欧美成人A片无码| 五月激情综合五月| 五月天久久小说| 婷婷娌伦网| 亚洲五月婷婷| 亚洲亚洲人成综合网络| 五月天激情网页| 狠干综合| 色综合色综合网| 婷婷天天插天天爱| 色九月综合| 婷婷五月六月| WWW.99热| 成人国产欧美大片一区| 婷婷开心青青草| 在线亚洲综合| 久久色婷婷| 深爱激情网婷婷| jiuse91在线| 九热视频| 狠狠色激情综合| 大香蕉九九操| 91丨九色丨丰满人妖| 狠狠做六月爱婷婷综合aⅴ| 五月婷婷丁香91| 婷婷综合一二三| 深爱五月激情综合| 婷婷99视频在线| 久久久无码精品成人A片小说 | 婷婷99丁香| 99在线观看精品视频| 亚洲中文乱字字幕线在永久| 五月天狠狠色| 国产亚洲精品AAAAAAA片| 天天做好综合色| 天天久久66xxx| AA片在线观看视频在线播放| 美女五月狠狠| 丁香婷婷五月天亚洲| 五月丁香综合久久夜夜| 这里只有精品免费视频| 夜夜爽天操| 另类图片激情五月| 91人在线观看| 五月丁香色| 99精品在线下载| 色五月婷婷av| 五月天婷婷激情六月久久| 99精品久久| 成年人看Va免费视频| 色婷网| www.9色色色| 五月婷婷偷拍| AAA亚洲AV| 久久99免费视屏| 激情网色五月| 国产又粗又大又爽又黄| 五月久久婷婷天堂视频| 五月婷婷五月天天| 色五月综合激情| 婷婷五月色花丁香社区| 99久久网站| 99九九视频精彩在线| 日逼免费视频| 婷婷五月天激情小说| 热99.com婷婷| 五月天社区| 五月婷婷狠狠干| 五月丁香婷爱在线| VA国产在线综合网站| 操人精品| 99操逼| 天天操天爱综合| 久热视频A.| 9精品视频在线| 日韩av一区二区在线/日产精品久久久 | www,婷婷五月天,com| 色色丁香| 色蜜婷婷| 久久探花91swag| 99热在线观看| 婷婷激情综合| 九九热在线观看视频| 人妻久久久久久久久| 新久久五月天激情| 色色婷婷丁香五月天| 97色五月丁香婷婷| 日本精品人妻无码77777| 婷婷五月天精品| 丁香六月综合激情| 五月婷婷在线播放| 综合图区激情| 蜜臀九九九九| 六月婷伊人| 五月丁香激情综合啪| 激情小说五月天| 久久新地址| 色噜噜狠狠色综合网| 久碰综合| 另类丁香综合| 性爱网六月丁香| 免费日本aⅴ中文字幕| 亚洲精品99| 五月婷婷激情| 深爱激情五月天| 日日干夜夜干| 色五月激情五月开心五月| 五月天五月天激情网| 五月深爱激情网| 亚洲AAA| WWW、日本色丁香、co m| 热久久成人| 亚洲激情99| 亚洲激情高潮| 国产淫熟妇| 丁香五月网| 激情伍月 欧美| 2020久久婷婷五月| 日本婷婷综合精品| 色狠狠综合网| 深夜A片| 丁香五月综合AV在线| 色色色9| 伊人网碰碰| 色综合丁香| 婷婷97| 久久99热网| 久久国产成人9999久久久久| 亭亭玉月丁香| 14色综合婷婷| 久久婷婷成人视频| 婷婷 激情 五月| www国产亚洲色婷婷com| 午夜激情五月天| 久久天天| 毛片色五月| 婷婷婷婷色| 五月综合激情网| 男女99免费视频| 色色婷| 少妇AB又爽又紧无码网站| 丁香五月影| 色综合av超碰| 丁香五月日韩| se99高清无码| 婷婷五月丁香基| 五月婷婷六月丁香在线视频| 激情综合一| 九九综合伊人| 另类图片五月天| 欧美日本不卡黄色片| 爱iii做iiii日日| 亚洲无码yw| 五月开心婷婷极品激情| 激情丁香淫荡婷婷| 色久综合天天做视频| 久久久久人妻精品| 五月天综合在线| 国外亚洲成AV人片在线观看| 五月天激情小说| 亚洲色频| 九九色影视| 亚洲六月婷| 99热在线精品观看| 色综合综合色| 亚洲精品无AMM毛片| 伊人久久中文网| 久久婷婷五月综合成人d啪| 五月丁香怕啪啪| 激情小说视频图片网| 男人天堂99| 免费看欧美成人A片无码| 日韩久久日| 激情综合网五月婷婷| 五月婷婷丁香五月婷婷| 精品人妻在线| 最近中文字幕2019视频1| 91av无码| 噜噜噜噜噜在线| 看久久性爱视频| 六月激情婷婷| 综合色在线| 99自拍网| 丁香六月亚洲综合| 超碰在线国产| 久久九网| 国产成人网址| 亚洲国产精品成人免费一区久久久在线观看AAAA | 久久婷婷五月综合成人d啪| 人人操Av| av在线中文| AV成人在线网站| 超碰狠狠操| 天天爽免费视频| 婷婷导航| 日韩淑女人妻luan伦激情精品一区二| 大香蕉综合| 丁香伊人五月色婷婷五十路| 激情综合网丁香| 激情五月婷婷丁香| 国产精品久久久久久亚洲毛片| 在线观看免费狠狠色丁香香综合| 久久九九99字幕| 五月色亚洲| 婷婷丁香www视频日本韩国| 四虎婷婷五月天| 超碰在线观看99| 日本97在线看片| 日本无va视频| 五月婷婷av| 五月丁香婷婷啪啪综合| 亚洲 无码 中文字幕 中出| 日日操夜夜爽| 91人碰| A A色色| 国产精品涩涩涩视频网站| 97色久| 综合一区二区三区| 超碰无码老师| 五月丁香久久丝袜啪啪| 色吧综合网| 探花搜索结果 - 黄上黄| 九九热国产| 大伊香蕉精品视频在线| 丁香六月天AV| 色综合婷婷| 色五月激情| 伊人在线视频| 黄色五月婷| 日夜夜久久| 免费视频WWW在线观看网站| 色八月婷婷| 九九色逼| 99超级碰免费视频| 五月丁香激情婷婷| 夜夜大香蕉婷婷丁香| 99热精品中文字幕| 色色色五月天激情资源| 久久机热思思热| 荫道BBWBBB高潮潮喷| 五月www| 另类天堂| 亚洲综合激| 99九九视频| 丁香五月在线伊人| 天天干天天操天天爽| 欧美va精品va老师va| 色色色免费视频| 亚洲精品va| 99免费在线视频| 色婷婷色情| 五月丁香六月婷婷激情网| 91人人爽人人操| 五月天天爽| 丁香五月最新网址| 婷婷狠狠操| 色偷偷色婷婷| 天堂色婷婷| 国产精典视频在线观看| 香蕉狠狠爱视频| 日韩精品999| 五月丁香六月成人| 五月婷婷激情刺激| 久久99综合| 五月婷婷综合激情| 玩熟女五十AV一二三区| 五月综合激情视频| 丁香五月 无码| 激情五月天 婷婷| 久Se视频在线观看| 97久久草草超级碰碰碰| WWW.天天日| 亚洲中文字幕在线观看| 亚洲性图一区二区| 九九综合九色欧美狠狠| 激情五月狠狠| se99热久久一本| 天天日,天天插| 亚洲一区国产传媒| 日本色色网| 色综合久久伊伊婷婷五月| 色色色五月天婷婷| 这里只有精品视频免费在线观看| 婷婷综合色网| 深爱激情综合| 婷婷黄色五月天在线视频| 人人操婷婷| 六月婷婷五月丁香| 激情综合网丁香| 99在线精品免费视频| 久久视频这里99| 四月婷婷五月丁香| 色婷婷基地| 亚洲综合狠狠艹| 色婷婷色情| 日本人妻A片成人免费看片| 婷婷五月天男人影院色色网| 三级99热| 能看的av| 66精品成人免费网站在线观看| 超碰色女| 婷婷色婷婷| 婷婷综合六月| 91婷婷丁香五月| 91丨九色丨东北熟女| 丁香六月爱综合| 热99一二三| 区美毛片子| 操碰97| 6 9式性爱视频在线播放|