精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Serverless 工程實踐|Serverless 應用開發(fā)觀念的轉變

開發(fā)
在 Serverless 架構下,雖然更多精力是關注業(yè)務代碼,但是實際上對一些配置和成本也是需要關注的,并且必要的時候還需要根據配置與成本對 Serverless 應用進行配置和代碼優(yōu)化。

前言:在 Serverless 架構下,雖然更多精力是關注業(yè)務代碼,但是實際上對一些配置和成本也是需要關注的,并且必要的時候還需要根據配置與成本對 Serverless 應用進行配置和代碼優(yōu)化。

Serverless 應用開發(fā)觀念的轉變

Serverless 架構帶來的除了一種新的架構、一種新的編程范式,還包括思路上的轉變,尤其是開發(fā)過程中的一些思路轉變。有人說要把 Serverless 架構看成一種天然的分布式架構,需要用分布式架構的思路去開發(fā) Serverless 應用。誠然,這種說法是正確的。但是在一些情況下,Serverless 還有一些特性,所以要轉變開發(fā)觀念。

1、文件上傳方法

在傳統(tǒng) Web 框架中,上傳文件是非常簡單和便捷的,例如 Python 的 Flask 框架:

f = request.files['file']f.save('my_file_path')
但是在 Serverless 架構下,文件卻不能直接上傳,原因如下:

一般情況下,一些云平臺的API網關觸發(fā)器會將二進制文件轉換成字符串,不便直接獲取和存儲;
一般情況下,API 網關與 FaaS 平臺之間傳遞的數據包有大小限制,很多平臺限制數據包大小為 6MB 以內;
FaaS 平臺大多是無狀態(tài)的,即使存儲到當前實例中,也會隨著實例釋放而使文件丟失。
所以,傳統(tǒng) Web 框架中常用的上傳文件方案不太適合在 Serverless 架構中直接使用。在 Serverless 架構中,上傳文件的方法通常有兩種:一種是轉換為 Base64 格式后上傳,將文件持久化到對象存儲或者 NAS 中,但 API 網關與 FaaS 平臺之間傳遞的數據包有大小限制,所以此方法通常適用于上傳頭像等小文件的業(yè)務場景。

另一種上傳方法是通過對象存儲等平臺來上傳,因為客戶端直接通過密鑰等來將文件直傳到對象存儲是有一定風險的,所以通常是客戶端發(fā)起上傳請求,函數計算根據請求內容進行預簽名操作,并將預簽名地址返給客戶端,客戶端再使用指定的方法上傳,上傳完成之后,通過對象存儲觸發(fā)器等來對上傳結果進行更新等,如下圖所示。

在 Serverless 架構下文件上傳文件示例

以阿里云函數計算為例,針對上述兩種常見的上傳方法通過 Bottle 來實現。在函數計算中,先初始化對象存儲相關的對象等:

初始化對象存儲相關的對象等:

  1. AccessKey = {   "id"'',   "secret"''}OSSConf = {    'endPoint''oss-cn-hangzhou.aliyuncs.com',    'bucketName''bucketName',    'objectSignUrlTimeOut'60}#獲取/上傳文件到OSS的臨時地址auth = oss2.Auth(AccessKey['id'], AccessKey['secret'])bucket = oss2.Bucket(auth, OSSConf['endPoint'], OSSConf['bucketName'])#對象存儲操作getUrl = lambda object, method: bucket.sign_url(method, object, OSSConf['object    SignUrlTimeOut'])getSignUrl = lambda object: getUrl(object, "GET")putSignUrl = lambda object: getUrl(object, "PUT")#獲取隨機字符串randomStr = lambda len: "".join(random.sample('abcdefghijklqrstuvwxyz123456789    ABCDEFGZSA' * 100, len)) 

第一種上傳方法,通過 Base64 上傳之后,將文件持久化到對象存儲:

  1. #文件上傳# URI: /file/upload# Method: POST@bottle.route('/file/upload'"POST")def postFileUpload():    try:    pictureBase64 = bottle.request.GET.get('picture''').split("base64,")[1]    object = randomStr(100)    with open('/tmp/%s' % object, 'wb') as f:        f.write(base64.b64decode(pictureBase64))        bucket.put_object_from_file(object, '/tmp/%s' % object)        return response({        "status"'ok',        })    except Exception as e:    print("Error: ", e)    return response(ERROR['SystemError'], 'SystemError'

第二種上傳方法,獲取預簽名的對象存儲地址,再在客戶端發(fā)起上傳請求,直傳到對象存儲:

  1. #獲取文件上傳地址# URI: /file/upload/url# Method: GET@bottle.route('/file/upload/url'"GET")def getFileUploadUrl():    try:        object = randomStr(100)        return response({                    "upload": putSignUrl(object),                "download"'https://download.xshu.cn/%s' % (object)             })         except Exception as e:           print("Error: ", e)              return response(ERROR['SystemError'], 'SystemError'

HTML 部分:

  1. <div style="width: 70%">      <div style="text-align: center">           <h3>Web端上傳文件</h3>      </div>      <hr>      <div>          <p>                  方案1:上傳到函數計算進行處理再轉存到對象存儲,這種方法比較直觀,問題是 FaaS 平臺與 API 網關處有數據包大小上限,而且對二進制文件處理并不好。              </p>          <input type="file" name="file" id="fileFc"/>           <input type="button" onclick="UpladFileFC()" value="上傳"/>       </div>        <hr>       <div>         <p>                        方案2:直接上傳到對象存儲。流程是先從函數計算獲得臨時地址并進行數據存儲(例如將文件信息存到 Redis 等),然后再從客戶端將文件上傳到對象存儲,之后通過對象存儲觸發(fā)器觸發(fā)函數,從存儲系統(tǒng)(例如已經存儲到Redis)讀取到信息,再對圖像進行處理。          </p>             <input type="file" name="file" id="fileOss"/>          <input type="button" onclick="UpladFileOSS()" value="上傳"/>      </div></div> 

通過 Base64 上傳的客戶端 JavaScript 實現:

  1. function UpladFileFC() {      const oFReader = new FileReader();      oFReader.readAsDataURL(document.getElementById("fileFc").files[0]);       oFReader.onload = function (oFREvent) {          const xmlhttp = window.XMLHttpRequest ? (new XMLHttpRequest()) : (new                    ActiveXObject("Microsoft.XMLHTTP"))           xmlhttp.onreadystatechange = function () {                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {                            alert(xmlhttp.responseText)            }              }                const url = "https://domain.com/file/upload"           xmlhttp.open("POST", url, true);              xmlhttp.setRequestHeader("Content-type""application/json");               xmlhttp.send(JSON.stringify({                   picture: oFREvent.target.result             }));     }} 

 客戶端通過預簽名地址,直傳到對象存儲的客戶端 JavaScript 實現:

  1. function doUpload(bodyUrl) {      const xmlhttp = window.XMLHttpRequest ? (new XMLHttpRequest()) : (new Active               XObject("Microsoft.XMLHTTP"));        xmlhttp.open("PUT", bodyUrl, true);      xmlhttp.onload = function () {           alert(xmlhttp.responseText)      };       xmlhttp.send(document.getElementById("fileOss").files[0]);    }        function UpladFileOSS() {    const xmlhttp = window.XMLHttpRequest ? (new XMLHttpRequest()) : (new Active        XObject("Microsoft.XMLHTTP"))    xmlhttp.onreadystatechange = function () {        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {                        const body = JSON.parse(xmlhttp.responseText)                     if (body['url']) {                  doUpload(body['url'])               }        }        }        const getUploadUrl = 'https://domain.com/file/upload/url'       xmlhttp.open("POST", getUploadUrl, true);     xmlhttp.setRequestHeader("Content-type""application/json");     xmlhttp.send();} 

整體效果如圖中所示。

Serverless 架構下文件上傳實驗 Web 端效果

此時,我們可以在當前頁面進行不同類型的文件上傳方案實驗。

2、文件讀寫與持久化方法

應用在執(zhí)行過程中,可能會涉及文件的讀寫操作,或者是一些文件的持久化操作。在傳統(tǒng)的云主機模式下,可以直接讀寫文件,或者將文件在某個目錄下持久化,但是在 Serverless 架構下并不是這樣的。

由于 FaaS 平臺是無狀態(tài)的,并且用過之后會被銷毀,因此文件并不能直接持久化在實例中,但可以持久化到其他的服務中,例如對象存儲、NAS 等。

同時,在不配置 NAS 的情況下,FaaS 平臺通常情況下只具備 /tmp 目錄可寫權限,所以部分臨時文件可以緩存在 /tmp 文件夾下。

3、慎用部分 Web 框架的特性

(1) 異步

函數計算是請求級別的隔離,所以可以認為這個請求結束了,實例就有可能進入一個靜默狀態(tài)。而在函數計算中,API 網關觸發(fā)器通常是同步調用(以阿里云函數計算為例,通常只在定時觸發(fā)器、OSS 事件觸發(fā)器、MNS 主題觸發(fā)器和 IoT 觸發(fā)器等幾種情況下是異步觸發(fā))。

這就意味著當 API 網關將結果返給客戶端的時候,整個函數就會進入靜默狀態(tài),或者被銷毀,而不是繼續(xù)執(zhí)行完異步方法。所以通常情況下像 Tornado 等框架就很難在 Serverless 架構下發(fā)揮其異步的作用。當然,如果使用者需要異步能力,可以參考云廠商所提供的異步方法。

以阿里云函數計算為例,阿里云函數計算為用戶提供了一種異步調用能力。當函數的異步調用被觸發(fā)后,函數計算會將觸發(fā)事件放入內部隊列,并返回請求 ID,而不會返回具體的調用情況及函數執(zhí)行狀態(tài)。如果用戶希望獲得異步調用的結果,可以通過配置異步調用目標來實現,如圖所示。

函數異步功能原理簡圖

(2) 定時任務

在 Serverless 架構下,應用一旦完成當前請求,就會進入靜默狀態(tài),甚至實例會被銷毀,這就導致一些自帶定時任務的框架沒有辦法正常執(zhí)行定時任務。函數計算通常是由事件觸發(fā),不會自主定時啟動。例如 Egg 項目中設定了一個定時任務,但是在實際的函數計算中如果沒有通過觸發(fā)器觸發(fā)該函數,該函數不會被觸發(fā),也不會從內部自動啟動來執(zhí)行定時任務,此時可以使用定時觸發(fā)器,通過定時觸發(fā)器觸發(fā)指定方法來替代定時任務。

4、要注意應用組成結構

(1) 靜態(tài)資源與業(yè)務邏輯

在 Serverless 架構下,靜態(tài)資源更應該在對象存儲與 CDN 的加持下對外提供服務,否則所有的資源都在函數中。通過函數計算對外暴露,不僅會讓函數的業(yè)務邏輯并發(fā)度降低,也會造成更多的成本。尤其是將一些已有的程序遷移到 Serverless 架構上,例如 Wordpress 等,更要注意將靜態(tài)資源與業(yè)務邏輯進行拆分,否則在高并發(fā)情況下,性能與成本都將會受到比較嚴峻的考驗。

(2) 業(yè)務邏輯的拆分

在眾多云廠商中,函數的收費標準都是依靠運行時間、配置的內存以及產生的流量收費的。如果一個函數的內存設置不合理,會導致成本成倍增加。想要保證內存設置合理,更要保證業(yè)務邏輯結構的可靠性。

以阿里云函數計算為例,一個應用有兩個對外接口,其中有一個接口的內存消耗在 128MB 以下,另一個接口的內存消耗穩(wěn)定在 3000MB 左右。這兩個接口平均每天會被觸發(fā) 10000 次,并且時間消耗均在 100 毫秒。如果兩個接口寫到一個函數中,那么這個函數可能需要將內存設置在 3072MB,同時用戶請求內存消耗較少的接口在冷啟動情況下難以得到較好的性能;如果兩個接口分別寫到函數中,則兩個函數內存分別設置成 128MB 以及 3072MB 即可,如表所示。

通過上表可以明確看出合理、適當地拆分業(yè)務會在一定程度上節(jié)約成本。上面例子的成本節(jié)約近 50%。

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2021-10-13 09:45:54

Serverless 應用調試

2021-09-08 10:12:39

Serverless 云計算

2021-11-18 09:46:24

ServerlessKubeless 阿里云

2021-10-15 10:00:31

Serverless Knative

2017-05-29 08:18:11

Serverless架構軟件系統(tǒng)

2022-10-27 14:25:46

無服務器Serverless云原生

2021-09-06 16:00:39

Serverless當當Knative

2016-07-01 14:43:32

DockerServerless

2021-09-13 18:09:59

騰訊文檔業(yè)務云計算

2021-04-21 06:15:28

Serverless 云開發(fā) Todo 案例

2021-04-16 07:46:13

Serverless 云開發(fā)FaaS

2020-05-06 16:47:59

ServerlessMVC架構

2023-06-28 11:55:50

Serverless架構云計算

2017-03-15 19:03:05

云計算

2020-06-10 10:00:53

Serverless數據處理函數

2021-05-27 11:03:10

飛豬Serverless

2022-05-06 19:53:33

Java serve

2020-05-09 09:04:23

Serverless運維測試

2018-07-30 11:53:04

Kubernetes無服務器容器

2020-04-09 08:57:57

Serverless無服務器語言
點贊
收藏

51CTO技術棧公眾號

成人久久18免费网站漫画| 日韩一区二区免费在线电影| 成人动漫在线视频| 久久激情免费视频| 99国产精品久久一区二区三区| 亚洲免费观看高清完整版在线观看| 91中文在线观看| 九九九在线视频| 久本草在线中文字幕亚洲| 日韩欧美中文在线| 亚洲成人自拍视频| 国产av无码专区亚洲av| 在线观看一区| 亚洲三级黄色在线观看| 日本高清久久久| 日本色护士高潮视频在线观看| va亚洲va日韩不卡在线观看| 久久免费视频网站| 亚洲精品国产精品国自产网站| 欧美一级做a| 亚洲国产精品麻豆| 亚洲国产欧洲综合997久久 | 亚洲 小说区 图片区 都市| 午夜一区不卡| 萌白酱国产一区二区| 美女久久久久久久久| 欧美性suv| 亚洲免费av网站| 欧美日韩精品中文字幕一区二区| 中文字幕在线播| 欧美黄色aaaa| 国产一区二区三区毛片| 亚洲精品乱码久久久久久9色| 精品三级久久| 亚洲欧美一区二区久久| 久久久久资源| 精品美女www爽爽爽视频| 亚洲高清毛片| 俺去亚洲欧洲欧美日韩| 精品人妻一区二区免费视频| 成人国产精品一区二区网站| 欧美性高潮床叫视频| 久久久天堂国产精品| 成年人视频在线看| 国产成人精品在线看| 成人精品一区二区三区电影免费| 免费无遮挡无码永久在线观看视频| 神马日本精品| 精品国产乱码久久久久久牛牛| 国产免费观看高清视频| 欧美videosex性欧美黑吊| 国产精品网曝门| 久久本道综合色狠狠五月| 国产手机av在线| 奇米777欧美一区二区| 77777少妇光屁股久久一区| 日本高清一二三区| 成人区精品一区二区婷婷| 亚洲国产成人久久| 四虎国产精品永久免费观看视频| 久久久加勒比| 欧美在线你懂得| 一本久道综合色婷婷五月| 超碰资源在线| 亚洲妇熟xx妇色黄| 阿v天堂2018| 免费男女羞羞的视频网站在线观看| 国产亚洲一区字幕| 蜜桃传媒视频麻豆一区| 特级丰满少妇一级aaaa爱毛片| 成人在线综合网| 91观看网站| jizz中国女人| 国产高清久久久| 电影午夜精品一区二区三区| wwwav网站| 国产大陆a不卡| 99国产超薄丝袜足j在线观看| 国产伦精品一区二区三区视频痴汉 | 国产精品乱码妇女bbbb| 色姑娘综合网| 99视频在线观看地址| 成人午夜又粗又硬又大| 国产欧美欧洲| 色呦呦视频在线| 久久免费精品国产久精品久久久久| 高清不卡一区二区三区| 蜜臀久久99精品久久久| 波多野结衣在线aⅴ中文字幕不卡| 丁香五月网久久综合| 特黄视频在线观看| 久久久三级国产网站| 天堂资源在线亚洲视频| 免费成人黄色| 亚洲欧美日韩在线不卡| 男人天堂新网址| 日本蜜桃在线观看视频| 91精品91久久久中77777| 成人免费无码av| 国产精品久久久久久久久免费高清| 欧美日韩激情在线| 丰满少妇一区二区三区专区| 国产一区二区三区免费在线| 精品国偷自产国产一区| 成人片黄网站色大片免费毛片| 精品国产91| 久久综合久久八八| 精品爆乳一区二区三区无码av| 亚洲一区二区成人| 国产精品美女在线观看| 亚洲精品久久久久久无码色欲四季 | 亚洲国产精品精华液2区45| 日本一级淫片演员| av蜜臀在线| 精品视频123区在线观看| 91视频免费入口| 西野翔中文久久精品国产| 色先锋资源久久综合5566| 久久精品视频免费在线观看| 模特精品在线| 97超碰人人看人人| 欧美黄色小说| 一区二区免费在线| 成人性做爰aaa片免费看不忠| 日本精品视频| 国产亚洲日本欧美韩国| 久久精品国产亚洲av无码娇色 | 亚洲天堂av电影| 欧美 日韩 国产 一区二区三区 | 欧美综合天天夜夜久久| 久草免费资源站| 日韩极品一区| 2025国产精品视频| 国产精品一级视频| 91丨porny丨国产| 国产在线无码精品| 电影亚洲一区| 欧美精品一区男女天堂| 国产精品69久久久久孕妇欧美| 亚洲精品欧洲| 高清国产一区| 97caopron在线视频| 欧美丝袜丝交足nylons图片| 中文字幕在线播放视频| 欧美激情 亚洲a∨综合| 国产美女精品视频免费观看| 人人妻人人玩人人澡人人爽| 中文字幕一区二区三区在线播放| 北条麻妃在线一区| 成人搞黄视频| 久久精品国产清自在天天线| 99超碰在线观看| 99久久国产综合精品麻豆| 欧美日韩午夜爽爽| 2019中文亚洲字幕| 日韩在线观看免费网站| 国产免费a视频| 久久这里只精品最新地址| 你懂的av在线| 欧美巨大xxxx| 97成人超碰免| 同心难改在线观看| 亚洲3atv精品一区二区三区| 国产精品99精品无码视亚| 中文无码久久精品| 成人黄色影片在线| 无遮挡的视频在线观看| 欧美日韩一区二区三区四区 | 欧美特级黄色片| va亚洲va日韩不卡在线观看| www插插插无码视频网站| 97品白浆高清久久久久久| 久久伊人精品天天| 精品国产一级片| 一区二区三区日韩精品视频| 91福利国产成人精品播放| 日韩88av| 成人午夜在线视频一区| av网站免费在线观看| 日韩一区二区不卡| 久久久久噜噜噜亚洲熟女综合| 国产高清亚洲一区| 欧美精品一区二区三区三州| 久久黄色影视| 国产999在线| 精品麻豆一区二区三区| 在线成人高清不卡| 免费在线视频一区二区| 91日韩精品一区| 成年人观看网站| 国内精品久久久久久99蜜桃| 国产精品一二三在线| 黄视频在线观看网站| 日韩欧美在线网站| 精品在线播放视频| 国产日本亚洲高清| 福利视频999| 日韩视频在线一区二区三区 | 亚洲一区二区福利| 一卡二卡在线观看| 成人免费在线播放视频| 熟妇女人妻丰满少妇中文字幕| 亚洲激情不卡| 日韩欧美在线观看强乱免费| 九九99久久精品在免费线bt| 97精品视频在线| 北岛玲日韩精品一区二区三区| 欧美高清视频在线高清观看mv色露露十八| 老女人性淫交视频| av成人免费在线观看| 99热手机在线| 狠狠入ady亚洲精品经典电影| 精品视频免费观看| 国精品产品一区| 2019中文字幕在线免费观看| 麻豆影院在线| 在线日韩第一页| 台湾av在线二三区观看| 精品国产三级电影在线观看| 国产免费a视频| 丁香五六月婷婷久久激情| 九九热视频在线免费观看| 国产欧美日韩在线观看| 成人免费av片| 成人短视频下载| 日本wwwxx| 久久国产生活片100| 男人的天堂日韩| 久久亚洲美女| 欧美牲交a欧美牲交aⅴ免费真| 欧美三区在线| 欧美少妇一区二区三区| 91视频精品| 亚洲国产一区二区三区在线| 国产亚洲一区| 欧美性xxxx69| 欧美理伦片在线播放| 99国产视频在线| 成人av在线播放| 成人h视频在线观看播放| 成人黄色图片网站| 欧美一级片在线播放| av电影在线免费| 久久全国免费视频| 忘忧草在线日韩www影院| 性欧美激情精品| 欧美男男tv网站在线播放| 97精品国产97久久久久久免费| 黄网av在线| 久久久久久久久亚洲| 欧美精品videossex少妇| 欧美国产第二页| 不卡av免费观看| 国内精品视频一区| 日韩电影免费看| 国产精品成人在线| 国产91在线精品| 91亚洲精品在线| jizz性欧美23| 久久精品国产综合精品| 国产亚洲一区二区三区啪| 亚洲国产精品久久久久婷婷老年| 欧美激情偷拍自拍| 国产小视频免费| 国产精品视频久久一区| 8x8x最新地址| 精品亚洲国产成人av制服丝袜 | 欧美—级a级欧美特级ar全黄| 日韩av官网| 欧美一级在线亚洲天堂| 99久久er| 国产精品初高中精品久久| 日本欧美高清| 亚洲 日韩 国产第一区| 欧美91精品| 国内外成人免费激情视频| 蜜臀av一区二区在线免费观看| 日韩a一级欧美一级| 成人av资源在线| 亚洲图片第一页| 一区二区不卡在线播放 | 欧美精品久久久久久久多人混战| 精品国产av 无码一区二区三区| 精品999久久久| 超碰免费在线观看| 欧美裸体男粗大视频在线观看| 99riav视频在线观看| 国产精品久久久久久av福利| 日韩在线观看一区二区三区| 美乳视频一区二区| 亚洲乱码精品| 成年人在线看片| 国产河南妇女毛片精品久久久 | 国产成人精品久久久| 91麻豆精品国产综合久久久| 加勒比在线一区二区三区观看 | 日韩精品 欧美| 麻豆精品视频在线观看视频| 婷婷五月精品中文字幕| 国产精品美女久久久久久久久久久 | 神马久久一区二区三区| 国产免费xxx| 日日噜噜夜夜狠狠视频欧美人| 少妇熟女视频一区二区三区| 中文字幕欧美日本乱码一线二线| 国产无码精品在线播放| 欧美军同video69gay| 五月激情婷婷网| 九九久久久久99精品| 精品久久在线| 久久一区二区三区欧美亚洲| 欧美成人tv| 午夜免费福利视频在线观看| 久久精品综合网| 国产污片在线观看| 91精品欧美综合在线观看最新| 激情小说 在线视频| 韩日欧美一区二区| 欧美一区一区| 欧美三级午夜理伦三级老人| 日韩高清电影一区| 国产麻豆xxxvideo实拍| 一区二区三区在线视频免费| 性高潮视频在线观看| 亚洲欧美资源在线| 色是在线视频| 99国产超薄肉色丝袜交足的后果| 婷婷亚洲五月| 欧美激情第3页| 中文在线一区二区| 国产一卡二卡三卡| 亚洲无限av看| 欧美xoxoxo| 欧美日韩国产不卡在线看| 中文日韩欧美| 亚洲色偷偷色噜噜狠狠99网| 亚洲自拍偷拍麻豆| 亚洲乱码精品久久久久..| 色中色综合影院手机版在线观看 | 久久本道综合色狠狠五月| 在线观看一区视频| 午夜视频在线观看国产| 性做久久久久久免费观看| 日批免费在线观看| 欧美激情在线有限公司| 都市激情亚洲| 国产成人无码a区在线观看视频| 成人黄色大片在线观看| 久久久久久免费观看| 日韩欧美中文字幕制服| 91精品国产黑色瑜伽裤| 国产伦精品一区二区三区高清| 亚洲国产精品一区| 黄色免费视频网站| 欧美日韩性视频在线| 欧美日韩国产中文字幕在线| 国产精品www| 日本久久精品| www.午夜av| 亚洲综合免费观看高清完整版在线 | 在线视频超级| 日韩亚洲视频| 国产一区二区影院| 久久午夜无码鲁丝片| 日韩av在线播放资源| 国产不卡网站| 亚洲欧洲精品在线观看| 国产一区视频网站| www.youjizz.com亚洲| 日韩av在线一区二区| 88xx成人免费观看视频库| 亚洲高清精品中出| 国产精品888| 天天综合网久久综合网| 国产一区二区三区在线看| **国产精品| 欧美变态另类刺激| 亚洲国产精品精华液ab| 亚洲va欧美va| 国产精品久久久久久久久| 亚洲电影影音先锋| 在线天堂www在线国语对白| 欧美在线不卡视频| av免费在线观| 欧美精品七区| 国产精品自拍三区| 午夜影院免费在线观看| 成人欧美一区二区三区黑人麻豆 | 日韩欧美中文字幕一区| 女性女同性aⅴ免费观女性恋| 美女写真理伦片在线看| 亚洲午夜久久久影院| 国产精品一区二区美女视频免费看| 国产中文字幕乱人伦在线观看| 久久久久久久久久久99999| 国产尤物视频在线观看| 国自在线精品视频| 日韩在线中文| 黄色正能量网站| 欧美一区二区免费观在线|