免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
色五月婷婷操逼| 人妖色AV色综合| 五月天婷婷人妻| 玖玖爱综合网| 五月伊人婷婷999| 欧美经典片免费观看大全| 日本 @ va 免费| 91狠狠综合久久久| 久久与婷婷| 99视频这里有精品| 五月天激情四射| 99热在这里只有精品| 天天人人综合| 俺来也综合网精品一区| 久操大香蕉| 欧美五月婷婷综合| 激情婷婷丁香五月| 99久久久久| 一区二区乱码视频| 日日爽夜夜爽| 美国十月色婷婷在线观看| 激情五月婷婷伊人| 99在线看片| 激情AV| 六月丁香成人| 欧美激情久| 熟女少妇内射日韩亚洲| 少妇人妻丰满做爰XXX| 激情综合色图| 五月婷婷久久久| 五月婷婷六月开心| 99爱视频在线观看| 五月天开心婷婷激情网站 | 久色网址| 婷婷综合色图| 色婷婷影视| 色五月播五月| 9l视频自拍9l九色9l成人| 天天干天天射色综合| 国产欧美婷婷五月| 天天添天天摸天天天天做| 99re视频在线播放| 欧美性爱五月天| 婷婷情色五月天| 色综合香蕉| 嫩草视频| 六月激情丁香一道本7777| 国产免费一区二区三州老师F1……| 91精品久久久久久综合五月天| 欧美五月婷婷| 337p大胆噜噜噜噜噜91Av| 国产91视频| 天天爱天天狠天天透| 欧美日韩一区二区三区四区| 婷婷五月婷婷| 伊人色综合网| 亚洲亚洲人成综合网络| 人人人va亚洲视频在线| 日韩啊啊啊| 欧洲亚洲精品| 91久久久久久久久| 538在线精品| 嫩草AV久久伊人妇女超级A| 六月丁香五月婷婷| 久草婷| 色涩视频久久| 99re热99| 五月天亚洲最大成人| 激情五月伊人婷婷| 五月丁香无码视频| 大香蕉五月天| 国产精品涩涩涩视频网站| 亚洲九N| 久久五月婷综合| 丁香婷婷综合影院| 色欲久久综合| 精品综合五月| 狠狠色五月| 丁香五月天啪啪| 天天操天天曰| 99re久热| 91精品熟女| www.sezonghe| 九月丁香亭亭| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 色五月偷偷| 丁香婷婷色| 国产成人网| 国产精品久久久久久久久久| 狠狠第四色| 色婷婷丁香网| 亚洲成Av人片乱码色第1集| 九九精品系列| 丁香婷婷精品视频| a久久| 狠狠干综合| 国产黄大片在线观看画质优化 | 亚洲成色综合网站免费观看| 丁香六月综合| 欧美综合激情| 五月综合视频在线| 黄色成人网站在线播放| 色五月丁香91| 综合亚洲六月婷婷在线| 精品色色| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 激情六月丁香| 变态 另类 在线| 亚洲视频在线网| 亚洲综合另类| 婷婷五月免费在线| 亚洲a色| 婷婷狠狠干| 丁香青青五月天| 免费黄色视频网址| 日韩AC在线免费观看| 午夜微拍福利| 亚洲精品乱码久久久久久综合| 常久最新免费的色吊丝| 激情五月综合| 久久久大香蕉| 五月婷婷在线免费| 欧美一级a| 97干视频| 婷婷六月啪啪| 伊人久久婷婷五月综合97色| 99re在线观看| 综合五月天| 五月丁香影院| 五月丁香激情四射| 99热色精品| 国产67194| 久久精品日| 另类激情四射| 天天插综合网| 丁香99| 五月五婷婷网| 色噜噜狠狠色综合成人99| 国产精品久久久久久久久久免费| 婷婷久久久| 天天色综合图片| 婷婷色综合| 第五婷婷伊人丁香| 亚洲日韩欧美综合VA| 日本综合久久| 久热九九| 思思热视频在线观看| 丁香婷婷老司机久操| 亚洲中文字幕av| 婷婷香五月| 婷婷综合五月天| 五月丁香六月婷婷久久肏| 亚洲色vA| 婷婷六月丁香五月图区| 六月丁香五月激情网| 婷婷金品综合视频| 九九大香蕉黄色影院| 五月丁香黄色视频| 91九色 熟| va中文资源在线观看| 丁香五月婷婷AV| 在线91日韩| 色婷婷影音| 99这里只有精品视频| 丁香六月婷婷久久亚洲天堂| 97在线观看| 婷婷六月花| 中文字幕在线不卡| 婷婷六月激情| 色婷婷成人在线| 欧美大片免费播放器| 日韩成人精品中文字幕| 久久婷婷五月综合| 狠狠操天天操综合| 青青草青青草五月天| www.av视频xx999.com| 91成人品| 99在线精品视频免费| 这里只有精品视频免费在线观看| 丁香婷婷精品视频| JAPANRCEP老熟妇乱子伦视频| 91久久婷婷| 久久人人超| 色色五月丁香婷婷| 99激情视频| 久久五月天激情美女| www.婷婷五月| 热这里只有精| 五月天丁香久久综合| 婷婷激情六月综合| 99国产99| 丁香婷婷五月综合| 婷婷九月激情| 久久这里只有精品视频15 | 婷婷九月激情| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 欧美日韩日韩成人| 婷婷五月综合色拍| 色五月丁香五月五月婷婷| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 五月丁香综合精品欧美| 色婷婷丁香| 91精品久| 久久九色| 狠狠色激情综合| 国产av天天插天天操天天爽| 99在线免费观看| 99久久五月婷婷| 丁香五月人妻| 丁香五月视频在线观看| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 久久精品爱爱| 亚洲黄网在线| 国产成人av在线播放| 五月丁香婷婷综合| 久久se 综合网| 天天噜噜| 91婷婷在线| 婷婷性爱| 久久激情网| 久久免费9| 狠狠插狠狠插| 精品久久66| www综合久久| 久热欧美| 热99热9| 国内久久亭亭| 天天爽天天| 久99久精品视频| 综合激情五月丁香| 色五月婷婷五月丁香五月| 亚洲无码免费看| 丁香五月婷婷啪啪啪| 色婷婷丁香网| 亚洲色色五月| 9久久精品| 人人人操97| 婷婷97碰碰| 日本人妻伦在线中文字幕| 五月天 另类图片| 婷婷五月天性爱视频| 99re这里| 99无码| 婷婷欧美色| www,99热在线观看| 五月丁香六月激情| 97热视频| 丁香六月婷婷| 婷婷五月丁香久久| 丁香六月天婷婷色| 久久精品爱爱| 色色日本欧美| 色婷婷激情Av久久久| 思思99久久| 26UUU亚洲欧美| aaa久久| 一起操最新网址| 久久97| 婷婷五月骚厕所| 只有精品视频在线观看| 香蕉国产2013| 久婷首页| 婷婷丁香www视频日本韩国| 96精品成人无码A片观看金桔 | 婷婷九月| 日韩无码色色| 欧美性爱一区| 色五月婷婷亚洲| 日本激情ⅩXX免费视频| 91久久99久久91熟女精品| 狠狠干在线| 日噜噜色| 亚洲有码在线视频| 狠狠色狠狠爱| 亚洲超级碰| 久久久九九九 99| 琪琪色网在线| 色综合女人99| www狠狠爱com| 99久久.www| 色综合播放| 91色性感五月婷婷丁香| 日本婷婷色| 被强行糟蹋的女人A片| 97av在线视频| 亚洲激情婷婷| 开心五月婷婷六月丁香| 一区二区三区四区五区| 人人干AV| 可以直接看的AV网站| 4399在线观看免费高清电视剧| 日本一毛片| 丁香五月婷婷亚洲激情四射| 99热久久日本| 久re热视频| 久热伊人在91| 996精品热视频| 激情五月天福利| 丁香激情综合| 欧美日本97| 操操熟女| 婷婷激情人妻| 色五月激情综合网| 久久奄也去色色网站| 丁香六月婷婷缴情欧美| 六月婷婷狠狠色在线观看| XXXX岛国| 五月丁香花免费视频| 色宗合久久五月婷婷| 久久 这里只有精品1| www久久五月com| 综合丁香婷婷五月天| 超碰免费在线| 青青福利网| 99re26视频| 热这里| 人人草人人爱手机视频看看 | 久久婷婷色| 亚洲成人一区| 激情五月天开心网丁香无码| 免费视频这里只有精品| 激情综合激情综合| 九九热视频精品| 丁香五月天激情综合| 色五月天天| 婷婷五月天激情综合深爱| 99热这里只有精品23| 99精品无码网站| 爱草人视频| 婷婷伊人综合中文字幕| 天天弄天天操| 亚洲视频无| 五月久熟女| 婷婷丁香六月综合激情站| WWW色五月天| 天天开心AV色综合婷婷五月天| 九九无码视屏| 狠狠色噜噜狠狠狠狠综合| AAA久久| 亚洲网在线观看| 亚洲九九婷婷| 九九这里只这里只有精品| 丁香婷婷久久激情| 成人电影在线免费试看| 少妇AB又爽又紧无码网站| 婷婷碰碰| 午夜大香蕉| 久久婷婷精品| 久色婷婷200| 九九亚洲视频| 久久婷婷五月综合网| 色九九综合热99| 99爱视频精品| 九九热99热| 综合色色婷婷| 情色五月天 网站| 丁香婷婷色九月| 婷婷成人在线| 久操无码| 国产三级在线播放| 99久久婷婷精品视频| 五月天伊人久久久久| 永久的网站AAAA | 我淫我色婷婷五月天激情四射| 五月婷天堂视频| 7777激情基地| 99在线视频在线观看| 91婷婷搞| 9 1大香蕉| 五月婷婷综合激情| 夜夜爱网站| 婷婷五月激情网| 色都都狠狠色都都色综合色| 婷婷区日本| 天天射影院| 嫩草AV久久伊人妇女超级A| 超碰无码老师| 日本成人小说婷婷六月| 亚洲五月天激情| 停停六月 综合| 天天爽天天弄| 精品人妻一区| 激情久久肏屄视频| 六月婷婷综合| 久久3级片| 丁香五月瑟瑟| 99热免费在线| www.91九色| 看久久性爱99视频| 伊人大香蕉爱聚| 激情婷婷色小说| 久久婷婷五月综合激情国产| 日日噜噜久久婷婷五月天| 天天射射夜| 丁香六月婷婷色XXXXX| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 99久久精彩视频。| 色综合久久综合中文综合网| 99小视频在线观看| 九九精品视频在线观看| 久婷狼色诱惑在线| 国产精品久久久丁香五月八戒视频| 91九色国产在线| 国产操逼网站| 日本色狠狠| 久久密臀婷婷| 久久久久久久久久人妻| 香蕉久日夜| 五月激情视频网| 五月天婷婷激情| 婷婷五月天色色| 91狠狠综合久久久久久| 九九99免费视频| 久久五月天网| 久99久精品| 天天搞天天色综合| 五月丁香 啪啪| 婷婷五月天堂| 大香蕉久久| 久久婷婷五月综合色奶水99啪| 99久久精品国产色欲| 天天干天天日天天操| 超碰在线个人观看| 九九热最新| 丁香五月天婷婷91| 9久热在线视频精品| 7777精品伊人久久久大香线蕉最新版| 丁香婷婷六月| 超碰97干| 五月天综合视频| 五月婷婷色色| 亚州美女| 色99热| 日本久久极品| 色婷婷A| 婷婷中文无码| 欧美激情VA永久在线播放| 婷婷五月天中文字幕.| 婷婷五月色情| 99玖玖免费视频| 婷婷五月天激情小说| 久久性爱视频| 屁股翘好撅高迎合跪趴| 丁香六月在线| 色综合久久综合中文综合网| 99色在线视频| 欧美精品熟女一区二区| 五月停停999| 成人短视频在线观看| 色色五月天丁香| www.99热| 丁香婷婷十月| 97精品自拍| 欧美色频| 日本久久爱| 香蕉久久国产av一区二区| 狠狠色婷婷777| 99热国产国产| 色婷婷另类| 日韩av在线免费观看| 99男人天堂| 99热只有| 欧美婷婷精品激情| site:hcxsz888.com| 国产欧美精品AAAAAA片| 五月天桃色深爱网| www.激情在线| 任你弄在线视频免费| 欧美日比视频| 成人网站免费sxj| 国产亚洲成人综合| 综合网亚洲| 天天免费日日夜夜夜夜| 欧洲不卡视频| 大香焦A∨| 婷婷无码视频| 久久激情五月网| 天天色丁香| 丁香六月天| 黄色AAAAA| 九九色影院| 久久婷婷丁香花综合网| 91丨九色丨国产打屁股| 伊人五月天| 丁香五月婷婷婷婷欧美综合| 婷婷丁香激情五月天色色色| 五月丁香婷婷久久| 五月五婷婷| 99精品久久| 碰久久精品w| 97干在线| www色五月| 视色综合| 婷婷色五月综合丁香| 玖玖热99| 久久婷婷九月国产精品| 91五月天| 天天摸天天肏| 九九这里有精品| 婷婷六月色丁香视频在线观看| 色色色色色日韩午夜激情| 色偷偷综合| 亭亭玉月丁香| 五月天成人在线播放丁香| 天天做天天爱天天摸| 久热9热| 欧美丰满熟妇BBB久久久| 久久久久亚洲AV无码网影音先锋| AAAA网站| 激情九九综合网| 深爱五月激情综合| 久操b网| 五月婷婷亚洲| 碰碰碰91| 色九月丁香婷婷蜜桃在线观看| 色情综合网| 大香蕉久艹| 天天操天天曰| 久久激情五月婷婷| 欧美日韩AAA| 婷婷六月天精品| 无码九九| 99色这里| 欧美噜噜久久久XXX| 久久天堂网| 综合网啪| 91在线操| 五月天狠狠色| 亚州操逼网| 月色色综合婷婷网| 免费在线a| 99丝袜精品视频网站| 亚洲综合色成丁香五月色| 婷婷五月天成人| 五月婷婷影院| 九九av| 久久久久久人妻| 激情五月天影院| 五月激情影院| 99爱精品| 精品人妻午夜一区二区三区四区| 久久99国产综合精品免费| 九九热精品在线| 色五月人妻| 色色色9| 日本99久久| 婷婷爱五月| 九热视频| 97亚洲视频在线| 99婷婷精品推荐在线视频| 亚洲亚洲人成综合网络| 五月丁香久久综合91| 91呦呦呦| 婷婷欧美激情| 亚洲操精品| 五月丁香婷婷色色| 狠狠色丁香综合| 九九热99re8热免费观看| -91九色大屁股| 五月丁香六月在线欧美| caobi四区| 九九九九九九九热| 色99网| 在线观看欧美| 日日噜噜夜夜狠狠久久丁香五月| 亚洲精品a成人在线播放| 狠狠干.com| 七七久久婷婷| 久久婷狠狠色| 国产婷婷综合| 国产三级秋霞| 亚洲五月天激情| 五月婷婷与六月丁香图片激情| 99色综合| AⅤ网站在线看| 91主播在线| 91疯狂操操操操| 色婷婷丁香五月| 狠狠狠狠狠狠狠狠草| 丁香五月五月婷婷五月天激情四射| 五月天婷婷亚洲| 丁香婷婷色情| 99热精品在线| 色婷婷综合电影| 色性综合| 热思思| 99九九热在线观看| 日本不卡高字幕在线2019| 99热最新国内| 天天久久狠狠色综合| 精品99这里有| 色亚洲激情| 丁香五月天激情| 色婷网站| 色色色干| 五月婷婷婷婷婷| 激情99热| 91打屁股免费看| 欧美性猛交99久久久99| 五月丁香六月婷婷综合网| 五日激情综合| 日韩中文字幕| 日韩综合网络男女香蕉a片| 亚洲欧洲自拍图片专区五月天| 天天日夜夜拍| 99色色网| 99在线免费视频| 天天综合图片| 开心激情综合| 另类国产区| 狠狠肏综合网| 免费亚洲婷婷中文字幕| 91九色白丝| 超碰人人在线| 九九热最新| 亚洲日韩一页精品发布| 99热人人| 丁香六月欧美| 天天干人人奸97| 色播丁香| 婷婷五月天Av| 日本在线观看91| 热的国产,热的综合,热的有码| 色五月五月婷婷| 日韩一区二区A片免费观看| 激情黄色小说色五月| 成人五月天视频| 91性交在线播放| 91久热| 天天爽天天操| 久久XX日本综合| 欧美激情丁香五月天久久婷婷一区| 九九成人| 91久久18| 六月色国内综合| 亚洲成人网站在线观看| 亚洲无码成人| 玖玖99免费视频| 狠狠爱婷婷五月天| 五月激情黄色小说| 天天射影院| 婷婷五月天AV网| 黄色五月婷婷| 久9视频免费播放| 怡红院一二三| 五月丁香啪啪综合网| 97艹| 丁香 婷婷 亚洲 熟女| 九九热免费视频| 久热精品视频在线观| 激情综合婷婷| 大香蕉中文| 九九这里只有精品| 五月丁香人妻| 丁香六月久久| 国产AV影片| 第四色婷婷五月| 国产无套精品一区二区| 欧美色骚婷婷五月天| 九九99精品| 九九九这里只有精品| 综合激情婷婷| 精品久色| 色99在线| 亚洲色情一区二区三区四区| 久久久久亚洲AV综合| 婷婷深爱五月亚洲综合| 亚洲电影在线观看| 狠狠色婷婷六月激情网| 超碰cap| 五月丁香免费看| 卡视频1区2区| 久久激情网| 中文字幕激情综合| 婷婷五月激情欧美| 天天舔天天插天天爱| 天天综合色| 亚州欧美国产久精国产99综合视频| 激情五月婷婷| 激情五月六月丁香| 亚州色综合| 久久五月婷婷丁香| 久久五月综合| 安息电影在线观看完整版| 色色婷婷丁香| 婷婷香五月| 99re视频在线| 午夜成人AV在线| 天天操夜夜爽天天操| 亚洲第一成人无码A片| 99日这里只有精品| 激情99热| 色噜噜狠狠色综无码久久合欧美| 99热这里只有精品18| 亚洲综合另类| 欧亚成人A片一区二区| 丁香婷婷在线| 婷色五月天| 99精品偷自拍| 久久人妻人人| 欧美色色色色色色色色色色影视| 少妇AB又爽又紧无码网站| 日日舔夜夜操| 亚洲综合久| 激情五月天色播| 日本激情五月天‘| 五月婷婷三级| 亚洲黄色网址| 九月婷婷色色| 五月婷婷 六月丁香| 欧美激情综合五月色丁香| 天天操屄网| 人人操AV| 新激情五月天| 中文字幕不卡+婷婷五月| 中文不卡一二三区| 狠狠色丁香久久婷婷综合五月| 色爱亚洲| 婷婷丁香五月综合激情视频| 久久久久久激情| 潘金莲AAAAAAAAAA| 生活片五区| 五月丁婷婷| 99啪啪网| 啪啪一区| 亚洲国产99| 丁香激情五月综合网| 国产人人操| 久久人人九九| 色五月婷婷天天操夜夜操| 啪啪婷婷五月天激情| 国产欧美熟妇另类久久久| 99久久这里只有精品| 秋霞网在线观看理论91| 九九这里是免费的视频5| 影音先锋91网站在线观看| 婷婷丁香激情综合色情| 婷婷五月丁香激情色情| 色综合久久99色| 久久五月天激情| 亚洲色热| 日本成人噜噜| 精品无码色| 久久婷婷91| 99久久婷婷精品视频| 久久婷婷91| 亚洲人成人五月天| 4399在线观看免费高清电视剧| 蜜桃婷婷狠狠久久综合| 欧美日本韩国亚洲| 亚洲精品色| 狠狠干综合网| 思思热AV| 五月婷婷色情| 婷婷丁香六月激情综合| 91久久久久久久久| 亚洲性视频| 日韩人人操| 六月激情婷婷| 日韩999| 亚洲色热| 女高怪谈在线观看| 九九综合精品| 五月婷婷中字在线| 久热婷婷| 色伊人婷婷| 日韩三级高清无码| 91干婷婷| 热思思九九| 天天干天天插| 色婷婷六月| 丁香婷婷五月| 99久在线精品99re8热| 天天日天天爽| 99热精品无码| 久久精品人妻| 五月婷婷69| 日本色色色| 97丁香五月| 丁香五月五月婷婷五月天激情四射| 日本五月婷婷久久久六月丁香| 九九热99re8热免费观看| 久热中文字幕| 婷婷色六月| 97操碰在线视频| 五月天婷婷色色首页| 青青草99re| 综合久久十| 伊人久久大香线蕉综合网站| www.婷婷五月天,com| 色天使久久综合| 超碰在线免费观看3 9| 亚洲精品第一国产综合亚AV | 99热九九九九| 午夜激情四射影院| 97精品综合久久内射| 激情五月瑟瑟| 综合网网欲色| 婷婷天堂视频| 日韩成人av在线| 日本99久久| 欧美欧盟性爱网| 青青草a在线| 新激情五月开心五月婷婷五月丁香五月| 精品婷婷五月天| 99秘 在线| 婷婷五月视频| 91人操人人人操人| 久久伊人大香蕉| 五月天激情国产综合婷婷婷| 久久免费精彩视频| 激情五月成年| 六月婷婷最新网址| 另类图片激情五月| 久久九九综合| 丁香激情六月天婷婷| 久热精品视频| 极品另类| 成年人丁香五月| 婷婷色情 | 国产特黄色精品一区二区三区精品无广告| 91九色在线观看免费| 成人免费高清在线播放| 五月激情日本在线| 色五月婷激情| www,超碰| 亚洲无码99| 免费无码毛片一区二区A片| 丁香五月激情综合| 99婷五月| 五月天三级久久| 深爱五月激情综合| www久热com| 色偷偷色婷婷| 熟女人妻一区二区三区免费看| 九九99热精品| 久操人妻| 99人人操人人摸| 婷婷成年人免费视频| 婷婷伊人中文字幕| 精品一二三区久久AAA片| 国产操逼网站| 五月丁香婷婷综合在线| 狠狠操狠狠做| 97人人射| 丁香婷婷欧美综合| 91在线日| 五月天激情网页| 蜜臀99精品| 色婷婷久久综合| 婷婷狠狠干| 99色干| 激情 婷婷 插| 欧美五月婷婷| 99在线精品观看99| 男人視頻站| 电影《战争与艾拉》免费观看| 欧美性丁香色色五月天干干| 色婷婷av在线观看| 丁香狠狠操| 色色亚洲无码| www.久久久.com| 久久婷婷五月综合色区| 99久在线观看| 婷婷丁香综合成人| 99精品热| 第四色网婷婷| 婷婷播播五月天| 五月婷婷成人| 久久九九精彩| 久热这里精品免费| 免费看欧美成人A片无码| 亚洲成人AV高清字幕| 青青草色在线视频观看| 久久久精品人妻录| 国产亚洲精品久久久久久郑州 | 成年AAAA色情| 9色在线视频| 韩国97天堂| 久久精品在线| 男女免费视频999| 色综合视频在线| 激情深爱综合| 香蕉国产2013| 九九人人看| 婷婷五月色丁香在线看| 色爱综合网| 中文资源在线a| 激情深爱五月天| 成人精品免费在线观看| 久久6这里只有精品| 婷婷色综合| 人人操女人| 婷婷五月综合激情免费视频| 国产精品VIDEOSSEX久久发布| 激情五月天丁香| 天天综合 99久久婷婷| 99热伊人综合| 狠狠色综合五月| 欧美黑人巨大性生话| 婷婷五月天成人在线视频| 色老久久| 六月婷基地| 婷婷狠狠色| 久久久宗合视频88| 色五月色综合| 成人免费120分钟啪啪| 一级片sese片.COM| 久久婷婷综| 操碰99| 色九月婷婷综合| 婷婷爱五月| 五月天开心网| 婷婷色吧| 性综合网| 91夫妻网站九色| 五月天色婷婷基地| 激情6月| 激情黄色小说五月天| 久久婷婷五月天激情新地址| 狠狠狠激情网| 610018岁成人视频| 婷婷丁香五月天在线视频| 综合色播| 日本狠狠爽| 色狠狠色噜噜AV天堂五区| renrencaoav| 双性美人被调教到喷水A片| 婷婷五月天 偷拍| 极品人妻VIDEOSSS人妻| 婷婷玉月丁香五月在线视频| 国产成人AV| 色欲资源网| 婷婷五月天渟渟| 26uuu最新地址| 91日精品| 狼人狠狠操| 97超碰人人操| 91丨九色丨熟女|老版| 色综合激情| 五月天com| 久久ER视频com| 碰99在线| www,色色色网站| 久9视频免费播放| 色久天| ,99视频久久| 色吧婷婷五月亚洲| 日韩三级高清无码| 亚州操操| 婷婷久久五月| 久久精品国产色| 中文字幕1区2区。| 91精品综合久久久久久五月丁香| 婷婷影院欧美| 丁香五月天啪啪| 婷婷亚洲激情在线观看视频| 色狠狠色综合久久久绯色aⅴ影视| 综合久久人妻| 亚洲成人AV在线观看| 日韩啪啪视频| 五月情婷婷| 99九九热在线观看| 欧美日韩成人在线| 看久久性爱视频| 日韩在线视频网站| 久久久网站| 五月天五月天激情网| 丁香 久久| 丁香五月天啪啪| 五月天激情无码| 超碰人人操在线| 99国产精品白浆在线观看免费| 狠狠色噜噜狠狠狠888了| 永久热91| 丁香五月综合| 有码人妻久久| 色九综合| 天天插天天射| 热久久99视频| 婷婷五月丁香超碰| 日日夜夜狠狠| www.婷婷五月天.com| 色情·com| 亚洲人成网站999久久久综合| 日韩另类| 亚洲色激情| 狠狠色婷婷| 色婷婷亚洲综合网站| 五月激情婷婷丁香| 天天情色综合网| 色五月网址| 96色婷婷| 久久婷婷视频| 色色色网站| α久久| 日本综合色色| 中文字幕操比影片| 色综合99| 人妻内射视频| 婷婷五月天激情在线观看 | 久狠日av| 婷婷色色网| Av在线不卡一区| 五月丁香啪啪啪| 思思 热 99| 26uuu欧美日韩| 97精品自拍视频| 大伊香蕉精品视频在线| 综合狠狠干| 九九精品视频在线观看| 伊人青草成人| 色娸娸综合网| av五月丁香| 亚洲日韩乱码一区二区三区四区 | 亚洲综合干| 91大神操美女| 狠狠色婷婷丁香五月| 日本不卡一区二区三区| 午夜天堂啪啪| 人人干av| 天天天天爽爽天干| 亚洲五月六丁香激情| 色情丁香五月婷婷精品| 婷婷激情四射五月天| 大地资源色婷婷视频在线| 日本久热| 久久婷婷丁香| 婷婷五月天电影区小说区| 激情五月综合六月丁香婷婷狠狠干| 综合啪啪| 五月丁香久久呀| Av在线不卡一区| 九色综合网| 超碰v| 国産精品| 五月丁香成人| 五月丁香婷婷爱| 婷婷伊人五月天| 日日夜夜噜噜爽爽| 五月婷婷久久开心网| 婷婷五月天av网| 婷婷久久五月丁香| 日韩在线观看亚洲| 综合色吧| 91人人爽人人操| 国产FREESEXVIDEOS性中国 | 久久五月天激情美女| 女操碰| 91精品综合久久婷婷九色| 91久久久久久久久久| 色婷婷成人久久| 欧美成人AAA片一区国产精品| 五月色综合| 天天爽天天日| 91日韩在线| 99精品在线| 激情五月天婷婷五月天| 久色视频| 久草热在线视频| 小视频久久久aaa| 久9视频| 99ri精品| 五月天色丁香| 丁香五月Av| 久久婷婷综合五月天| 五月婷婷综合在线| 国产成人网站在线观看| 五月天开心网| 日本不卡一区二区三区| 香蕉久久国产AV一区二区| 国产一区二区av免费| 日本不卡高字幕在线2019| 99精品国产在热久久| 中文字幕一色哟哟哟哟| 五月婷婷六月激情| 日比视频91| 大香蕉欧美在线| 成人视频在线免费播放| 91在线日本| www.五月天色色.com| 99在线热| 天天免费成年人视频| 五月丁香直播| 思思热99在线| 丁香婷婷月| 99热综合在线| 婷香五月激情视频| 噼里啪啦在线观看免费完整版视频| 精品一二三区久久AAA片| 999热在线观看视频| 综合99在线| 另类丁香综合| 日韩成人AV在线| 综合激情啪啪| 六月婷婷久久大全| 婷婷五月色色| 色香欲综合| 青青久久五月| www91久久| 精热在线综合网| 第四色婷婷色五月| 91精品综合久久久久久五月丁香 | www.97干视频| 九九热这里只有精品5| www.狠狠色.com| 天天做好综合色| 激情综合色网| 五月天激情色色| 激情五月天99色| 99九九精品| 亚洲激情网站| 黄色成人网站在线播放| 蜜桃成语时李时珍 免费| 色婷婷精品视频在线播放| 六月婷欧美| 人妻系列久久久久久久久久久| 九九色视频| 99性视频| 色色婷婷综合| 另类激情四射| 亚洲天堂AAA| 五月婷婷六月激情| 国产AV一区二区三区日韩| 9999热精品| 日本色道视频网站| 婷婷丁香色情五月天| 久久久91| 色五月婷婷丁香凹凸| 九月丁香婷婷综合| 天天性视频| 婷婷综合精品视频97| 久久综合爱| 九九99九九精品视频| 九九人人操| 激情欧美五月丁香| 99免费| 婷婷六月久久| 天干干夜夜操| 久久久久网站| 精品综合网在线| 久久婷婷五月天激情新地址| 丁香丝袜五月| 亚洲成人五月天| 青青草原爱爱网| 狠狠色丁香99| 婷久久| 在线观看欧美3区| 99婷婷五月天| www.狠狠艹| 图片区 小说区 区 亚洲五月| 踪合专区啪啪| 99热这里只有免费精品| 能看的AV| 操久久网| 五月婷激情| 淫视馆av三区| 97五月天婷婷午夜| 色色色色色色色色网站| 风流少妇A片一区二区蜜桃 | 黄色av网站在线免费播放| 激情丁香五月天综合| 99只有这里有精品在线视频| 精品香蕉99久久久久网站| 激情婷婷| 9久久久久| 婷婷五月欧美| 亚洲综合狠狠艹| AV九九| 丁香六月婷婷激情综合| 丁香五月影院| 激情网色五月| 婷婷五月天激情亚洲小说| 99精品在线| 五月婷婷欧美| 五月丁香六月婷婷的女人| 少妇伦子伦精品无吗| 五月丁六月香av| 中文字幕av在线| 五月天婷婷色综合| 超碰在线日夜| 99视频地址| 久久久97| 激情桃色网 | 91性人人| 色婷婷www| 婷婷丁香综合网| www.操逼comm| 成功精品影院| 激情五月天婷婷免费观看| 69久久99精品久久久久婷婷| 9视频1在线| 婷婷五月天激情电影小说| 69人人操人人爽| 色综合久久久久久久久五月| 亚洲激情网| 5月激情天| 国产精品国产| 色婷婷综合综合网| 婷婷五月天成人| 亚洲AV第二区国产精品| 中文av网| 国产精品电影网| 91九色视频在线观看| 3p久久| 射久久丁香五月| 91精品综合久久久久久五月丁香| 99热欧美在线观看| 99成人在线观看| av国产精品偷| 九月色婷婷| 亚洲色五月| 精品一区二区三区免费毛片爱| 色播五月婷婷综合| 免费无码毛片一区二区A片| 九九视频精品这里只有| 国产精品18久久久| 狠狠操.COM| 嘿嘿视频免费看9| 色色亚洲五月天| 99爱99操| 99热在线播放| 久久综合热17c| 成人中文网| 岛国AV网站| 9伊人网| 99在线精品视频在线观看| 6月丁香婷婷| 国产精品国产成人国产三级| 夜夜天天久久婷婷| 九九99热精品| 日日操夜夜撸| 久久色情| 九九人人操| 区区欧美你爱| 91久草五月天婷婷| 97操视频| 五月天第四色开心色播| 97luluse| 五月精品| 五月天婷亚洲天综合网综合| 成人做爰A片免费看视频 | 日本色色网站| 91啪啪| 欧美综合激情| 五月婷婷,六月丁香| 黄色三级日本| 色色色网站| 婷婷丁香五月在线播放| 日韩超碰在线| 国产精品99久久久久久久女警| 天天色综合综合| 久久五月激情| 欧美激情综合色综合啪啪五月| 丁香五月婷婷色| 黄网在线免费播放| 五月婷婷激情网| 99热这里只有精品最新| www999日韩精品| 精品人妻伦九区久久AAA片| 亭亭五月色男人| 99热国产| WWW色色色COM| 人人操91| 人妻精品久久久久久久| AV动漫不卡无码免费|