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

分布式應用運行時 Dapr:萬物皆可 API

云計算 云原生
Dapr 是一個分布式系統工具包,通過提供 API 實現應用程序與外圍組件的解耦合,讓開發人員更加聚焦于業務邏輯的研發。

?Dapr[1] 分布式應用運行時 Distributed Application Runtime 的首字母縮寫。有關多運行時,可以看下 Bilgin Ibryam 的 Multi-Runtime Microservices Architecture[2],不想看英文的可以看下我之前的翻譯。

Dapr 是一個分布式系統工具包,通過提供 API 實現應用程序與外圍組件的解耦合,讓開發人員更加聚焦于業務邏輯的研發。解耦也是與傳統 SDK 的很大區別,能力不再是通過應用程序中加入庫的方式提供,而是通過應用附近的邊車(sidecar)運行時提供(sidecar 不是廣為人知的服務網格 sidecar - pod 中的容器,而是廣泛使用在系統軟件設計中的一種模式,比如操作系統的 initd、日志采集組件,甚至是 Java 中的多線程。)。因此這里說的 Dapr sidecar 可能是個獨立的進程,也可能是 pod 中的一個容器。

在 Dapr 中我們可以看到很多常見 SDK 的能力:

  • 如 SpringCloud、Netflix OSS 的 服務調用[3],以及超時、熔斷、重試等 彈性策略[4]
  • 如 Spring Data KeyValue 一樣提供 狀態存儲[5] 的抽象,簡化各種持久存儲的訪問
  • 如 Kafka、NATS、MQTT 等消息代理,提供 發布/訂閱[6] 抽象供服務通過消息進行通信
  • 如 Kafka、MQTT、RabbitMQ 提供以事件觸發應用的抽象:綁定[7]
  • 如 Redis 一樣的 分布式鎖[8]
  • 如 Consul、Kubernetes 等的 名稱解析[9]
  • ...

以上能力都是通過 HTTP 和 gRPC API 暴露給應用,這些 API 在 Dapr 中被叫做 構建塊[10](building blocks),并且也 僅提供抽象,也就是說你可以隨意替換底層實現(Dapr 中也叫做 組件[11])而無需修改任何應用代碼。

比如你的應用需要在存儲中保存狀態,在開發時可以使用 內存[12] 作為存儲組件,其他環境中可以使用 Mysql[13]、Redis[14] 等持久化組件。

圖片

接下來,就借助官方的入門指南體驗 Dapr 的。Dapr 提供了 多種入門指南[15],這里我選了其中的 hello-kubernetes[16],但實際操作可能與官方有些許差異,也正式這些差異能讓(坑)我對 Dapr 有更多的了解。

環境

安裝 Dapr CLI

Dapr CLI 是操作 Dapr 的工具,對可以用來安裝、管理 Dapr 實例,以及進行 debug。參考官方的 安裝文檔[17],我使用的是 macOS 選擇 homebrew 來安裝。

brew install dapr-cli

目前最新的版本是 1.9.1。

dapr version
CLI version: 1.9.1
Runtime version: n/a

創建 Kubernetes 集群

使用 k3s v1.23.8+k3s2 作為實驗環境集群。

export INSTALL_K3S_VERSION=v1.23.8+k3s2
curl -sfL https://get.k3s.io | sh -s - --disable traefik --disable servicelb --write-kubeconfig-mode 644 --write-kubeconfig ~/.kube/config

安裝 Dapr

執行下面的命令將 Dapr 安裝到集群中。

dapr init --kubernetes  --wait

檢查組件是否正常運行。在 Kubernetes 環境下,我們的很多命令都要使用 --kubernetes? 或者 -k 參數。

dapr status -k
NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED
dapr-dashboard dapr-system True Running 1 0.11.0 47s 2023-02-11 08:30.25
dapr-sentry dapr-system True Running 1 1.9.6 47s 2023-02-11 08:30.25
dapr-sidecar-injector dapr-system True Running 1 1.9.6 47s 2023-02-11 08:30.25
dapr-operator dapr-system True Running 1 1.9.6 47s 2023-02-11 08:30.25
dapr-placement-server dapr-system True Running 1 1.9.6 47s 2023-02-11 08:30.25

示例應用

環境部署好之后,我們來看下要用的示例應用。

git clone https://github.com/dapr/quickstarts
cd quickstarts/tutorials/hello-kubernetes

示例中包含了 2 個應用 pythonapp? 和 nodeapp,以及 Redis。

  • nodeapp 提供 HTTP 端點來創建和查詢訂單,訂單信息保存在 Redis 中
  • pythonapp? 會持續訪問 nodeapp 的 HTTP 端點來創建訂單

用到了 Dapr 的兩個功能:服務調用和狀態存儲。

創建應用命名空間

應用將部署在 dpar-test 命名空間下。

kubectl create namespace dapr-test

狀態存儲

狀態存儲使用 Redis,先部署 Redis 到命名空間 store? 下。簡單起見,只使用單 master 節點,并設置密碼 changeme。

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install redis bitnami/redis --namespace store --create-namespace \
--set replica.replicaCount=0 \
--set auth.password=changeme

創建組件

由于 Redis 設置了密碼,需要為 Dapr 提供訪問 Redis 的密碼,通過 Secret 來傳遞。Secret 保存在 dapr-test 下。

kubectl create secret generic redis -n dapr-test --from-literal=redis-password=changeme

根據 Redis store 規范[18] 在 dapr-test? 下創建組件 statetore:

  • 組件類型 type 為 state.redis
  • 版本 versinotallow=v1
  • 訪問地址 redisHost=redis-master.store:6379
  • Redis 的訪問密碼從秘鑰 redis 的鍵 redis-password 獲取
  • auth.secretStore 指定秘鑰存儲的類型是 `Kubernetes`[19]
kubectl apply -n dapr-test -f - <<EOF
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: redis-master.store:6379
- name: redisPassword
secretKeyRef:
name: redis
key: redis-password
auth:
secretStore: kubernetes
EOF

訪問狀態存儲

通過 Dapr API 訪問狀態存儲[20],請求格式:POST http://localhost:<daprPort>/v1.0/state/<storename>。

下面截取了 nodeapp? 中的部分代碼,stateStoreName? 就是上面創建的 statestore?。應用和組件位于同一命名空間下,直接只用 statestore?;否則,就要代碼組件所在的命名空間 storeName.storeNamespace?(由于代碼中硬編碼了組件名 statestore,所以在同命名空間下創建組件)。

const stateStoreName = `statestore`;
const stateUrl = `http://localhost:${daprPort}/v1.0/state/${stateStoreName}`;

const state = [{
key: "order",
value: data
}];

const response = await fetch(stateUrl, {
method: "POST",
body: JSON.stringify(state),
headers: {
"Content-Type": "application/json"
}
});

服務調用

調用方 pythonapp 的代碼。

  • 通過 sidecar daprd 的地址 localhost 和端口 3500 訪問 HTTP API。
  • 在請求頭中通過 dapr-app-id 指定目標應用 id nodeapp。應用 id 是通過 Kubernetes 注解 dapr.io/app-id 來設置的,更多注解可參考 文檔[21]。
  • 目標方法名通過請求路徑來指定:/neworder
dapr_port = os.getenv("DAPR_HTTP_PORT", 3500)
dapr_url = "http://localhost:{}/neworder".format(dapr_port)

n = 0
while True:
n += 1
message = {"data": {"orderId": n}}

try:
response = requests.post(dapr_url, jsnotallow=message, timeout=5, headers = {"dapr-app-id": "nodeapp"} )
if not response.ok:
print("HTTP %d => %s" % (response.status_code,
response.content.decode("utf-8")), flush=True)
except Exception as e:
print(e, flush=True)

time.sleep(1)

部署應用

kubectl apply -n dapr-test -f deploy/node.yaml
kubectl wait --for=cnotallow=ready pod -n dapr-test -l app=node --timeout=60s
kubectl apply -n dapr-test -f deploy/python.yaml
kubectl wait --for=cnotallow=ready pod -n dapr-test -l app=python --timeout=60s

檢查 node 容器的日志,可以接收到了來自 pythonapp 的請求,并成功持久化存儲了訂單。

kubectl logs -f -n dapr-test -l app=node -c node

Successfully persisted state for Order ID: 1
Got a new order! Order ID: 1
Successfully persisted state for Order ID: 2
Got a new order! Order ID: 2
Successfully persisted state for Order ID: 3
Got a new order! Order ID: 3
Successfully persisted state for Order ID: 4
Got a new order! Order ID: 4

Debug

原本官方的指南是將 Redis 和應用部署在同一個命名空間中,加上 nodeapp 中硬編碼了存儲組件名。而我實驗的時候講 Redis 部署在了另一個空間下,檢查 node 容器日志時看到的是:

Got a new order! Order ID: 1
Failed to persist state.

daprd 容器中,只有下面的日志。

time="2023-02-11T02:55:38.166259509Z" level=info msg="HTTP API Called: POST /v1.0/state/statestore" app_id=nodeapp instance=nodeapp-857cf6f985-jnmzw scope=dapr.runtime.http-info type=log useragent="node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" ver=1.9.6

通過為 nodeapp? 的 pod 添加注解 dapr.io/log-level="debug"? 讓 daprd 容器輸出 debug 日志。

time="2023-02-11T03:05:07.663028821Z" level=debug msg="{ERR_STATE_STORE_NOT_CONFIGURED state store is not configured}" app_id=nodeapp instance=nodeapp-59b754ff54-c4x4s scope=dapr.runtime.http type=log ver=1.9.6

更多 Debug 方式,參考官方的 Troubleshooting 文檔[22]。

總結

Dapr 提供了與傳統 SDK 方式完成不同的方法來實現系統集成,讓開發者可以專注于業務邏輯,而無需考慮底層的實現;對組織來說,應用變得更加便攜,可以使用不同的云環境。

但是 Dapr 本身無法跨云跨集群,社區正在考慮與服務網格集成來實現混合多云環境下的服務調用,大家可以期待一下。

參考資料

[1] Dapr: https://dapr.io

[2] Multi-Runtime Microservices Architecture: https://www.infoq.com/articles/multi-runtime-microservice-architecture/

[3] 服務調用: https://docs.dapr.io/developing-applications/building-blocks/service-invocation/

[4] 彈性策略: https://docs.dapr.io/operations/resiliency/policies/

[5] 狀態存儲: https://docs.dapr.io/developing-applications/building-blocks/state-management/

[6] 發布/訂閱: https://docs.dapr.io/developing-applications/building-blocks/pubsub/

[7] 綁定: https://docs.dapr.io/developing-applications/building-blocks/bindings/

[8] 分布式鎖: https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/distributed-lock-api-overview/

[9] 名稱解析: https://docs.dapr.io/reference/components-reference/supported-name-resolution/

[10] 構建塊: https://docs.dapr.io/concepts/building-blocks-concept/

[11] 組件: https://docs.dapr.io/concepts/components-concept/

[12] 內存: https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-inmemory/

[13] Mysql: https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-mysql/

[14] Redis: https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-redis/

[15] 多種入門指南: https://github.com/dapr/quickstarts/tree/master/tutorials

[16] hello-kubernetes: https://github.com/dapr/quickstarts/tree/master/tutorials/hello-kubernetes

[17] 安裝文檔: https://docs.dapr.io/getting-started/install-dapr-cli/

[18] Redis store 規范: https://docs.dapr.io/reference/components-reference/supported-state-stores/

[19] Kubernetes?: https://docs.dapr.io/reference/components-reference/supported-secret-stores/kubernetes-secret-store/

[20] Dapr API 訪問狀態存儲: https://docs.dapr.io/reference/api/state_api/#save-state

[21] 文檔: https://docs.dapr.io/reference/arguments-annotations-overview/

[22] Troubleshooting 文檔: https://docs.dapr.io/operations/troubleshooting/

責任編輯:武曉燕 來源: 云原生指北
相關推薦

2023-11-16 17:27:44

Java分布式應用程序

2019-01-18 12:59:46

智能養老IOT智能

2024-01-16 10:54:14

2022-04-20 10:33:59

人工智能數字經濟互聯網 文章鏈接:智

2022-09-25 22:19:24

Dapr分布式追蹤

2021-05-07 09:40:26

云計算云原生WebAssembly

2014-08-11 14:36:42

2021-12-27 10:16:06

AI 數據人工智能

2019-10-28 10:10:01

技術研發分布式

2015-07-20 15:44:46

Swift框架MJExtension反射

2020-05-09 13:00:08

AI 工具自動化

2016-05-27 08:23:33

數據分析數據科學數據思維

2020-12-18 09:32:03

Wi-Fi計算機隱私

2024-03-21 09:15:58

JS運行的JavaScrip

2021-12-13 11:07:10

鴻蒙HarmonyOS應用

2023-08-30 15:49:51

GraphQLAPI 開發

2020-10-12 17:21:21

IPv6互聯網技術

2024-06-18 12:36:08

2018-11-27 12:25:21

華為

2022-04-25 17:45:00

開發者
點贊
收藏

51CTO技術棧公眾號

国产精品免费一区二区三区四区| 日韩精品在线私人| 国产91porn| 蜜桃av中文字幕| 激情欧美一区| 亚洲视频在线看| 91网址在线观看精品| 免费看电影在线| 国产天堂亚洲国产碰碰| 成人激情视频在线播放| 在线观看亚洲欧美| 婷婷综合激情| 亚洲精品一区二三区不卡| 在线观看岛国av| 另类专区亚洲| 亚洲一二三四区不卡| 日韩高清国产一区在线观看| 国产激情视频在线播放| 日本aⅴ亚洲精品中文乱码| 久久国产精品视频| 国产高清一区二区三区四区| 亚洲成av人片在线观看www| 91久久免费观看| 人妻夜夜添夜夜无码av| 麻豆tv免费在线观看| 91免费看`日韩一区二区| 成人免费xxxxx在线观看| 黄色片免费观看视频| 女主播福利一区| 中文国产亚洲喷潮| 男人天堂av电影| 精品女人视频| 欧美成人激情免费网| 天天爽夜夜爽一区二区三区| 中文字幕在线看片| 亚洲国产精品久久不卡毛片| 99亚洲精品视频| 亚洲成人三级| 欧美高清在线精品一区| 久久综合九色综合久99| 手机在线观看免费av| 国产成人免费在线观看| 91精品视频大全| 亚洲一级黄色大片| 久久精品国产精品青草| 国产精品久久电影观看| 四虎成人永久免费视频| 亚洲人成免费| 国内精品久久久久久久久| 免费一级片视频| 日韩欧美大片| 中文字幕日韩综合av| 亚洲精品乱码久久久久久久| 国产成人精品亚洲线观看| 欧美不卡在线视频| 精品人妻二区中文字幕| 亚洲五码在线| 精品噜噜噜噜久久久久久久久试看| 国产精欧美一区二区三区白种人| 欧美成人三级| 日韩一区二区不卡| 午夜影院福利社| 麻豆一区二区麻豆免费观看| 亚洲电影免费观看| 亚洲av成人片色在线观看高潮| 九九热hot精品视频在线播放| 亚洲国产成人久久综合一区| 水蜜桃av无码| 国产精品羞羞答答在线观看| 在线观看欧美日韩| 永久av免费网站| 欧美91大片| 91国产在线精品| 精品久久久久久久久久久久久久久久| 视频一区欧美日韩| 91九色视频导航| 国 产 黄 色 大 片| 91蝌蚪porny成人天涯| 日韩高清dvd| www.久久久久.com| 精品电影在线观看| 91日韩视频在线观看| 亚洲国产aⅴ精品一区二区三区| 在线成人免费观看| av不卡中文字幕| 亚洲色图美女| 精品久久久999| 日本免费网站视频| 国产精品hd| 日本欧美精品在线| 国产情侣av在线| 99精品欧美一区| 亚洲精品在线视频观看| 欧美精品videosex| 欧洲精品视频在线观看| 五月天婷婷在线观看视频| 欧美高清视频看片在线观看| 日韩在线免费视频| 日韩乱码人妻无码中文字幕| 三级在线观看一区二区| 999国内精品视频在线| 极品白浆推特女神在线观看| 亚洲人成网站精品片在线观看| 国产老熟妇精品观看| 国产精品亚洲成在人线| 亚洲成年人在线播放| 亚洲一二三四视频| 一区二区毛片| 99伊人久久| av在线电影免费观看| 午夜久久久久久电影| 国内外成人免费在线视频| 久久香蕉精品香蕉| 不卡av电影院| www.av88| 久久久久久电影| 青草青青在线视频| 久久九九精品视频| 在线观看国产精品91| 国偷自拍第113页| 懂色av中文一区二区三区| 亚洲国产精品毛片| 永久免费毛片在线播放| 日韩三级.com| 国产午夜精品理论片| 免费永久网站黄欧美| 国产精品国产精品国产专区蜜臀ah | 日韩黄色影视| bbw在线视频| 欧美一区二区三区白人| 中文字幕免费在线看线人动作大片| 亚洲欧美综合| 国产色婷婷国产综合在线理论片a| 午夜一区在线观看| 亚洲一级二级在线| 无码人妻aⅴ一区二区三区玉蒲团| 久久性感美女视频| 日韩美女中文字幕| 欧美女v视频| 欧美日韩色婷婷| 日韩精品人妻中文字幕有码| 女人色偷偷aa久久天堂| 91精品在线影院| 黄a在线观看| 在线成人午夜影院| 美国黄色片视频| 激情丁香综合五月| 亚洲第一精品区| 欧美另类激情| 色悠悠久久久久| 亚洲熟妇无码久久精品| 国产片一区二区| 成人免费观看视频在线观看| 久久男人av| 欧美又大又粗又长| 日韩av高清在线| 色婷婷综合五月| www.久久av| 日韩精品一级二级| 日本视频一区二区不卡| 另类专区亚洲| 尤物yw午夜国产精品视频| 亚洲国产精品无码久久久| 国产日本欧美一区二区| 黄色三级视频片| 不卡在线一区二区| 成人国产精品一区二区| 米奇精品一区二区三区| 欧美一区二区三区小说| 男女羞羞免费视频| 国产成人精品免费| 亚洲中文字幕无码av永久| 日韩啪啪网站| 国产精品国产三级国产专播精品人 | 日韩激情久久| 日韩黄色三级在线观看| 久久手机免费视频| 粉嫩小泬无遮挡久久久久久| 一个色在线综合| 内射中出日韩无国产剧情| 日韩精品一二区| 自拍偷拍亚洲色图欧美| 视频亚洲一区二区| 7777免费精品视频| 在线日本视频| 精品久久久久香蕉网| 草莓视频18免费观看| 亚洲欧洲国产日韩| 小毛片在线观看| 免费人成黄页网站在线一区二区| 中文字幕日韩一区二区三区| 一区二区三区视频免费视频观看网站 | 中文字幕伦理片| 国产精品一区二区在线播放| 亚洲精品久久久久久久蜜桃臀| 亚洲精品蜜桃乱晃| 成人黄色av网站| 国产激情在线播放| 日韩资源在线观看| 天堂av手机版| 3d动漫精品啪啪一区二区竹菊| 国产亚洲精品码| 国产欧美日韩激情| 日本美女视频网站| 奇米影视一区二区三区| 国产免费一区二区视频| 欧美在线观看视频一区| 高清不卡日本v二区在线| 校园春色亚洲色图| 欧美人与物videos| 9i精品一二三区| 亚洲精品视频播放| 性生活免费网站| 欧美性感一区二区三区| 久久久久久久久久久久久久免费看 | 久久久久久久无码| 久久电影网站中文字幕| 18岁网站在线观看| 欧美 日韩 国产 一区| 少妇特黄a一区二区三区| 国语一区二区三区| 96精品久久久久中文字幕| 欧美无毛视频| 97婷婷涩涩精品一区| av毛片在线播放| 色偷偷综合社区| 黄色小视频在线观看| 亚洲第一网中文字幕| www.国产麻豆| 7777精品伊人久久久大香线蕉的 | 日韩美女在线视频| 一区二区www| 在线观看av一区二区| 日韩成人免费在线视频| 亚洲黄网站在线观看| 在线视频这里只有精品| 国产欧美综合在线观看第十页| 国产草草浮力影院| 粉嫩av一区二区三区粉嫩| 国产美女18xxxx免费视频| 日韩av在线免费观看不卡| 亚洲欧洲日产国码无码久久99| 国产一区日韩欧美| xxxxxx在线观看| 亚洲影视一区| 黄色小视频大全| 一区二区影院| 黄色一级片网址| 99久久精品国产亚洲精品| 亚洲精品8mav| 欧洲三级视频| 亚洲精品视频一区二区三区| 精品高清在线| 日韩精品久久久毛片一区二区| 亚洲瘦老头同性70tv| 亚洲欧美三级在线| 亚洲免费一级片| 精品久久免费看| 可以免费观看的毛片| 精品少妇一区二区三区日产乱码| 国产av无码专区亚洲av| 欧美一区二区三区在线| 亚洲第九十九页| 亚洲国产精品免费| 桃花色综合影院| 亚洲欧美日韩区| 成人在线免费电影| www.久久久久久.com| 大片免费在线观看| 欧美成人自拍视频| 美女av在线免费看| 秋霞av国产精品一区| 2019年精品视频自拍| 成人福利免费观看| 视频一区国产| 免费国产一区二区| 成人影视亚洲图片在线| 老司机av福利| 136国产福利精品导航网址| 国产乱子伦农村叉叉叉| 日韩高清不卡一区| 欧美精品色视频| 久久久午夜精品| 久久嫩草捆绑紧缚| 亚洲18色成人| 天天综合久久综合| 日韩午夜激情免费电影| 神马午夜精品95| 中文字幕亚洲欧美一区二区三区 | 神马久久久久| 色天天综合狠狠色| heyzo高清国产精品| 国产极品精品在线观看| 久久伊人久久| 欧美一区二区三区四区五区六区 | 欧美成在线观看| 成人性生活视频| 91亚洲精品在线观看| 欧美日韩一区二区三区不卡视频| 天天好比中文综合网| 午夜精品av| 婷婷免费在线观看| av在线播放不卡| 婷婷国产成人精品视频| 午夜免费久久看| 99久久免费国产精精品| 亚洲欧美激情精品一区二区| 成人欧美在线| 国产精品国产自产拍高清av水多| 一区二区三区国产好| 亚洲午夜在线观看| 先锋影音国产一区| 亚洲精品久久一区二区三区777 | 亚洲成人黄色在线观看| 最新av网站在线观看| 97超碰国产精品女人人人爽| 日本免费成人| 欧美不卡1区2区3区| 黄色成人av网站| 一区二区三区国产好的精华液| 久久精品一区二区三区av| 免费在线观看av网址| 欧美久久一区二区| 成人不用播放器| 日韩美女福利视频| 四虎884aa成人精品最新| av日韩在线看| 国产一区二区三区四| 国产精品www爽爽爽| 色婷婷综合在线| 九一在线视频| 国产69久久精品成人| 久久精品福利| 国产 日韩 欧美在线| 国产高清无密码一区二区三区| 黑人狂躁日本娇小| 3atv在线一区二区三区| 经典三级在线| 国产精彩精品视频| 不卡中文字幕| 五月天激情视频在线观看| 国产亚洲制服色| 日韩中文字幕高清| 亚洲网站在线观看| 自拍偷自拍亚洲精品被多人伦好爽| 美脚丝袜一区二区三区在线观看| 亚洲视频播放| 国产精品jizz| 一本大道久久a久久精品综合| 四虎精品在永久在线观看| 69av成年福利视频| 亚洲欧美tv| 别急慢慢来1978如如2| 国产日韩欧美高清| 一区二区视频网| 日韩色av导航| 视频精品国内| 国产91美女视频| 久久久精品国产99久久精品芒果| 无码人妻精品一区二区三区9厂| 亚洲男人天堂久| 国产综合色在线观看| 亚洲欧洲另类精品久久综合| 久久国产欧美日韩精品| 精品国产视频在线观看| 日韩欧美一区在线| 蜜桃视频动漫在线播放| 欧美日韩综合久久| 免费在线视频一区| 成人高潮免费视频| 精品国产免费人成在线观看| 黄色在线免费观看网站| 日本一区二区精品视频| 精彩视频一区二区| 加勒比av在线播放| 日韩国产中文字幕| 国产激情久久| 特级西西444| 91一区二区在线| 自拍偷拍精品视频| 色综合视频一区中文字幕| 要久久电视剧全集免费| 污污动漫在线观看| 一二三四区精品视频| 青青色在线视频| 91日本在线视频| 亚洲欧美日韩专区| 91传媒免费观看| 日韩精品在线免费播放| 亚洲一区二区av| 国产肥臀一区二区福利视频| 国产精品理伦片| 人妻一区二区三区免费| 国产精品成人av性教育| 欧美日韩国产成人精品| aaaaa级少妇高潮大片免费看| 69p69国产精品| 黑人巨大精品| a级黄色片免费| 欧美国产视频在线|