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

www.玖玖玖| 国产精品久久久久久久久免费看| 男插女视频网站| 高清精品在线| 国产欧美日韩不卡| 亚洲影院污污.| 天天干在线播放| 婷婷久久综合| 精品一区电影国产| 一级黄色在线播放| 中文字幕乱码在线播放| 亚洲欧美中日韩| 精品一区国产| av免费在线观看不卡| 国产精品呻吟| 美日韩精品免费观看视频| 182在线视频| 国产在线视频欧美一区| 色香蕉成人二区免费| 最新av网址在线观看| 女人天堂在线| 成人免费观看av| 国产剧情久久久久久| 欧美激情亚洲综合| 欧美精品大片| 日韩视频免费看| 中文字幕一区二区三区人妻| 精品成人18| 欧美色中文字幕| 黄色www网站| 特级毛片在线| 国产精品第五页| 欧美一区二区福利| 天堂在线视频免费| 日本高清视频在线播放| 成人在线免费| 欧美性高潮床叫视频| 国产专区在线视频| 黄色动漫在线| 国产精品丝袜久久久久久app| 国产中文一区二区| 丰满人妻一区二区| 国产不卡视频一区二区三区| 国产欧美一区二区三区四区| 国产寡妇亲子伦一区二区三区四区| 欧美色123| 久久影视免费观看| 黄色a级片在线观看| 日韩极品一区| 中文字幕亚洲无线码a| 国产三级av在线播放| 少妇精品导航| 精品伊人久久97| 99久久人妻精品免费二区| 亚洲视频国产精品| 精品久久久久久无| 韩国三级在线看| 亚洲一区 二区| 欧美精品一区二区久久久| 黑人无套内谢中国美女| 日本在线视频一区二区三区| 日韩一级片在线播放| 久久精品一二三四| 91精品国产自产精品男人的天堂| 日韩欧美久久久| 少妇熟女视频一区二区三区| 天堂av一区| 精品国产制服丝袜高跟| 国产一级黄色录像| 伊人久久大香线蕉无限次| 亚洲人成自拍网站| 你懂得视频在线观看| 色婷婷色综合| 欧美风情在线观看| 久热精品在线观看| 男人的天堂亚洲在线| 国产91色在线|免| 亚洲一卡二卡在线观看| 国产美女视频91| 精品国产中文字幕| 久草福利在线| 成人欧美一区二区三区黑人麻豆 | 给我免费播放日韩视频| 精品久久久久久久久久久久包黑料 | 亚洲第一国产精品| a级在线观看视频| 欧美日韩一二| 欧美成人精品不卡视频在线观看| 久久久久97国产| 久久青草久久| 亚洲综合大片69999| 视频一区二区免费| 国产精品美女久久久久久久久| 一区二区三区四区免费观看| 91在线三级| 欧美电影影音先锋| 亚洲狠狠婷婷综合久久久久图片| av影片在线一区| 色噜噜狠狠色综合网图区| 国产在线观看免费视频今夜| 久久久夜精品| 成人在线精品视频| 日韩欧美在线番号| 亚洲激情图片qvod| 天天操天天爱天天爽| 91精品国产乱码久久久竹菊| 中文字幕精品—区二区| 国产真人真事毛片| 精品一二线国产| 欧美亚洲爱爱另类综合| 免费污视频在线| 欧美日韩一卡二卡三卡| 无码成人精品区在线观看| 日韩一区自拍| 国产精品99久久久久久www| 国产毛片在线视频| 欧美激情一区二区三区在线| 波多野结衣之无限发射| 精品视频一区二区三区在线观看 | 999在线视频| 欧美日韩国产精品专区| 国模大尺度视频| 日韩国产一区| 国产精品旅馆在线| 四虎成人免费在线| 亚洲一区二区三区在线| 国产三级精品三级在线| 欧州一区二区| 国产精品白嫩初高中害羞小美女 | 日韩在线欧美在线| 91久久国产综合久久91| 成人av资源站| 97久久国产亚洲精品超碰热| 久久三级毛片| 日韩中文理论片| 中文字幕日日夜夜| 国产欧美精品一区aⅴ影院| 日韩视频第二页| 欧美日韩一本| 69av在线视频| 欧美日本网站| 色综合久久88色综合天天免费| 最新中文字幕日本| 影音先锋中文字幕一区二区| 99精品欧美一区二区三区| 超碰电影在线播放| 日韩一级完整毛片| 国产在线一区视频| heyzo一本久久综合| 成年人午夜免费视频| 精品少妇一区| 26uuu日韩精品一区二区| 天堂а在线中文在线无限看推荐| 性欧美疯狂xxxxbbbb| 日本三级日本三级日本三级极| 国内自拍一区| 久久久久久九九九九| 亚洲播播91| 伊人青青综合网站| 136福利视频导航| 亚洲女性喷水在线观看一区| 一个人看的视频www| 中文字幕日韩一区二区不卡| 亚洲永久在线观看| 国产深夜视频在线观看| 亚洲精品成人av| 国产第一页在线观看| 欧美国产一区在线| 伊人五月天婷婷| 亚洲国产婷婷| 亚州欧美一区三区三区在线| 色8久久久久| 欧美精品国产精品日韩精品| 午夜黄色小视频| 欧洲生活片亚洲生活在线观看| 国产美女高潮视频| 国产成a人无v码亚洲福利| 免费一级特黄特色毛片久久看| 自拍亚洲一区| 亚洲va欧美va在线观看| 爱情岛亚洲播放路线| 一区二区三区高清国产| 国产美女www爽爽爽视频| 午夜精品123| 天堂av免费在线| 成年人网站91| 亚洲一级片网站| 一区在线免费| 亚洲资源视频| 欧美黄色影院| 91精品中文在线| 亚洲黄色网址| 欧美裸身视频免费观看| 男人的天堂av高清在线| 制服.丝袜.亚洲.中文.综合| 国产成人无码精品久在线观看| 国产日韩欧美精品电影三级在线| 中文字幕乱码在线人视频| 日韩一区精品字幕| 青青青在线视频播放| 91日韩免费| 免费中文日韩| 哺乳挤奶一区二区三区免费看| 国产精品第3页| 白浆视频在线观看| 欧美成人全部免费| 高清毛片在线看| 亚洲精品一区二区三区影院 | 日本一区二区免费看| 在线日韩成人| 国产一区二区丝袜| 性欧美18一19sex性欧美| 久久免费精品视频| 国产黄网站在线观看| 亚洲一级一级97网| 日本国产在线| 亚洲第一精品福利| 国产丰满美女做爰| 欧美丰满一区二区免费视频| 欧美一级淫片免费视频黄| 亚洲成人免费电影| 久久久久久天堂| 亚洲人123区| www.xx日本| 国产精品久久夜| 99自拍偷拍视频| 国产精品女人毛片| 亚洲天堂岛国片| 国产三级久久久| www.av欧美| 国产色91在线| 人人爽人人爽人人片| 国产偷v国产偷v亚洲高清| 亚洲熟妇无码av| 91理论电影在线观看| 午夜视频在线观看国产| 成人一级片在线观看| 国产精品19p| 成人一区二区视频| 日韩无码精品一区二区| 成a人片亚洲日本久久| 久久久老熟女一区二区三区91| kk眼镜猥琐国模调教系列一区二区| 欧美熟妇精品一区二区| 成人永久aaa| 亚洲精品乱码久久久久久蜜桃图片| 国产精一区二区三区| 成年人性生活视频| 懂色一区二区三区免费观看| 国产av一区二区三区传媒| 豆国产96在线|亚洲| 91传媒理伦片在线观看| www.久久精品| 偷拍夫妻性生活| 国产精品午夜在线观看| 日本不卡一二区| 一区二区三区蜜桃网| 日本一级黄色录像| 欧美视频13p| 在线观看免费中文字幕| 欧美丰满高潮xxxx喷水动漫| 成 人 黄 色 片 在线播放| 亚洲成人av片| 国产特黄在线| 久久精品成人一区二区三区| 中文字幕在线观看网站| 亚洲2020天天堂在线观看| 欧洲av不卡| 成人激情春色网| 中文字幕男人天堂| 国产情侣一区| 国产精品亚洲二区在线观看 | 欧美一区二区三区免费观看| 东京一区二区| 国产日韩一区在线| jizz18欧美18| 欧洲视频一区二区三区| 天天做天天爱综合| 男人添女荫道口图片| 久久久久久一区二区| 91小视频在线播放| 97精品国产97久久久久久久久久久久| 久久久久无码精品国产sm果冻| 国产精品高潮呻吟久久| 久久婷婷国产麻豆91| 色综合天天综合网天天狠天天| 中文字幕乱码人妻二区三区| 日韩欧美一级在线播放| 免费观看成年在线视频网站| 久久天天躁狠狠躁夜夜爽蜜月| 岛国在线视频网站| 成人性生交大片免费观看嘿嘿视频| 成人精品毛片| 一本一本a久久| 一区二区三区精品视频在线观看| 亚洲一级片网站| 91免费视频大全| 国产精品久久久精品四季影院| 欧美日韩精品在线观看| 97超碰中文字幕| 亚洲精品视频免费| 日本欧美电影在线观看| 国产精品va在线播放我和闺蜜| 中文字幕一区二区三区四区久久 | 国产剧情在线| 国产精品第七影院| 群体交乱之放荡娇妻一区二区| 国产日韩视频在线播放| 香蕉久久a毛片| 久久久久无码国产精品一区李宗瑞| 国产精品―色哟哟| 国产农村妇女aaaaa视频| 精品久久久久一区| 超碰最新在线| 91精品国产综合久久香蕉的用户体验| 亚洲第一论坛sis| 国产无限制自拍| 国产九色精品成人porny| 成年人免费视频播放| 日本电影亚洲天堂一区| 婷婷丁香花五月天| 欧美激情第1页| 国产一区二区三区| 中文字幕一区二区中文字幕| 日韩和欧美的一区| xxx在线播放| 日韩欧美国产视频| 婷婷丁香花五月天| 国内精品小视频在线观看| 色播一区二区| 日韩一级免费看| 国产精品一区二区在线观看网站| 日韩一卡二卡在线观看| 欧美私人免费视频| seseavlu视频在线| 国产精品丝袜视频| 久久影视一区| 中文字幕丰满乱码| 成人欧美一区二区三区1314| 91国内精品视频| 久久国产一区二区三区| 婷婷精品久久久久久久久久不卡| 影音先锋欧美资源| 国内成人免费视频| 国产av无码专区亚洲av毛网站| 91精品国产免费| 亚洲精品一线| 国产伦视频一区二区三区| 亚洲欧洲视频| 北岛玲一区二区| 一本久道中文字幕精品亚洲嫩| 你懂的在线观看| 国产精品久久久久久久美男| 超碰成人久久| 亚洲一二三不卡| 亚洲一区视频在线观看视频| 欧洲成人一区二区三区| 97超级碰在线看视频免费在线看| 丝袜久久网站| 99视频在线视频| 综合电影一区二区三区| 成人av无码一区二区三区| 国内伊人久久久久久网站视频 | 亚洲欧洲午夜一线一品| 国产精品久久久久久久久免费高清 | 青梅竹马是消防员在线| 国产suv精品一区二区三区88区| 精品视频免费| 亚洲欧美一区二区三区不卡| 亚洲一二三专区| 免费黄网站在线观看| 国产日韩在线播放| 狠色狠色综合久久| 欧美做受xxxxxⅹ性视频| 欧美日韩国产美| 俄罗斯一级**毛片在线播放| 免费影院在线观看一区| 精品亚洲成a人| 日韩成人免费观看| 在线丨暗呦小u女国产精品| 麻豆国产一区| 久久久久狠狠高潮亚洲精品| 中文字幕第一区二区| 亚洲国产精品国自产拍久久| 欧美在线一级视频| 亚洲综合五月| 人妻熟女aⅴ一区二区三区汇编| 欧美色图片你懂的| 狂野欧美激情性xxxx欧美| 欧美一级二级三级| 国产成人小视频| 乱子伦一区二区三区| 欧美理论片在线观看| 欧美一区电影| 波多野结衣影院| 日韩一区二区三区三四区视频在线观看| 女人让男人操自己视频在线观看| 在线国产伦理一区| 久久综合国产精品| av网站在线免费看|