日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Bus 消息总线介绍

發布時間:2025/3/20 javascript 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Bus 消息总线介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 洛夜
來源 | 阿里巴巴云原生公眾號

在 Spring 生態中玩轉 RocketMQ 系列文章:

  • 《如何在 Spring 生態中玩轉 RocketMQ?》
  • 《羅美琪和春波特的故事…》
  • 《RocketMQ-Spring 畢業兩周年,為什么能成為 Spring 生態中最受歡迎的 messaging 實現?》
  • 《使用 rocketmq-spring-boot-starter 來配置、發送和消費 RocketMQ 消息》
  • 《Spring Cloud Stream 體系及原理介紹》

本文配套可交互教程已登錄阿里云知行動手實驗室,PC 端登錄 start.aliyun.com 在瀏覽器中立即體驗

Spring Cloud Bus 對自己的定位是 Spring Cloud 體系內的消息總線,使用 message broker 來連接分布式系統的所有節點。Bus 官方的 Reference 文檔?比較簡單,簡單到連一張圖都沒有。

這是最新版的 Spring Cloud Bus 代碼結構(代碼量比較少):

Bus 實例演示

在分析 Bus 的實現之前,我們先來看兩個使用 Spring Cloud Bus 的簡單例子。

1. 所有節點的配置新增

Bus 的例子比較簡單,因為 Bus 的 AutoConfiguration 層都有了默認的配置,只需要引入消息中間件對應的 Spring Cloud Stream 以及 Spring Cloud Bus 依賴即可,之后所有啟動的應用都會使用同一個 Topic 進行消息的接收和發送。

Bus 對應的 Demo 已經放到了 github 上,?該 Demo 會模擬啟動 5 個節點,只需要對其中任意的一個實例新增配置項,所有節點都會新增該配置項。

Demo 地址:https://github.com/fangjian0423/rocketmq-binder-demo/tree/master/rocketmq-bus-demo

訪問任意節點提供的 Controller 提供的獲取配置的地址(key 為hangzhou):

curl -X GET 'http://localhost:10001/bus/env?key=hangzhou'

所有節點返回的結果都是 unknown,因為所有節點的配置中沒有hangzhou這個 key。

Bus 內部提供了EnvironmentBusEndpoint這個 Endpoint 通過 message broker 用來新增/更新配置。

訪問任意節點該 Endpoint?對應的?url:?/actuator/bus-env?name=hangzhou&value=alibaba 進行配置項的新增(比如訪問 node1 的url):

curl -X POST 'http://localhost:10001/actuator/bus-env?name=hangzhou&value=alibaba' -H 'content-type: application/json'

然后再次訪問所有節點/bus/env獲取配置:

$ curl -X GET 'http://localhost:10001/bus/env?key=hangzhou' unknown% ~ ? $ curl -X GET 'http://localhost:10002/bus/env?key=hangzhou' unknown% ~ ? $ curl -X GET 'http://localhost:10003/bus/env?key=hangzhou' unknown% ~ ? $ curl -X GET 'http://localhost:10004/bus/env?key=hangzhou' unknown% ~ ? $ curl -X GET 'http://localhost:10005/bus/env?key=hangzhou' unknown% ~ ? $ curl -X POST 'http://localhost:10001/actuator/bus-env?name=hangzhou&value=alibaba' -H 'content-type: application/json' ~ ? $ curl -X GET 'http://localhost:10005/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10004/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10003/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10002/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10001/bus/env?key=hangzhou' alibaba%

可以看到,所有節點都新增了一個 key 為hangzhou的配置,且對應的 value 是alibaba。這個配置項是通過 Bus 提供的?EnvironmentBusEndpoint 完成的。

這里引用 程序猿DD 畫的一張圖片,Spring Cloud Config 配合 Bus 完成所有節點配置的刷新來描述之前的實例(本文實例不是刷新,而是新增配置,但是流程是一樣的):

2. 部分節點的配置修改

比如在 node1 上指定 destination 為 rocketmq-bus-node2 ( node2 配置了 spring.cloud.bus.id 為rocketmq-bus-node2:10002,可以匹配上) 進行配置的修改:

curl -X POST 'http://localhost:10001/actuator/bus-env/rocketmq-bus-node2?name=hangzhou&value=xihu' -H 'content-type: application/json'

訪問/bus/env 獲取配置(由于在 node1 上發送消息,Bus 也會對發送方的節點 node1 進行配置修改):

~ ? $ curl -X POST 'http://localhost:10001/actuator/bus-env/rocketmq-bus-node2?name=hangzhou&value=xihu' -H 'content-type: application/json' ~ ? $ curl -X GET 'http://localhost:10005/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10004/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10003/bus/env?key=hangzhou' alibaba% ~ ? $ curl -X GET 'http://localhost:10002/bus/env?key=hangzhou' xihu% ~ ? $ curl -X GET 'http://localhost:10001/bus/env?key=hangzhou' xihu%

可以看到,只有 node1 和 node2 修改了配置,其余的 3 個節點配置未改變。

Bus 的實現

1. Bus 概念介紹

1)事件

Bus 中定義了遠程事件RemoteApplicationEvent,該事件繼承了 Spring 的事件ApplicationEvent,而且它目前有 4 個具體的實現:

  • EnvironmentChangeRemoteApplicationEvent:遠程環境變更事件。主要用于接收一個 Map<String,String> 類型的數據并更新到 Spring 上下文中?Environment 中的事件。文中的實例就是使用這個事件并配合?EnvironmentBusEndpoint 和?EnvironmentChangeListener 完成的。
  • AckRemoteApplicationEvent:遠程確認事件。Bus 內部成功接收到遠程事件后會發送回AckRemoteApplicationEvent確認事件進行確認。
  • RefreshRemoteApplicationEvent: 遠程配置刷新事件。配合?@RefreshScope 以及所有的?@ConfigurationProperties注解修飾的配置類的動態刷新。
  • UnknownRemoteApplicationEvent:遠程未知事件。Bus 內部消息體進行轉換遠程事件的時候如果發生異常會統一包裝成該事件。

Bus 內部還存在一個非RemoteApplicationEvent事件 -SentApplicationEvent消息發送事件,配合 Trace 進行遠程消息發送的記錄。

這些事件會配合ApplicationListener進行操作,比如EnvironmentChangeRemoteApplicationEvent配了EnvironmentChangeListener進行配置的新增/修改:

public class EnvironmentChangeListenerimplements ApplicationListener<EnvironmentChangeRemoteApplicationEvent> {private static Log log = LogFactory.getLog(EnvironmentChangeListener.class);@Autowiredprivate EnvironmentManager env;@Overridepublic void onApplicationEvent(EnvironmentChangeRemoteApplicationEvent event) {Map<String, String> values = event.getValues();log.info("Received remote environment change request. Keys/values to update "+ values);for (Map.Entry<String, String> entry : values.entrySet()) {env.setProperty(entry.getKey(), entry.getValue());}} }

收到其它節點發送來EnvironmentChangeRemoteApplicationEven事件之后調用EnvironmentManager#setProperty進行配置的設置,該方法內部針對每一個配置項都會發送一個EnvironmentChangeEvent事件,然后被ConfigurationPropertiesRebinder所監聽,進行 rebind 操作新增/更新配置。

2)Actuator Endpoint

Bus 內部暴露了 2 個 Endpoint,分別是EnvironmentBusEndpoint和RefreshBusEndpoint,進行配置的新增/修改以及全局配置刷新。它們對應的 Endpoint id 即 url 是?bus-env和bus-refresh。

3)配置

Bus 對于消息的發送必定涉及到 Topic、Group 之類的信息,這些內容都被封裝到了BusProperties中,其默認的配置前綴為spring.cloud.bus,比如:

  • spring.cloud.bus.refresh.enabled用于開啟/關閉全局刷新的 Listener。
  • spring.cloud.bus.env.enabled 用于開啟/關閉配置新增/修改的 Endpoint。
  • spring.cloud.bus.ack.enabled 用于開啟開啟/關閉AckRemoteApplicationEvent事件的發送。
  • spring.cloud.bus.trace.enabled 用于開啟/關閉息記錄 Trace 的 Listener。

消息發送涉及到的 Topic 默認用的是springCloudBus,可以配置進行修改,Group 可以設置成廣播模式或使用 UUID 配合 offset 為 lastest 的模式。

每個 Bus 應用都有一個對應的 Bus id,官方取值方式較復雜:

KaTeX parse error: Expected '}', got 'EOF' at end of input: …plication.name:{spring.application.name:application}}:KaTeX parse error: Expected '}', got 'EOF' at end of input: …instance_index:{spring.application.index:KaTeX parse error: Expected '}', got 'EOF' at end of input: …al.server.port:{server.port:0}}}}:KaTeX parse error: Expected '}', got 'EOF' at end of input: …on.instance_id:{random.value}}

建議手動配置 Bus id,因為 Bus 遠程事件中的 destination 會根據 Bus id 進行匹配:

spring.cloud.bus.id=${spring.application.name}-${server.port}

2. Bus 底層分析

Bus 的底層分析無非牽扯到這幾個方面:

  • 消息是如何發送的
  • 消息是如何接收的
  • destination 是如何匹配的
  • 遠程事件收到后如何觸發下一個 action

BusAutoConfiguration自動化配置類被@EnableBinding(SpringCloudBusClient.class)所修飾。

@EnableBinding的用法在文章《Spring Cloud Stream 體系及原理介紹》中已經說明,且它的 value 為SpringCloudBusClient.class,會在SpringCloudBusClient中基于代理創建出 input 和 output 的DirectChannel:

public interface SpringCloudBusClient {String INPUT = "springCloudBusInput";String OUTPUT = "springCloudBusOutput";@Output(SpringCloudBusClient.OUTPUT)MessageChannel springCloudBusOutput();@Input(SpringCloudBusClient.INPUT)SubscribableChannel springCloudBusInput(); }

springCloudBusInput 和 springCloudBusOutput 這兩個 Binding 的屬性可以通過配置文件進行修改(比如修改 topic):

spring.cloud.stream.bindings:springCloudBusInput:destination: my-bus-topicspringCloudBusOutput:destination: my-bus-topic

消息的接收和發送:

// BusAutoConfiguration @EventListener(classes = RemoteApplicationEvent.class) // 1 public void acceptLocal(RemoteApplicationEvent event) {if (this.serviceMatcher.isFromSelf(event)&& !(event instanceof AckRemoteApplicationEvent)) { // 2this.cloudBusOutboundChannel.send(MessageBuilder.withPayload(event).build()); // 3} } @StreamListener(SpringCloudBusClient.INPUT) // 4 public void acceptRemote(RemoteApplicationEvent event) {if (event instanceof AckRemoteApplicationEvent) {if (this.bus.getTrace().isEnabled() && !this.serviceMatcher.isFromSelf(event)&& this.applicationEventPublisher != null) { // 5this.applicationEventPublisher.publishEvent(event);}// If it's an ACK we are finished processing at this pointreturn;}if (this.serviceMatcher.isForSelf(event)&& this.applicationEventPublisher != null) { // 6if (!this.serviceMatcher.isFromSelf(event)) { // 7this.applicationEventPublisher.publishEvent(event);}if (this.bus.getAck().isEnabled()) { // 8AckRemoteApplicationEvent ack = new AckRemoteApplicationEvent(this,this.serviceMatcher.getServiceId(),this.bus.getAck().getDestinationService(),event.getDestinationService(), event.getId(), event.getClass());this.cloudBusOutboundChannel.send(MessageBuilder.withPayload(ack).build());this.applicationEventPublisher.publishEvent(ack);}}if (this.bus.getTrace().isEnabled() && this.applicationEventPublisher != null) { // 9// We are set to register sent events so publish it for local consumption,// irrespective of the originthis.applicationEventPublisher.publishEvent(new SentApplicationEvent(this,event.getOriginService(), event.getDestinationService(),event.getId(), event.getClass()));} }
  • 利用 Spring 事件的監聽機制監聽本地所有的RemoteApplicationEvent遠程事件(比如bus-env會在本地發送EnvironmentChangeRemoteApplicationEvent事件,bus-refresh會在本地發送RefreshRemoteApplicationEvent事件,這些事件在這里都會被監聽到)。

  • 判斷本地接收到的事件不是AckRemoteApplicationEvent遠程確認事件(不然會死循環,一直接收消息,發送消息…)以及該事件是應用自身發送出去的(事件發送方是應用自身),如果都滿足執行步驟 3。

  • 構造 Message 并將該遠程事件作為 payload,然后使用 Spring Cloud Stream 構造的 Binding name 為 springCloudBusOutput 的 MessageChannel 將消息發送到 broker。

  • 4.@StreamListener注解消費 Spring Cloud Stream 構造的 Binding name 為 springCloudBusInput 的 MessageChannel,接收的消息為遠程消息。

  • 如果該遠程事件是AckRemoteApplicationEvent遠程確認事件并且應用開啟了消息追蹤 trace 開關,同時該遠程事件不是應用自身發送的(事件發送方不是應用自身,表示事件是其它應用發送過來的),那么本地發送AckRemoteApplicationEvent遠程確認事件表示應用確認收到了其它應用發送過來的遠程事件,流程結束。

  • 如果該遠程事件是其它應用發送給應用自身的(事件的接收方是應用自身),那么進行步驟 7 和 8,否則執行步驟 9。

  • 該遠程事件不是應用自身發送(事件發送方不是應用自身)的話,將該事件以本地的方式發送出去。應用自身一開始已經在本地被對應的消息接收方處理了,無需再次發送。

  • 如果開啟了AckRemoteApplicationEvent遠程確認事件的開關,構造AckRemoteApplicationEvent事件并在遠程和本地都發送該事件(本地發送是因為步驟 5 沒有進行本地AckRemoteApplicationEvent事件的發送,也就是自身應用對自身應用確認; 遠程發送是為了告訴其它應用,自身應用收到了消息)。

  • 如果開啟了消息記錄 Trace 的開關,本地構造并發送SentApplicationEvent事件。

  • bus-env觸發后所有節點的EnvironmentChangeListener監聽到了配置的變化,控制臺都會打印出以下信息:

    o.s.c.b.event.EnvironmentChangeListener : Received remote environment change request. Keys/values to update {hangzhou=alibaba}

    如果在本地監聽遠程確認事件 AckRemoteApplicationEvent,都會收到所有節點的信息,比如 node5 節點的控制臺監聽到的 AckRemoteApplicationEvent事件如下:

    ServiceId [rocketmq-bus-node5:10005] listeners on {"type":"AckRemoteApplicationEvent","timestamp":1554124670484,"originService":"rocketmq-bus-node5:10005","destinationService":"**","id":"375f0426-c24e-4904-bce1-5e09371fc9bc","ackId":"750d033f-356a-4aad-8cf0-3481ace8698c","ackDestinationService":"**","event":"org.springframework.cloud.bus.event.EnvironmentChangeRemoteApplicationEvent"} ServiceId [rocketmq-bus-node5:10005] listeners on {"type":"AckRemoteApplicationEvent","timestamp":1554124670184,"originService":"rocketmq-bus-node1:10001","destinationService":"**","id":"91f06cf1-4bd9-4dd8-9526-9299a35bb7cc","ackId":"750d033f-356a-4aad-8cf0-3481ace8698c","ackDestinationService":"**","event":"org.springframework.cloud.bus.event.EnvironmentChangeRemoteApplicationEvent"} ServiceId [rocketmq-bus-node5:10005] listeners on {"type":"AckRemoteApplicationEvent","timestamp":1554124670402,"originService":"rocketmq-bus-node2:10002","destinationService":"**","id":"7df3963c-7c3e-4549-9a22-a23fa90a6b85","ackId":"750d033f-356a-4aad-8cf0-3481ace8698c","ackDestinationService":"**","event":"org.springframework.cloud.bus.event.EnvironmentChangeRemoteApplicationEvent"} ServiceId [rocketmq-bus-node5:10005] listeners on {"type":"AckRemoteApplicationEvent","timestamp":1554124670406,"originService":"rocketmq-bus-node3:10003","destinationService":"**","id":"728b45ee-5e26-46c2-af1a-e8d1571e5d3a","ackId":"750d033f-356a-4aad-8cf0-3481ace8698c","ackDestinationService":"**","event":"org.springframework.cloud.bus.event.EnvironmentChangeRemoteApplicationEvent"} ServiceId [rocketmq-bus-node5:10005] listeners on {"type":"AckRemoteApplicationEvent","timestamp":1554124670427,"originService":"rocketmq-bus-node4:10004","destinationService":"**","id":"1812fd6d-6f98-4e5b-a38a-4b11aee08aeb","ackId":"750d033f-356a-4aad-8cf0-3481ace8698c","ackDestinationService":"**","event":"org.springframework.cloud.bus.event.EnvironmentChangeRemoteApplicationEvent"}

    那么回到本章節開頭提到的 4 個問題,我們分別做一下解答:

    • 消息是如何發送的: 在BusAutoConfiguration#acceptLocal方法中通過 Spring Cloud Stream 發送事件到springCloudBustopic 中。
    • 消息是如何接收的: 在BusAutoConfiguration#acceptRemote方法中通過 Spring Cloud Stream 接收springCloudBustopic 的消息。
    • destination 是如何匹配的:?在BusAutoConfiguration#acceptRemote方法中接收遠程事件方法里對 destination 進行匹配。
    • 遠程事件收到后如何觸發下一個 action: Bus 內部通過 Spring 的事件機制接收本地的RemoteApplicationEvent具體的實現事件再做下一步的動作(比如EnvironmentChangeListener接收了EnvironmentChangeRemoteApplicationEvent事件,RefreshListener接收了RefreshRemoteApplicationEvent事件)。

    總結

    Spring Cloud Bus 自身內容還是比較少的,不過還是需要提前了解 Spring Cloud Stream 體系以及 Spring 自身的事件機制,在此基礎上,才能更好地理解 Spring Cloud Bus 對本地事件和遠程事件的處理邏輯。

    目前 Bus 內置的遠程事件較少,大多數為配置相關的事件,我們可以繼承RemoteApplicationEvent并配合@RemoteApplicationEventScan注解構建自身的微服務消息體系。

    作者簡介

    方劍(花名:洛夜),GitHub ID @fangjian0423,開源愛好者,阿里巴巴高級開發工程師,阿里云產品 EDAS 開發,Spring Cloud Alibaba 開源項目負責人之一。

    總結

    以上是生活随笔為你收集整理的Spring Cloud Bus 消息总线介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久99精品久久久久久清纯直播 | 国内精品久久久久影院优 | 中文字幕在线观看完整 | 91污污视频在线观看 | 日韩av片在线 | 国产精品亚洲视频 | 亚洲精品国产精品国自产观看 | 日韩综合第一页 | 国产精品女教师 | 国产精品99在线观看 | 欧美在线视频一区二区三区 | 日韩高清免费在线观看 | www91在线| 亚洲国产精品一区二区久久hs | 99re中文字幕| 99激情网| 亚洲一区免费在线 | 中文字幕亚洲欧美日韩 | 久久99免费观看 | 黄色成年片 | 粉嫩av一区二区三区四区在线观看 | 最新国产精品拍自在线播放 | 国产黄色片在线 | 成人欧美一区二区三区在线观看 | 91精品国产91久久久久久三级 | av在线播放一区二区三区 | 伊人精品在线 | 久草精品在线播放 | 一区二区三区精品在线视频 | 欧美 日韩 视频 | 久久影视中文字幕 | 亚洲一区免费在线 | 91精品老司机久久一区啪 | 久草免费电影 | 日本最大色倩网站www | 国产精品v欧美精品v日韩 | 97超碰中文 | 免费视频色| 国产在线欧美 | 精品国产久| 国产高清小视频 | 成人天堂网 | 伊人狠狠操 | 亚洲网久久 | 久久男女视频 | 美女视频a美女大全免费下载蜜臀 | 欧美一区二区在线看 | 国产视频九色蝌蚪 | 亚洲在线国产 | 国内精品久久久久久久97牛牛 | 免费毛片一区二区三区久久久 | 91精品国产福利在线观看 | 国产亚洲精品久久久久久 | 玖玖在线观看视频 | 日韩精品一区二区三区三炮视频 | 91免费视频黄 | 国产一区二区在线精品 | 国产一区二区三区四区在线 | 婷婷丁香狠狠爱 | 亚洲国产大片 | 一级一片免费视频 | 色综合天天天天做夜夜夜夜做 | 91视频最新网址 | 欧美在线一二区 | 久久久久免费精品国产小说色大师 | 亚洲一二三在线 | 天天色天天操综合 | 亚洲成人资源在线 | 亚洲精品永久免费视频 | 久久免费的视频 | 九精品 | 色婷婷啪啪免费在线电影观看 | www欧美日韩| 操高跟美女 | 五月亚洲婷婷 | av中文字幕在线观看网站 | 国产美女精品视频 | 亚洲视频国产 | 麻豆视频大全 | 亚洲精品www| 国产精品网站 | 最新中文字幕在线观看视频 | 91网页版在线观看 | 视频在线观看入口黄最新永久免费国产 | 深夜视频久久 | www.av小说 | 最新一区二区三区 | 久久国产精品久久w女人spa | 美女久久久 | 久久久福利影院 | 大型av综合网站 | 99久久婷婷国产一区二区三区 | 免费视频黄 | 国产在线高清 | 91在线一区 | 日本91在线| 欧美 激情在线 | 91人人澡人人爽人人精品 | 开心色激情网 | 国产精品一区二区免费 | 国产黄色在线网站 | 美女视频久久 | 黄色的片子| 色综合久久久久综合体桃花网 | 91免费国产在线观看 | 五月天av在线 | 色婷婷丁香 | 99在线观看免费视频精品观看 | 91在线一区 | 国产成人精品国内自产拍免费看 | 狠狠操操 | 国产手机在线视频 | av丁香花 | 欧美一级性视频 | 九九久久国产精品 | 久久国产精品99久久人人澡 | 99精品在线视频观看 | 日韩三级免费观看 | 亚洲精品动漫在线 | 搡bbbb搡bbb视频 | 久久99精品国产91久久来源 | 亚州人成在线播放 | 久久精品爱爱视频 | 欧美日韩在线免费观看视频 | 99一级片 | 天天爽网站 | 五月婷婷丁香综合 | 亚洲精品久久久蜜臀下载官网 | 国产大尺度视频 | 国产精品毛片久久久久久 | 久久精品女人毛片国产 | 久久综合久久伊人 | 日韩高清国产精品 | 久久这里只有精品视频首页 | 欧美日本一区 | 日本黄色免费网站 | 狠色狠色综合久久 | 99久热在线精品视频成人一区 | 欧美日韩精品久久久 | 日韩毛片久久久 | 久久久综合香蕉尹人综合网 | 91精品国产99久久久久久红楼 | 最近更新好看的中文字幕 | 天天干天天操天天入 | 午夜视频一区二区 | www.99热精品 | 婷婷在线色 | 日韩欧美国产激情在线播放 | 国产一区二区久久久 | 亚洲黄色成人 | 国产精品国产三级国产专区53 | 色婷婷婷 | 在线观看视频国产一区 | wwwwwww黄| 91探花系列在线播放 | 在线免费看黄色 | 久久看视频| 成人久久久久久久久久 | 91精品入口 | 色多视频在线观看 | 国产精品午夜在线 | 最新国产精品拍自在线播放 | 天天爽天天摸 | 激情视频在线高清看 | 亚洲综合婷婷 | 97综合网| 亚洲影院天堂 | 黄色资源在线观看 | 男女激情网址 | 在线成人中文字幕 | 婷婷精品国产一区二区三区日韩 | 免费视频一区 | 91av视频观看 | 日韩高清一二三区 | 国产免费又爽又刺激在线观看 | 在线日本v二区不卡 | 婷婷激情网站 | 四虎国产精品成人免费影视 | 国产精品一区二区三区在线免费观看 | 丁香婷婷在线 | 四虎影视成人精品国库在线观看 | 国产一区av在线 | 欧美视屏一区二区 | 国产精品久久久久久久久久久久久久 | 午夜国产一区二区三区四区 | 在线观看av小说 | 欧美激情综合五月 | 人人爽久久涩噜噜噜网站 | 日韩av片无码一区二区不卡电影 | 中文字幕丝袜一区二区 | 久久成人免费视频 | av在线播放国产 | 91精品视频一区 | 特及黄色片 | av黄色成人| 亚洲欧美激情精品一区二区 | 久草在线手机视频 | 欧美人操人 | 激情xxxx| 91秒拍国产福利一区 | 91污在线 | 久久久久久久久久久电影 | 狠狠狠干狠狠 | 国产精品一区二区免费在线观看 | 97精品国产97久久久久久粉红 | 久久伊99综合婷婷久久伊 | 午夜久久久精品 | 日韩精品一区二区三区视频播放 | 中文乱码视频在线观看 | 国产精品99久久久 | 日韩乱色精品一区二区 | 亚洲精品国产综合99久久夜夜嗨 | 成人精品久久 | 成 人 黄 色 免费播放 | 97超碰在线久草超碰在线观看 | 黄色小网站在线 | 亚洲欧美成人在线 | 韩国精品在线观看 | 视频高清 | 激情久久伊人 | 亚洲专区一二三 | 日韩三级久久 | 欧美综合久久 | av大全在线播放 | 婷婷色在线视频 | 99久久久国产精品免费99 | 欧美激情精品 | 国产一二三区在线观看 | 中文字幕一区二区三区乱码在线 | 深爱开心激情网 | 久操视频在线免费看 | 精品一区av| 成人免费观看完整版电影 | 久久高清免费视频 | 亚洲国产欧美一区二区三区丁香婷 | 99久久久国产精品美女 | 91九色成人蝌蚪首页 | 激情九九 | 久久综合偷偷噜噜噜色 | 99这里都是精品 | 久久在线视频在线 | 久久短视频 | 国产成人精品aaa | 日韩av成人在线 | 96亚洲精品久久久蜜桃 | 久久久福利视频 | 久久免费黄色网址 | 国产99久久久国产精品成人免费 | 亚洲2019精品| а天堂中文最新一区二区三区 | 国产手机在线观看 | 国产亚洲精品成人av久久影院 | 免费黄色一区 | 国产黄色一级片 | 国产亚洲精品久久久久久网站 | 国产精品99久久久久的智能播放 | 日本特黄特色aaa大片免费 | 激情丁香综合 | 91大片成人网 | 国产自在线| 久久亚洲免费视频 | 韩国av不卡| 在线观看国产高清视频 | 久久人人爽人人爽人人片av免费 | 国产理论免费 | 欧美日韩高清一区 | 中文字幕一区二区三区久久 | 91精品啪在线观看国产81旧版 | 国产日本在线 | 蜜桃视频成人在线观看 | 欧美激情第一页xxx 午夜性福利 | 911国产精品 | 国产精品久久久久久久久久久久冷 | 日日夜夜人人天天 | 国产成人精品一区二区三区福利 | 亚洲成av人片在线观看无 | 国产精品久久久久久久免费大片 | 日韩成人免费电影 | 国产美女被啪进深处喷白浆视频 | 中文字幕日本特黄aa毛片 | 国产美女黄网站免费 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产又黄又爽无遮挡 | 久久热亚洲 | 亚洲午夜精 | 久久精品日韩 | www夜夜操 | 午夜精品在线看 | 国产一二区视频 | 久久精品视频在线观看免费 | 亚洲精品综合一二三区在线观看 | 久久精品国产99国产 | 插婷婷| 亚洲在线视频免费 | 日本成人中文字幕在线观看 | 久久久久久久电影 | 精品影院一区二区久久久 | 日韩久久久 | 欧美一区二区三区四区夜夜大片 | 亚洲男男gaygay无套 | 玖玖爱国产在线 | 久久人人爽人人爽人人片 | 91香蕉视频好色先生 | 亚州欧美视频 | 97天堂| 久久久久伦理电影 | 久亚洲精品 | 日日婷婷夜日日天干 | 国产网站色 | 不卡日韩av | 97超碰成人在线 | 免费看的黄色片 | 日韩免费网站 | 最新成人在线 | 亚洲精品福利在线观看 | 国产视频一级 | 狠狠色噜噜狠狠狠狠 | 中文字幕日韩电影 | 中文字幕精品www乱入免费视频 | 手机看国产毛片 | 韩国视频一区二区三区 | 免费网站v| 国产香蕉视频在线播放 | 毛片二区 | 婷婷狠狠操| 国产精品免费一区二区三区 | 亚洲午夜精品福利 | 黄网站免费久久 | 日韩综合视频在线观看 | 国产美女视频 | 在线只有精品 | 国产在线观看黄 | 国产精品99久久久久久人免费 | 国产高清精品在线 | 最近最新mv字幕免费观看 | 成人在线免费视频观看 | 丝袜网站在线观看 | 亚洲h色精品| 成人黄色在线视频 | 天天躁日日躁狠狠躁av麻豆 | av资源免费在线观看 | 手机在线永久免费观看av片 | 五月天网站在线 | 欧美国产日韩一区二区三区 | 久久国产精品免费视频 | av软件在线观看 | 欧美日韩一区二区三区视频 | 日本精油按摩3 | 色av男人的天堂免费在线 | 97精品免费视频 | 欧美做受xxx | 中文字幕在线有码 | 香蕉视频日本 | 天天色天天射天天综合网 | 99精品在这里| 免费在线一区二区 | 五月综合激情婷婷 | 国产精品亚洲人在线观看 | 精品久久久久国产 | 日本一区二区免费在线观看 | 狠狠色丁香婷婷综合久小说久 | 国产一区在线观看免费 | 亚洲九九九在线观看 | 天天综合中文 | 精品久久久久一区二区国产 | 91麻豆网| 麻豆视频免费入口 | 狠狠躁日日躁狂躁夜夜躁av | 午夜免费电影院 | 综合中文字幕 | 午夜av不卡 | 欧美国产日韩在线视频 | 高清一区二区 | 免费看成人 | 国产婷婷视频在线 | 欧美一区二区三区在线 | 亚洲 欧美 91| 精品三级av | 亚洲精品免费在线视频 | 免费在线看成人av | 日韩在线视频一区二区三区 | av电影中文字幕在线观看 | 91伊人久久大香线蕉蜜芽人口 | 人人澡人人舔 | 日韩精品无码一区二区三区 | 日日干天天操 | av高清影院 | 免费成人在线网站 | 一区二区三区在线视频观看58 | 日本公妇在线观看 | 亚洲一区欧美激情 | 色综合激情网 | 久久艹免费 | 国产九九九视频 | av黄色免费网站 | 不卡的一区二区三区 | 日韩免费电影在线观看 | 成人免费色 | 久草在线免费看视频 | 欧美 日韩 成人 | 久久久国产精品网站 | 99热官网 | 在线播放国产一区二区三区 | 日日草av | 国产123区在线观看 国产精品麻豆91 | 国产一级a毛片视频爆浆 | 国产短视频在线播放 | 人人网人人爽 | 亚洲国产精品va在线看黑人 | 久久ww| 在线观看中文字幕网站 | 五月婷综合网 | 亚洲成人午夜在线 | 人人草网站| 国产在线看一区 | 99精品免费在线观看 | 亚洲2019精品 | 久久日本视频 | 日本精品一区二区三区在线观看 | 免费看一级特黄a大片 | 欧美日韩视频免费看 | 日韩欧美在线观看一区二区三区 | 欧美日韩亚洲国产一区 | ww亚洲ww亚在线观看 | 亚洲综合网 | 中文字幕在线国产 | 色综合久久久久 | 久久久久国产精品免费 | 天堂av免费| 国产精品二区在线观看 | 亚洲精品成人 | 久久久久免费精品视频 | 婷婷亚洲综合五月天小说 | 在线观看视频福利 | 久久综合免费视频 | 久久久综合香蕉尹人综合网 | 国产高清中文字幕 | 免费能看的黄色片 | 在线观看亚洲精品 | 亚洲91精品在线观看 | 国产精品毛片一区视频播 | 亚洲亚洲精品在线观看 | 亚洲3级| 日韩字幕在线 | 在线免费观看视频a | 国产亚洲欧洲 | 久久超碰免费 | 日韩羞羞 | 五月天婷婷在线视频 | 中文字幕在线观看一区二区 | 成人av资源网 | 玖玖玖在线观看 | 日本h视频在线观看 | 国产亚洲一区 | 亚洲不卡av一区二区三区 | 国产精品丝袜久久久久久久不卡 | 亚洲精品99久久久久中文字幕 | 婷婷激情在线 | 亚洲成人精品国产 | 午夜精品一区二区三区免费 | 在线黄色观看 | 丁香婷婷综合激情五月色 | 免费黄在线看 | 久久爱导航 | 六月丁香综合网 | 国产性天天综合网 | 亚洲精品高清在线观看 | 久久久久97国产 | 丝袜av一区 | 成人亚洲综合 | 亚洲精品国内 | 精品国产一区二区三区av性色 | 国产视频1区2区3区 久久夜视频 | 免费三级骚 | 正在播放亚洲精品 | 亚洲视频1| 欧美91成人网 | 亚洲一区二区视频在线播放 | 国产高清视频免费观看 | 日本久久91 | 亚洲综合色丁香婷婷六月图片 | 欧美精品在线免费 | 国内精品久久久久久久久久久久 | 国产大陆亚洲精品国产 | 天天操天操| 亚州国产精品久久久 | 日韩视频免费观看高清完整版在线 | 精品自拍av | 青青五月天 | 日本中文不卡 | 亚洲欧美日韩在线一区二区 | 亚洲,播放| 国产一区二区在线精品 | 日韩网站一区二区 | 欧美日韩xxx| 另类五月激情 | 91在线看免费 | 久久中文字幕导航 | 色综合欧洲 | 91中文字幕网 | 综合激情网... | 欧美一级电影片 | 国产精品久久久久久久久久久久午夜片 | 日韩欧美高清免费 | 麻豆视频免费网站 | 欧美日韩在线观看不卡 | 偷拍精品一区二区三区 | 国产高清免费视频 | av片一区二区 | 99久久999久久久精玫瑰 | 欧美日韩国产一区二区三区在线观看 | 国产99自拍 | 久久久久成人精品免费播放动漫 | 99色免费 | 国产精品入口a级 | 美女视频黄免费网站 | 亚洲精品玖玖玖av在线看 | 五月花婷婷| 亚洲成人资源在线观看 | 久久综合狠狠 | 美女激情影院 | 亚洲网站在线看 | 精品国产乱码久久久久久三级人 | www.com在线观看 | 欧美怡红院视频 | 国产精品综合久久久久 | 五月在线视频 | 国产精品一区专区欧美日韩 | 一区二区三区精品在线视频 | 人人添人人澡 | 国产乱码精品一区二区三区介绍 | 欧美日韩精品在线免费观看 | 亚洲精品国产高清 | 日韩理论在线观看 | 欧美最猛性xxxxx(亚洲精品) | 日本特黄一级 | 天堂在线视频中文网 | 97日日| 国产精品久久久久久久久久免费 | 香蕉网站在线观看 | 天天曰天天干 | 久久黄色片子 | 久久在线精品视频 | 国产一区网址 | 91麻豆精品一区二区三区 | www.伊人色.com | 亚洲国产欧美在线看片xxoo | 青青久草在线 | 欧美色婷 | 色婷婷综合久久久久中文字幕1 | 欧美精彩视频 | 蜜桃视频精品 | 6080yy精品一区二区三区 | 久久成 | 免费观看www视频 | 国产精品色 | 日韩精品免费在线视频 | 久草在在线 | 亚洲精品综合一二三区在线观看 | 日日干网址 | 激情婷婷综合网 | 国产成人综合在线观看 | 国产女人18毛片水真多18精品 | 99re8这里有精品热视频免费 | 久久久国产精品麻豆 | 国产精品九九九九九九 | 久久99视频免费 | 色视频网站在线观看一=区 a视频免费在线观看 | 在线国产一区二区 | 欧美精品做受xxx性少妇 | 成年人在线视频观看 | 91cn国产在线| 国产视频在线播放 | 欧美日韩另类在线 | av7777777| 日韩专区视频 | 国产在线a | 黄色软件在线观看视频 | 在线视频麻豆 | 免费在线观看av网站 | av成人免费 | 免费a v网站 | 成人在线视频免费看 | 丰满少妇在线观看 | 玖玖在线精品 | 久久精品永久免费 | 久久99视频免费 | 999成人精品 | av网站手机在线观看 | 五月婷婷激情六月 | 久草精品国产 | av成人亚洲 | 操久| 日本韩国精品一区二区在线观看 | 91在线观看黄 | 在线观看av免费 | 美女在线国产 | 久久久久久中文字幕 | 欧美成人在线免费 | 成 人 黄 色 视频 免费观看 | 欧美日韩不卡一区 | 国产精品久久久久久久电影 | 日本在线观看一区二区 | 欧美日韩免费看 | 偷拍精偷拍精品欧洲亚洲网站 | 日韩免费看 | 久久久久在线观看 | 国产一级a毛片视频爆浆 | 五月天开心 | 久久久国产高清 | 国内精品久久久久久久影视麻豆 | 在线观看黄色av | 中文字幕免费高清 | 日韩色综合 | 色之综合网 | 日韩一区二区免费在线观看 | 国产日韩精品欧美 | 国产精品一区二区三区电影 | 亚洲在线免费视频 | 日韩毛片久久久 | 色视频成人在线观看免 | 国产精品美女999 | 国产精品一区二区美女视频免费看 | 国产成人一级电影 | 特级黄色片免费看 | 成在线播放 | 97精品国自产拍在线观看 | 久久久国产精品一区二区三区 | 在线a人片免费观看视频 | 这里只有精品视频在线观看 | 国产高清成人在线 | 亚洲国产精品视频在线观看 | 91精品国自产拍天天拍 | 丁香视频 | 免费a网 | 奇米网在线观看 | av三级在线免费观看 | 色综合a| 国产中文字幕在线看 | 日本特黄一级 | 99爱在线观看 | 园产精品久久久久久久7电影 | 国产破处精品 | 欧美一二在线 | 亚洲欧美视频一区二区三区 | 久久这里只有精品1 | 在线视频观看成人 | 韩国精品一区二区三区六区色诱 | 国产亚洲精品久久久久久无几年桃 | 免费观看国产成人 | 不卡的av | 日韩videos高潮hd | 日韩精品在线视频 | 欧美日韩国产伦理 | 久久任你操 | 欧美一级黄色网 | 免费网站看v片在线a | 免费涩涩网站 | 1024手机看片国产 | 天天天天色综合 | 中文字幕永久免费 | 97免费视频在线播放 | 国产手机在线播放 | 国产精品一区免费观看 | 天天爱天天舔 | 国产精品观看视频 | av成人免费在线看 | 色开心| 国内精品视频在线播放 | 国产专区视频 | 久久久久综合网 | 欧美色图亚洲图片 | 天天色天天射综合网 | 国产一二三在线视频 | 不卡视频一区二区三区 | 黄色三级网站在线观看 | 99在线免费观看视频 | 在线激情网 | 成人av一二三区 | 日本成人黄色片 | 日韩资源在线播放 | 国产精品视频久久 | 免费黄色网址网站 | 中文字幕电影网 | 久久午夜免费观看 | 久久免费高清 | 午夜在线观看一区 | 国产视频手机在线 | 九九免费精品视频在线观看 | 国产精品视频全国免费观看 | 少妇bbbb | 97成人啪啪网 | 欧美日韩免费网站 | 亚洲精品videossex少妇 | 亚洲一区二区三区毛片 | 久久视频国产精品免费视频在线 | a级国产乱理论片在线观看 特级毛片在线观看 | 国产成人精品一区二区 | 色综久久 | 日本成人黄色片 | av一级在线 | 免费看国产黄色 | av电影不卡在线 | 日韩精品电影在线播放 | 久久久久免费精品国产 | 91视视频在线直接观看在线看网页在线看 | 九九三级毛片 | av中文在线 | av网址aaa| 亚洲天天摸日日摸天天欢 | 99视频播放| 麻豆果冻剧传媒在线播放 | 久久久久久久毛片 | 五月婷婷激情六月 | 波多野结衣精品在线 | 国产 亚洲 欧美 在线 | 五月激情丁香 | 国产成人精品综合久久久久99 | 中文字幕观看av | 欧美精品v国产精品v日韩精品 | 欧美成人xxxxxxxx | 色婷婷国产| 免费一级片视频 | 久草视频在线观 | 久久久久久久久亚洲精品 | 国产精品免费一区二区三区 | a成人在线| av播放在线 | 国产成人av在线 | 国产高清黄色 | 久久综合狠狠综合久久狠狠色综合 | 久久久91精品国产一区二区三区 | 五月婷婷在线观看视频 | 国产精品色婷婷 | 欧美日韩3p| 免费中文字幕 | 亚洲天堂激情 | 欧美一级特黄aaaaaa大片在线观看 | 国产拍在线 | 奇米影视777影音先锋 | 久久只精品99品免费久23小说 | 国产 在线 高清 精品 | 日本中文在线 | 三级黄色理论片 | 国产精品乱码久久久久 | 深爱开心激情网 | 天天干天天天 | 狠狠干2018| 天天操人人要 | 精品久久久久久久久久久久久久久久 | 亚洲欧美综合精品久久成人 | 国产流白浆高潮在线观看 | 国产人成看黄久久久久久久久 | 欧美另类调教 | 国产99久久久精品视频 | 欧美一级大片在线观看 | 色丁香婷婷 | 在线涩涩 | 99久久这里有精品 | 久草av在线播放 | 91久久精品日日躁夜夜躁国产 | 国产真实精品久久二三区 | 国产女教师精品久久av | 日韩免费一级电影 | 日本巨乳在线 | 天天天天天天干 | 久久婷婷色| 一区二区三区在线观看免费 | 91免费视频网站在线观看 | 波多野结衣理论片 | 久久人人97超碰精品888 | 日韩av手机在线观看 | 国产精品12 | 国产精品免费久久久久久 | 黄色大全视频 | 国产看片 色 | 国产午夜精品av一区二区 | 亚洲综合情 | 一区二区三区四区五区六区 | 国产视频在线观看一区 | 精一区二区| 午夜久久影院 | 97av影院| 久久福利剧场 | 国产成人精品一区二三区 | 日韩欧美网址 | 91九色蝌蚪视频网站 | 久久丝袜视频 | 久久精品久久久久 | 999国内精品永久免费视频 | 久久九九精品 | 9999毛片 | 91网址在线看 | 欧美综合色在线图区 | 国产一级久久久 | 91久久久久久国产精品 | 玖玖视频 | 五月婷婷六月丁香 | 久久精品福利 | 天天草天天插 | 久草综合视频 | 日韩av免费大片 | www日韩| 日日夜夜精品视频天天综合网 | 黄色三级免费网址 | 色婷婷啪啪免费在线电影观看 | 五月天堂色 | 一区二区影视 | 啪啪激情网| 久久再线视频 | 天天操天天能 | 日韩在线电影观看 | 亚洲狠狠婷婷综合久久久 | 国产精品mv在线观看 | 日韩爱爱片 | 国产区高清在线 | 精品在线观看一区二区 | 99色在线播放 | 黄网站app在线观看免费视频 | 在线观看免费福利 | 国产精品入口a级 | www.黄色片.com| 成年人免费电影在线观看 | 一区二区三区免费在线观看视频 | 欧美成人猛片 | 黄色免费观看 | 日韩免费一级电影 | 综合网婷婷 | 欧美成人精品欧美一级乱 | 久久久国产成人 | 久久精品一二区 | 青青草国产成人99久久 | 成人免费共享视频 | 亚洲免费一级电影 | 96精品视频 | 国产一区二区不卡视频 | 国产免费嫩草影院 | 国产一区二区三区在线免费观看 | 亚洲日本va午夜在线电影 | 天天爽人人爽 | av福利资源 | 视频一区久久 | 五月婷婷视频在线观看 | 国产美女精彩久久 | 久久九九国产精品 | 九九欧美视频 | 99精品视频免费全部在线 | 九色精品在线 | 欧美日韩一区二区三区不卡 | 五月宗合网 | 欧美大片第1页 | 久草在线在线精品观看 | 成人午夜性影院 | 久久精品成人 | 国产一区二区在线免费播放 | 国色天香第二季 | 色婷久久| 四虎国产精品永久在线国在线 | 色资源在线观看 | 欧美国产日韩激情 | 日韩高清一| 午夜精品久久久久久久久久久久 | 色插综合 | 国产精品久久婷婷六月丁香 | 五月天国产 | 丁香久久综合 | 在线 国产 亚洲 欧美 | 久久成电影 | 成人天堂网 | 国产精品久久av | 国产成人精品一区二区在线观看 | 成人在线观看资源 | 欧美久草网 | 日本女人的性生活视频 | 中文字幕av电影下载 | 国产精品一区二区美女视频免费看 | 久久91网 | 午夜国产影院 | 在线不卡a | 久久精品国产亚洲精品 | 久久国产热 | 免费久久久 | 国产亚洲人成网站在线观看 | 国产高清专区 | 成年人视频在线免费播放 | 国产97在线视频 | 精品国产免费av | 欧美aa一级 | av播放在线 | 精品国产视频在线 | 99成人精品 | 精品产品国产在线不卡 | 国产剧情一区二区 | 深爱婷婷激情 | 国内精品久久久久影院一蜜桃 | www91在线观看 | 亚洲涩涩网站 | 国产精品丝袜在线 | 免费91在线| 久草免费福利在线观看 | se视频网址 | 日韩免费在线一区 | www.午夜 | 欧美精品午夜 | 久久免费播放 | 国产精品一区二区吃奶在线观看 | 国产精品午夜在线观看 | 精品国产伦一区二区三区观看说明 | 在线看片中文字幕 | 在线日韩中文字幕 | 欧美成人黄色片 | 精品国产自 | 午夜10000 | 91精品一 | 成人午夜电影在线观看 | 亚洲精品视频免费观看 | 91亚·色 | 国产成人一区二区三区 | 久草新在线 | 91av在线视频播放 | 在线免费观看黄 | 日本精品久久久久影院 | 91精品一区二区三区久久久久久 | 黄色www在线观看 | 欧美 高跟鞋交 xxxxhd | 久久久在线免费观看 | 91九色蝌蚪国产 | 日韩电影在线观看一区二区 | 狠狠色丁香婷婷综合视频 | 欧美一级电影在线观看 | 日韩电影精品 | 日韩av成人在线观看 | 最近中文字幕mv | 亚洲视频1 | 中文字幕一区在线 | 四虎永久免费网站 | 精品天堂av | 免费在线一区二区 | 成人va在线观看 | 久久综合久久综合久久 | 久久久这里有精品 | 日韩在线一区二区免费 | 美女av电影 | 欧美人体xx| 国产香蕉97碰碰久久人人 | 97在线视频免费看 | 国产又粗又猛又爽又黄的视频先 | 婷婷九月激情 | 亚洲欧洲一区二区在线观看 | 制服丝袜一区二区 | 2017狠狠干 | 激情中文在线 | 久久久久久久久久久久久国产精品 | 天天操天天色天天 | 视频直播国产精品 | 九九在线视频免费观看 | 操操操天天操 | 欧美性黑人 | 欧美激情视频久久 | 波多野结衣一区二区 | 日韩视频一区二区在线观看 | 国产免费又爽又刺激在线观看 | 国产成人免费网站 | 日韩欧美综合在线视频 | 国产免费人人看 | 91在线看片 | 在线免费三级 | 精品播放 | 亚洲精品国产精品国自产观看 | 国产aa免费视频 | 天天操狠狠干 | 欧美一级久久久久 | 日韩在线三级 | 黄色高清视频在线观看 | 日日操日日操 | 奇米网777| 久久精品站 | 国产视频在线免费 | 青青久视频 | 国产精品 美女 | 欧美精品久久久久久久久久久 | 狠狠狠干| 九月婷婷人人澡人人添人人爽 | 久久天天躁狠狠躁夜夜不卡公司 | 精品久久视频 | 最近高清中文字幕在线国语5 | 视频二区在线 | 亚洲综合激情小说 | 一区二区视频电影在线观看 | 国产精品剧情在线亚洲 | www.色的| 精品国产大片 | 高清国产一区 | 日韩视频1| 精品美女久久久久 | 国产视频一区二区在线 | 欧美一级黄色片 | 中文字幕高清av |