精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩一区二区电影网| 中文字幕不卡在线播放| 91国内精品久久| 国产7777777| 一区二区三区国产好| 日韩欧美中文免费| 992tv快乐视频| 亚洲三级黄色片| 久草在线在线精品观看| 国语自产精品视频在线看抢先版图片| 国产伦理片在线观看| 北条麻妃一区二区三区在线| 欧美午夜片在线看| 日本a在线免费观看| 欧美私人网站| 91老司机福利 在线| 3d动漫啪啪精品一区二区免费 | 亚洲码国产岛国毛片在线| 久久国产手机看片| www.色亚洲| 久草热8精品视频在线观看| 91精品国产色综合久久不卡98口 | 亚洲综合丁香婷婷六月香| 视频一区二区在线| 亚洲 小说区 图片区 都市| 国内精品在线播放| 国产一区视频在线播放| 国产成人免费看| 精品福利电影| 欧美美女15p| 一本一本久久a久久| 国产精品一在线观看| 亚洲国内精品在线| 亚洲少妇一区二区三区| 日本在线成人| 91精品国产91久久久久久一区二区| 亚洲视频在线a| 成人爽a毛片免费啪啪| 欧美日韩国产精品一区| 国产成人一区二区三区别| 麻豆免费在线视频| 国产精品久久久久久久久免费丝袜| 欧美区高清在线| 亚洲欧美日韩动漫| 91免费视频观看| 久久久久久久久久久久久久一区 | 欧美精品免费在线| 三级影片在线看| 欧美精品午夜| 久久久久久久久亚洲| 国产精品99精品| 最新日韩av| 欧美有码在线视频| 欧美 日韩 精品| 久久精品电影| 国产精品一区二区在线| 亚洲一区二区天堂| 久久99国产精品尤物| 91视频九色网站| 亚洲AV无码乱码国产精品牛牛 | 日本欧美色综合网站免费| 日本中文字幕一区二区有码在线 | 天天看天天摸天天操| 99视频精品视频高清免费| 播播国产欧美激情| 麻豆chinese极品少妇| 悠悠资源网久久精品| 51视频国产精品一区二区| 中文字幕视频网| 日本欧美一区二区在线观看| 国产在线高清精品| www.五月天激情| 久久久久久免费网| 一区二区三区精品国产| 伊人电影在线观看| 欧美日韩在线视频首页| 成人午夜激情av| 国产专区精品| 日韩经典一区二区三区| 山东少妇露脸刺激对白在线| 亚洲一区二区三区无吗| 97国产suv精品一区二区62| 国产午夜无码视频在线观看| 精品一区二区精品| 国产一区二区三区无遮挡| 国产三区四区在线观看| 亚洲免费av高清| 欧美韩国日本在线| 动漫一区二区三区| 精品亚洲aⅴ在线观看| fc2ppv在线播放| 亚洲国产三级| 国产精品丝袜一区二区三区| 亚洲av无码乱码国产麻豆| 久久女同互慰一区二区三区| 日本免费在线视频观看| 成人免费直播live| 麻豆成人av| 二人午夜免费观看在线视频| 亚洲欧洲美洲综合色网| 精品少妇在线视频| 日韩毛片免费看| 日韩精品欧美激情| 国产67194| 日韩精品91亚洲二区在线观看| 91在线播放国产| 男人天堂亚洲二区| 亚洲狠狠丁香婷婷综合久久久| 亚洲成熟丰满熟妇高潮xxxxx| 精品国产18久久久久久二百| 国产亚洲视频在线| www.国产成人| 国产精品18久久久久| 色噜噜一区二区| 久草在线资源福利站| 欧美精品一卡二卡| 一级片视频免费看| 亚洲乱亚洲高清| 亚洲自拍偷拍福利| av在线免费观看网站| 精品欧美aⅴ在线网站| 中文字幕久久av| 欧美日韩一区二区综合| 欧美一二三视频| 欧美一级特黄aaaaaa| 亚洲欧美日韩人成在线播放| 韩国中文字幕av| 久久av影视| 性做久久久久久免费观看| 日韩不卡一二三| 欧美人与拘性视交免费看| 国内精品小视频| 亚洲av无码国产精品久久不卡| 亚洲欧洲性图库| 99热一区二区| 日韩大片在线| 国产精品美女呻吟| 国产在线网站| 欧美综合欧美视频| 免费黄在线观看| 日本欧美韩国一区三区| 欧美一区2区三区4区公司二百| 麻豆mv在线看| 亚洲毛片在线观看.| 日韩 国产 在线| 不卡电影一区二区三区| 日本在线xxx| 欧美色片在线观看| 亚洲精品一区二区三区婷婷月| 日韩av黄色片| 91亚洲男人天堂| 久久美女福利视频| 亚洲伊人春色| 国产精品一区二区三区免费视频 | 九九国产精品视频| 亚洲视频在线观看日本a| 国产成人午夜性a一级毛片| 色偷偷亚洲男人天堂| 欧美成人国产精品高潮| 国内精品久久久久影院色| 一区二区三区四区| 精品国产乱码久久久久久樱花| 日韩在线免费观看视频| 97视频免费在线| 亚洲免费观看视频| 成人啪啪18免费游戏链接| 精品久久久久久久久久久下田| 青青青国产精品一区二区| 韩日在线视频| 91麻豆精品国产91久久久| 欧美黄色免费看| 成人免费视频app| 欧美成人免费高清视频| 91麻豆精品国产91久久久平台| 国产一区二区香蕉| 天堂成人av| 日韩成人在线播放| 亚洲一区二区人妻| 亚洲妇熟xx妇色黄| 91网站免费视频| 国产真实乱偷精品视频免| www.av片| 欧美电影免费| 国产一区二区三区av在线 | 成人国产精品一区二区| 亚洲小说区图片区都市| 精品亚洲一区二区| 91影院在线播放| 亚洲国产你懂的| 日本人亚洲人jjzzjjz| 国产精品亚洲视频| 日韩毛片在线免费看| 一区二区三区四区日韩| 麻豆成人小视频| 视频一区日韩精品| 国产精品久久二区| 国产无遮挡裸体视频在线观看| 中文字幕亚洲一区二区三区五十路| 亚洲精品一区二区三区不卡| 91久久精品国产91性色tv| 国产高清在线免费观看| 国产偷国产偷精品高清尤物| 可以看的av网址| 日韩电影在线免费观看| 成人午夜视频在线观看免费| 日韩欧美综合| 欧美另类视频在线| 国产精品调教视频| 91九色国产在线| 韩日一区二区| 欧美在线一级va免费观看| 亚洲大胆人体大胆做受1| 有码中文亚洲精品| 久久久资源网| 亚洲第一页自拍| 99产精品成人啪免费网站| 色婷婷综合激情| 中文字幕在线观看免费视频| 亚洲最大成人网4388xx| 四虎地址8848| 国产欧美在线观看一区| 人妻丰满熟妇aⅴ无码| 国产福利精品导航| 91插插插影院| 久久成人免费日本黄色| 精品亚洲一区二区三区四区| 亚洲欧美日本国产专区一区| 欧美一级片免费播放| 欧美韩日精品| 日韩视频 中文字幕| 亚洲澳门在线| 特级毛片在线免费观看| 91视频久久| 亚洲日本理论电影| 欧美丝袜激情| 神马一区二区影院| 欧洲grand老妇人| 日韩成人av网站| 国产精选一区| 亚洲 日韩 国产第一区| 成人综合久久| 亚洲图片都市激情| 亚洲成av人片乱码色午夜| 在线国产伦理一区| 亚洲精品888| 久久免费一级片| 欧美视频二区| 成年人午夜免费视频| 夜久久久久久| 日韩精品无码一区二区三区免费| 久久婷婷久久| 一区二区xxx| 激情五月婷婷综合网| 三级网站免费看| 国产91精品精华液一区二区三区 | 国产成人美女视频| 国产一区亚洲一区| 9191在线视频| 99国产欧美另类久久久精品| 老司机福利av| 日本一二三不卡| 青花影视在线观看免费高清| 亚洲欧美欧美一区二区三区| 欧美黄色免费观看| 欧美日韩另类在线| 欧美一级做a爰片免费视频| 精品视频在线视频| 99久久久国产精品无码网爆 | 国产精品狠色婷| 99综合99| 久草精品电影| 成人在线亚洲| www国产免费| 亚洲免费影院| 手机av在线网站| av在线这里只有精品| 国产视频三区四区| 亚洲一区二区三区在线看| 国产成人无码av| 4438成人网| 四虎影视精品成人| 深夜精品寂寞黄网站在线观看| 日韩精品分区| 国产精品草莓在线免费观看| 无人区乱码一区二区三区| 久久综合精品一区| 亚洲免费二区| 男人操女人免费| 国产高清精品网站| 五月天综合视频| 一区二区三区精品在线| jizz国产在线| 69av一区二区三区| av资源在线免费观看| 综合电影一区二区三区 | 偷拍日韩校园综合在线| 中文字幕欧美在线观看| 精品毛片乱码1区2区3区 | 国产欧美一区二区三区鸳鸯浴| 欧美日韩一级在线观看| 日本韩国一区二区| 丰满岳乱妇国产精品一区| 一区二区在线免费视频| 成年人在线网站| 亚洲aa在线观看| 精品国产乱码久久久久久蜜坠欲下 | 日韩美女视频免费在线观看| 亚洲性视频在线| 一区二区三区四区视频在线| 国产一区导航| 中国特级黄色片| 日韩一区有码在线| 欧美一级做a爰片免费视频| 亚洲精品999| 婷婷在线播放| 92福利视频午夜1000合集在线观看| 久久91精品| 九色在线视频观看| 成人一区二区三区视频在线观看| sm捆绑调教视频| 欧洲av一区二区嗯嗯嗯啊| 日本一级在线观看| 久久免费高清视频| 日韩区一区二| 午夜久久久久久久久久久| 久久99久久久久久久久久久| 蜜桃av乱码一区二区三区| 欧美日韩国产精品一区二区三区四区| 亚洲国产www| 欧美日本在线视频中文字字幕| 中文成人在线| 一区二区三区偷拍| 九一久久久久久| 日韩av片在线免费观看| 欧美中文一区二区三区| 全部免费毛片在线播放网站| 97精品伊人久久久大香线蕉 | 日韩av大全| 日韩精品亚洲专区| 亚洲精品乱码久久久久久久久久久久| 欧美日韩国产在线看| 无码国产精品一区二区免费16| 欧美激情视频一区二区三区不卡| 精品一区视频| 99久久免费观看| 成人短视频下载| 久久久久久久久久影院| 亚洲国产精品99| 老色鬼在线视频| 免费观看成人在线| 丝瓜av网站精品一区二区| 日本欧美一区二区三区不卡视频| 91成人在线精品| 在线免费观看黄| 92看片淫黄大片欧美看国产片| 一级毛片免费高清中文字幕久久网| 亚洲国产日韩在线一区| 亚洲一区在线观看免费 | 99久久国产综合精品五月天喷水| 成人黄色777网| av毛片在线免费观看| 中文国产成人精品久久一| 婷婷久久免费视频| 大胆欧美熟妇xx| 91色porny蝌蚪| 中文字幕在线观看视频一区| 欧美成人四级hd版| 精品成人自拍视频| 日本a√在线观看| 亚洲精品福利视频网站| 日本免费网站在线观看| 国产精品高潮呻吟久久av黑人| 999久久久免费精品国产| 粗大的内捧猛烈进出视频| 精品人伦一区二区三区蜜桃网站| 超碰在线国产| av日韩免费电影| 视频一区视频二区中文| youjizz亚洲女人| 欧美xxxxx牲另类人与| 电影一区二区三区| 久久av秘一区二区三区| 成人av电影在线播放| 日韩欧美一级大片| 欧美精品精品精品精品免费| 经典一区二区| 日本黄色一级网站| 欧美性猛交xxxx乱大交| 国产激情视频在线观看| 久久久久久国产精品mv| 国产资源精品在线观看| 亚洲婷婷综合网| 欧美成人免费小视频| 久久99国产精一区二区三区| www.桃色.com| 色婷婷久久综合| 9lporm自拍视频区在线| 综合操久久久| 久久精品亚洲一区二区三区浴池| 性猛交富婆╳xxx乱大交天津|