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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

我司用了 6 年的 Redis 分布式限流器,很牛逼了!

發(fā)布時間:2025/3/21 数据库 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我司用了 6 年的 Redis 分布式限流器,很牛逼了! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、什么是限流?為什么要限流?

不知道大家有沒有做過帝都的地鐵,就是進(jìn)地鐵站都要排隊(duì)的那種,為什么要這樣擺長龍轉(zhuǎn)圈圈?答案就是為了限流!因?yàn)橐惶说罔F的運(yùn)力是有限的,一下擠進(jìn)去太多人會造成站臺的擁擠、列車的超載,存在一定的安全隱患。同理,我們的程序也是一樣,它處理請求的能力也是有限的,一旦請求多到超出它的處理極限就會崩潰。為了不出現(xiàn)最壞的崩潰情況,只能耽誤一下大家進(jìn)站的時間。

限流是保證系統(tǒng)高可用的重要手段!!!

由于互聯(lián)網(wǎng)公司的流量巨大,系統(tǒng)上線會做一個流量峰值的評估,尤其是像各種秒殺促銷活動,為了保證系統(tǒng)不被巨大的流量壓垮,會在系統(tǒng)流量到達(dá)一定閾值時,拒絕掉一部分流量。

限流會導(dǎo)致用戶在短時間內(nèi)(這個時間段是毫秒級的)系統(tǒng)不可用,一般我們衡量系統(tǒng)處理能力的指標(biāo)是每秒的QPS或者TPS,假設(shè)系統(tǒng)每秒的流量閾值是1000,理論上一秒內(nèi)有第1001個請求進(jìn)來時,那么這個請求就會被限流。

二、限流方案

1、計(jì)數(shù)器

Java內(nèi)部也可以通過原子類計(jì)數(shù)器AtomicInteger、Semaphore信號量來做簡單的限流。

//?限流的個數(shù)private?int?maxCount?=?10;//?指定的時間內(nèi)private?long?interval?=?60;//?原子類計(jì)數(shù)器private?AtomicInteger?atomicInteger?=?new?AtomicInteger(0);//?起始時間private?long?startTime?=?System.currentTimeMillis();public?boolean?limit(int?maxCount,?int?interval)?{atomicInteger.addAndGet(1);if?(atomicInteger.get()?==?1)?{startTime?=?System.currentTimeMillis();atomicInteger.addAndGet(1);return?true;}//?超過了間隔時間,直接重新開始計(jì)數(shù)if?(System.currentTimeMillis()?-?startTime?>?interval?*?1000)?{startTime?=?System.currentTimeMillis();atomicInteger.set(1);return?true;}//?還在間隔時間內(nèi),check有沒有超過限流的個數(shù)if?(atomicInteger.get()?>?maxCount)?{return?false;}return?true;}

2、漏桶算法

漏桶算法思路很簡單,我們把水比作是請求,漏桶比作是系統(tǒng)處理能力極限,水先進(jìn)入到漏桶里,漏桶里的水按一定速率流出,當(dāng)流出的速率小于流入的速率時,由于漏桶容量有限,后續(xù)進(jìn)入的水直接溢出(拒絕請求),以此實(shí)現(xiàn)限流。

3、令牌桶算法

令牌桶算法的原理也比較簡單,我們可以理解成醫(yī)院的掛號看病,只有拿到號以后才可以進(jìn)行診病。

系統(tǒng)會維護(hù)一個令牌(token)桶,以一個恒定的速度往桶里放入令牌(token),這時如果有請求進(jìn)來想要被處理,則需要先從桶里獲取一個令牌(token),當(dāng)桶里沒有令牌(token)可取時,則該請求將被拒絕服務(wù)。令牌桶算法通過控制桶的容量、發(fā)放令牌的速率,來達(dá)到對請求的限制。

4、Redis + Lua

很多同學(xué)不知道Lua是啥?個人理解,Lua腳本和?MySQL數(shù)據(jù)庫的存儲過程比較相似,他們執(zhí)行一組命令,所有命令的執(zhí)行要么全部成功或者失敗,以此達(dá)到原子性。也可以把Lua腳本理解為,一段具有業(yè)務(wù)邏輯的代碼塊。

而Lua本身就是一種編程語言,雖然redis?官方?jīng)]有直接提供限流相應(yīng)的API,但卻支持了?Lua?腳本的功能,可以使用它實(shí)現(xiàn)復(fù)雜的令牌桶或漏桶算法,也是分布式系統(tǒng)中實(shí)現(xiàn)限流的主要方式之一。

相比Redis事務(wù),Lua腳本的優(yōu)點(diǎn):

  • 減少網(wǎng)絡(luò)開銷:使用Lua腳本,無需向Redis?發(fā)送多次請求,執(zhí)行一次即可,減少網(wǎng)絡(luò)傳輸

  • 原子操作:Redis?將整個Lua腳本作為一個命令執(zhí)行,原子,無需擔(dān)心并發(fā)

  • 復(fù)用:Lua腳本一旦執(zhí)行,會永久保存?Redis?中,,其他客戶端可復(fù)用

Lua腳本大致邏輯如下:

--?獲取調(diào)用腳本時傳入的第一個key值(用作限流的?key) local?key?=?KEYS[1] --?獲取調(diào)用腳本時傳入的第一個參數(shù)值(限流大小) local?limit?=?tonumber(ARGV[1])--?獲取當(dāng)前流量大小 local?curentLimit?=?tonumber(redis.call('get',?key)?or?"0")--?是否超出限流 if?curentLimit?+?1?>?limit?then--?返回(拒絕)return?0 else--?沒有超出?value?+?1redis.call("INCRBY",?key,?1)--?設(shè)置過期時間redis.call("EXPIRE",?key,?2)--?返回(放行)return?1 end
  • 通過KEYS[1]?獲取傳入的key參數(shù)

  • 通過ARGV[1]獲取傳入的limit參數(shù)

  • redis.call方法,從緩存中g(shù)et和key相關(guān)的值,如果為null那么就返回0

  • 接著判斷緩存中記錄的數(shù)值是否會大于限制大小,如果超出表示該被限流,返回0

  • 如果未超過,那么該key的緩存值+1,并設(shè)置過期時間為1秒鐘以后,并返回緩存值+1

這種方式是本文推薦的方案,具體實(shí)現(xiàn)會在后邊做細(xì)說。

5、網(wǎng)關(guān)層限流

限流常在網(wǎng)關(guān)這一層做,比如Nginx、Openresty、kong、zuul、Spring Cloud Gateway等,而像spring cloud - gateway網(wǎng)關(guān)限流底層實(shí)現(xiàn)原理,就是基于Redis + Lua,通過內(nèi)置Lua限流腳本的方式。

三、Redis + Lua 限流實(shí)現(xiàn)

下面我們通過自定義注解、aop、Redis + Lua?實(shí)現(xiàn)限流,步驟會比較詳細(xì),為了小白能讓快速上手這里啰嗦一點(diǎn),有經(jīng)驗(yàn)的老鳥們多擔(dān)待一下。

1、環(huán)境準(zhǔn)備

springboot?項(xiàng)目創(chuàng)建地址:https://start.spring.io,很方便實(shí)用的一個工具。

2、引入依賴包

pom文件中添加如下依賴包,比較關(guān)鍵的就是?spring-boot-starter-data-redis?和?spring-boot-starter-aop。

???<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>21.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies>

3、配置application.properties

在?application.properties?文件中配置提前搭建好的?redis?服務(wù)地址和端口。

spring.redis.host=127.0.0.1spring.redis.port=6379

4、配置RedisTemplate實(shí)例

@Configuration public?class?RedisLimiterHelper?{@Beanpublic?RedisTemplate<String,?Serializable>?limitRedisTemplate(LettuceConnectionFactory?redisConnectionFactory)?{RedisTemplate<String,?Serializable>?template?=?new?RedisTemplate<>();template.setKeySerializer(new?StringRedisSerializer());template.setValueSerializer(new?GenericJackson2JsonRedisSerializer());template.setConnectionFactory(redisConnectionFactory);return?template;} }

限流類型枚舉類

/***?@author?fu*?@description?限流類型*?@date?2020/4/8?13:47*/ public?enum?LimitType?{/***?自定義key*/CUSTOMER,/***?請求者IP*/IP; }

5、自定義注解

我們自定義個@Limit注解,注解類型為ElementType.METHOD即作用于方法上。

period表示請求限制時間段,count表示在period這個時間段內(nèi)允許放行請求的次數(shù)。limitType代表限流的類型,可以根據(jù)請求的IP、自定義key,如果不傳limitType屬性則默認(rèn)用方法名作為默認(rèn)key。

/***?@author?fu*?@description?自定義限流注解*?@date?2020/4/8?13:15*/ @Target({ElementType.METHOD,?ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public?@interface?Limit?{/***?名字*/String?name()?default?"";/***?key*/String?key()?default?"";/***?Key的前綴*/String?prefix()?default?"";/***?給定的時間范圍?單位(秒)*/int?period();/***?一定時間內(nèi)最多訪問次數(shù)*/int?count();/***?限流的類型(用戶自定義key?或者?請求ip)*/LimitType?limitType()?default?LimitType.CUSTOMER; }

6、切面代碼實(shí)現(xiàn)

/***?@author?fu*?@description?限流切面實(shí)現(xiàn)*?@date?2020/4/8?13:04*/ @Aspect @Configuration public?class?LimitInterceptor?{private?static?final?Logger?logger?=?LoggerFactory.getLogger(LimitInterceptor.class);private?static?final?String?UNKNOWN?=?"unknown";private?final?RedisTemplate<String,?Serializable>?limitRedisTemplate;@Autowiredpublic?LimitInterceptor(RedisTemplate<String,?Serializable>?limitRedisTemplate)?{this.limitRedisTemplate?=?limitRedisTemplate;}/***?@param?pjp*?@author?fu*?@description?切面*?@date?2020/4/8?13:04*/@Around("execution(public?*?*(..))?&&?@annotation(com.xiaofu.limit.api.Limit)")public?Object?interceptor(ProceedingJoinPoint?pjp)?{MethodSignature?signature?=?(MethodSignature)?pjp.getSignature();Method?method?=?signature.getMethod();Limit?limitAnnotation?=?method.getAnnotation(Limit.class);LimitType?limitType?=?limitAnnotation.limitType();String?name?=?limitAnnotation.name();String?key;int?limitPeriod?=?limitAnnotation.period();int?limitCount?=?limitAnnotation.count();/***?根據(jù)限流類型獲取不同的key?,如果不傳我們會以方法名作為key*/switch?(limitType)?{case?IP:key?=?getIpAddress();break;case?CUSTOMER:key?=?limitAnnotation.key();break;default:key?=?StringUtils.upperCase(method.getName());}ImmutableList<String>?keys?=?ImmutableList.of(StringUtils.join(limitAnnotation.prefix(),?key));try?{String?luaScript?=?buildLuaScript();RedisScript<Number>?redisScript?=?new?DefaultRedisScript<>(luaScript,?Number.class);Number?count?=?limitRedisTemplate.execute(redisScript,?keys,?limitCount,?limitPeriod);logger.info("Access?try?count?is?{}?for?name={}?and?key?=?{}",?count,?name,?key);if?(count?!=?null?&&?count.intValue()?<=?limitCount)?{return?pjp.proceed();}?else?{throw?new?RuntimeException("You?have?been?dragged?into?the?blacklist");}}?catch?(Throwable?e)?{if?(e?instanceof?RuntimeException)?{throw?new?RuntimeException(e.getLocalizedMessage());}throw?new?RuntimeException("server?exception");}}/***?@author?fu*?@description?編寫?redis?Lua?限流腳本*?@date?2020/4/8?13:24*/public?String?buildLuaScript()?{StringBuilder?lua?=?new?StringBuilder();lua.append("local?c");lua.append("\nc?=?redis.call('get',KEYS[1])");//?調(diào)用不超過最大值,則直接返回lua.append("\nif?c?and?tonumber(c)?>?tonumber(ARGV[1])?then");lua.append("\nreturn?c;");lua.append("\nend");//?執(zhí)行計(jì)算器自加lua.append("\nc?=?redis.call('incr',KEYS[1])");lua.append("\nif?tonumber(c)?==?1?then");//?從第一次調(diào)用開始限流,設(shè)置對應(yīng)鍵值的過期lua.append("\nredis.call('expire',KEYS[1],ARGV[2])");lua.append("\nend");lua.append("\nreturn?c;");return?lua.toString();}/***?@author?fu*?@description?獲取id地址*?@date?2020/4/8?13:24*/public?String?getIpAddress()?{HttpServletRequest?request?=?((ServletRequestAttributes)?RequestContextHolder.getRequestAttributes()).getRequest();String?ip?=?request.getHeader("x-forwarded-for");if?(ip?==?null?||?ip.length()?==?0?||?UNKNOWN.equalsIgnoreCase(ip))?{ip?=?request.getHeader("Proxy-Client-IP");}if?(ip?==?null?||?ip.length()?==?0?||?UNKNOWN.equalsIgnoreCase(ip))?{ip?=?request.getHeader("WL-Proxy-Client-IP");}if?(ip?==?null?||?ip.length()?==?0?||?UNKNOWN.equalsIgnoreCase(ip))?{ip?=?request.getRemoteAddr();}return?ip;} }

7、控制層實(shí)現(xiàn)

我們將@Limit注解作用在需要進(jìn)行限流的接口方法上,下邊我們給方法設(shè)置@Limit注解,在10秒內(nèi)只允許放行3個請求,這里為直觀一點(diǎn)用AtomicInteger計(jì)數(shù)。

/***?@Author:?fu*?@Description:*/ @RestController public?class?LimiterController?{private?static?final?AtomicInteger?ATOMIC_INTEGER_1?=?new?AtomicInteger();private?static?final?AtomicInteger?ATOMIC_INTEGER_2?=?new?AtomicInteger();private?static?final?AtomicInteger?ATOMIC_INTEGER_3?=?new?AtomicInteger();/***?@author?fu*?@description*?@date?2020/4/8?13:42*/@Limit(key?=?"limitTest",?period?=?10,?count?=?3)@GetMapping("/limitTest1")public?int?testLimiter1()?{return?ATOMIC_INTEGER_1.incrementAndGet();}/***?@author?fu*?@description*?@date?2020/4/8?13:42*/@Limit(key?=?"customer_limit_test",?period?=?10,?count?=?3,?limitType?=?LimitType.CUSTOMER)@GetMapping("/limitTest2")public?int?testLimiter2()?{return?ATOMIC_INTEGER_2.incrementAndGet();}/***?@author?fu*?@description?*?@date?2020/4/8?13:42*/@Limit(key?=?"ip_limit_test",?period?=?10,?count?=?3,?limitType?=?LimitType.IP)@GetMapping("/limitTest3")public?int?testLimiter3()?{return?ATOMIC_INTEGER_3.incrementAndGet();}}

8、測試

測試「預(yù)期」:連續(xù)請求3次均可以成功,第4次請求被拒絕。接下來看一下是不是我們預(yù)期的效果,請求地址:http://127.0.0.1:8080/limitTest1,用postman進(jìn)行測試,有沒有postman?url直接貼瀏覽器也是一樣。

可以看到第四次請求時,應(yīng)用直接拒絕了請求,說明我們的 Springboot + aop + lua 限流方案搭建成功。

總結(jié)

以上?springboot + aop + Lua?限流實(shí)現(xiàn)是比較簡單的,旨在讓大家認(rèn)識下什么是限流?如何做一個簡單的限流功能,面試要知道這是個什么東西。上面雖然說了幾種實(shí)現(xiàn)限流的方案,但選哪種還要結(jié)合具體的業(yè)務(wù)場景,不能為了用而用。

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的我司用了 6 年的 Redis 分布式限流器,很牛逼了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美色综合天天久久综合精品 | 亚洲一区二区视频在线播放 | 日本色小说视频 | 国产精品午夜在线 | .精品久久久麻豆国产精品 亚洲va欧美 | 五月婷婷丁香六月 | 亚洲精品在线观看视频 | 麻豆免费在线播放 | 婷色| 免费在线观看av电影 | 日本aaa在线观看 | 在线观看免费视频你懂的 | 日本精品视频一区二区 | 中文在线√天堂 | 在线a人片免费观看视频 | 国产艹b视频 | 日韩av网站在线播放 | 国产精品va最新国产精品视频 | 国产精品99久久久久人中文网介绍 | 午夜电影 电影 | 日韩成人高清在线 | 国产伦理一区二区三区 | 婷婷精品在线视频 | 久久公开视频 | 亚洲综合欧美日韩狠狠色 | 伊人激情综合 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 日韩福利在线观看 | 亚洲区色| 91精品亚洲影视在线观看 | 亚州免费视频 | 亚洲免费av观看 | 国产在线2020 | 性色av免费在线观看 | 99精品欧美一区二区 | 成人三级av | 狠狠色丁香婷婷综合基地 | 久久久久久高清 | 黄色大全在线观看 | 亚洲伦理一区 | 国产精品a级 | 麻豆91精品91久久久 | 日韩欧美观看 | 美女啪啪图片 | 午夜精品久久久久久 | 免费日韩 | 久久tv | 91精品网站 | 在线视频婷婷 | 四虎海外影库www4hu | 免费视频a| 美女网站色免费 | 99视频在线免费播放 | 成人av久久 | 日韩在线视 | 麻豆视传媒官网免费观看 | 十八岁以下禁止观看的1000个网站 | 91免费试看 | 激情av综合 | 美女视频黄在线 | 三级在线视频播放 | 黄色免费观看网址 | 久久亚洲欧美 | 99色在线视频 | 免费黄在线看 | 99国产精品免费网站 | 日本久久久久久久久久久 | 亚洲,播放 | 国产一区二区在线免费播放 | 在线观看一区二区视频 | 国产高清在线免费 | 亚洲欧美日本国产 | 欧美精品一区二区在线观看 | 国产精品第一 | 国产国产人免费人成免费视频 | 日韩在线观看视频一区二区三区 | 国产第一页精品 | 国产精品久久精品 | 亚洲精品三级 | 男女拍拍免费视频 | 日日插日日干 | 国产视频在线免费 | 91成人黄色 | 免费日韩 | 久草在线中文888 | 亚洲乱码精品久久久久 | 中文字幕一区二区三区四区视频 | 国产精品男女 | 在线观看视频色 | 精品国产一区二区三区日日嗨 | 亚洲精品玖玖玖av在线看 | 亚洲国产精品女人久久久 | 亚洲国产99 | 欧美日韩一区二区免费在线观看 | 色综合久久久久网 | 天堂中文在线视频 | 人人超碰人人 | 色www精品视频在线观看 | 日韩v欧美v日本v亚洲v国产v | 青青久视频 | 999视频网 | 久草视频在线免费 | 亚洲人成精品久久久久 | 成人在线一区二区 | 在线观看色视频 | 91桃色在线观看视频 | 国产精品九九久久久久久久 | 亚洲欧美国产日韩在线观看 | av在线播放观看 | 欧美日韩视频精品 | 在线观看的a站 | 人人超在线公开视频 | 国产成人久久精品77777综合 | 国产999精品久久久久久麻豆 | 国产精品99久久久精品 | 日韩久久视频 | 国产一区二区久久久 | 日本69hd| 欧美成人精品在线 | 久久黄色影视 | 日韩在线免费不卡 | av网站免费看 | 麻花豆传媒一二三产区 | 香蕉视频国产在线观看 | 91成人精品国产刺激国语对白 | 精品视频国产一区 | 成人亚洲精品久久久久 | 超碰在线公开 | 国产精品久99 | 免费av电影网站 | 亚洲精品国产精品国 | 一区二区中文字幕在线观看 | 成年人黄色免费看 | 亚洲精品国产综合99久久夜夜嗨 | 国产涩图| 久99久视频 | 超碰av在线播放 | 在线a视频免费观看 | 免费看国产视频 | 91久久丝袜国产露脸动漫 | 亚洲欧美日韩精品久久久 | 在线观看亚洲a | 日韩特黄一级欧美毛片特黄 | 精品久久一级片 | 日本中文字幕在线免费观看 | 久久精品国产久精国产 | 成人在线免费观看网站 | 97视频免费在线观看 | 国产精品久久久久久久久费观看 | 国产精品一区二区三区久久久 | 国产精品欧美一区二区三区不卡 | 国产午夜精品一区 | 一区二区三区精品在线 | 久久国内精品 | www亚洲精品 | 99久久综合精品五月天 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 精品视频在线视频 | 97超碰总站| 国产精品一区二区久久精品 | 亚洲精品视频中文字幕 | av免费在线观 | 免费亚洲黄色 | 免费在线观看一级片 | 久草久视频| 久艹视频免费观看 | 国产第一页福利影院 | 国产在线视频在线观看 | 2017狠狠干 | 人人看人人艹 | 日韩在线视频网 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久午夜精品视频 | 日韩免费| 黄色一区二区在线观看 | 日韩欧美在线影院 | 色99在线 | 最近字幕在线观看第一季 | 亚洲欧洲成人 | 中文字幕在线视频第一页 | 久久久精品高清 | 久久免费视频这里只有精品 | 欧洲高潮三级做爰 | 91av手机在线观看 | 国产免费嫩草影院 | 97人人澡人人添人人爽超碰 | 国产亚洲永久域名 | 成年人黄色免费网站 | 成年人app网址 | 美女av免费看| 日韩午夜三级 | 亚洲国产精品成人va在线观看 | 九色在线视频 | 在线国产99| 色综合a| 日韩免费av在线 | 欧美日韩另类在线观看 | av久久在线 | 99日精品| 国产在线视频一区二区三区 | 91久久久久久久一区二区 | 在线中文日韩 | 国产精品久久久久影视 | 麻豆一精品传二传媒短视频 | 91视频最新网址 | 日韩高清一二区 | 免费国产视频 | www.婷婷com| 麻豆一二 | 天天婷婷 | 中文字幕 国产视频 | 国产一区二区网址 | 不卡国产在线 | 国产aaa毛片 | 欧美日韩成人一区 | 免费在线一区二区 | 精品影院一区二区久久久 | 色婷婷www | 国内精品久久久久久 | 久久久久久久久久网 | 国产精品一区二区三区久久 | 中文字幕亚洲五码 | 国产精品毛片一区视频 | 欧美性生交大片免网 | 日本久久久久久 | 国产看片 色| 国产欧美日韩视频 | 99久久久久免费精品国产 | 99产精品成人啪免费网站 | 亚洲欧美日韩国产一区二区 | 国产 字幕 制服 中文 在线 | 一区二区激情 | 国产一区二区三区四区大秀 | www.狠狠操.com | 六月丁香六月婷婷 | 黄色三级视频片 | 91av久久| 99久久日韩精品免费热麻豆美女 | 福利久久| 最近中文字幕高清字幕免费mv | 91久久国产自产拍夜夜嗨 | 9999亚洲 | 久久美女视频 | 久久久久久99精品 | 五月天六月丁香 | 国产人成免费视频 | 美女精品国产 | 手机色站 | bbw av| 日韩久久久久久 | 色av网站 | 欧美黑人猛交 | 97电影手机版 | 久久深夜福利免费观看 | 亚洲 欧美 变态 国产 另类 | 久久久久久久影视 | 日韩欧美在线观看一区 | 9999精品 | 国产精品 日本 | 国产亚洲精品久久久久秋 | 91精品视频观看 | 中文在线www| 久久久久久久久久久福利 | 国产亚洲精品久久19p | 日本性xxx | 国产一级性生活 | 国产大片免费久久 | 99 视频 高清 | 国产一级二级三级视频 | 国产精品综合久久久久久 | 日韩午夜大片 | 日本aaa在线观看 | 亚洲无吗天堂 | 午夜视频在线观看一区二区三区 | 婷婷在线看| 亚洲精品欧美成人 | 五月天婷亚洲天综合网鲁鲁鲁 | 中文字幕免费高清在线 | 色婷婷欧美| 国产原创在线视频 | 精品福利av| 在线观看中文字幕亚洲 | 五月婷在线播放 | 中文字幕国产 | 美女免费网视频 | 500部大龄熟乱视频使用方法 | 成人av观看 | 国产色视频一区二区三区qq号 | 高清视频一区二区三区 | 香蕉精品视频在线观看 | 操高跟美女 | 51久久夜色精品国产麻豆 | 亚洲91中文字幕无线码三区 | 欧美激情视频一区二区三区免费 | 亚洲影院一区 | www.狠狠色.com | 国产精品美女 | 在线视频麻豆 | 中文字幕一区二区三区在线播放 | 日韩欧美不卡 | 精品国产欧美一区二区 | 日韩网站中文字幕 | av观看网站 | 亚洲成成品网站 | 免费看毛片网站 | 天天做日日爱夜夜爽 | www国产在线 | 日韩色区| 蜜臀aⅴ精品一区二区三区 久久视屏网 | 超碰在线日本 | 久久久免费电影 | 国产高清精品在线观看 | 国产手机视频 | 精品久久久久久久久久岛国gif | 国产又粗又猛又色又黄视频 | 在线观看免费一级片 | 992tv在线成人免费观看 | 激情图片区 | www.国产视频| 国产a国产a国产a | 伊人永久 | 天天插伊人| 亚洲国产高清在线 | 亚洲视频一区二区三区在线观看 | 久久小视频 | 欧美日韩网站 | 九九欧美视频 | 丁香花五月 | 人人爽久久久噜噜噜电影 | 射综合网 | 色在线高清 | 91成品视频 | 808电影 | 人人舔人人爽 | 免费在线h| 日韩精品中文字幕有码 | 久久美女精品 | 国产精品日韩在线播放 | 免费观看丰满少妇做爰 | 日韩免费看 | 国产精品成人国产乱一区 | 美女网站视频色 | 日韩欧美在线第一页 | 午夜精品福利一区二区三区蜜桃 | 久久精品国产免费看久久精品 | 欧美日韩高清免费 | 99精品视频免费全部在线 | 久热爱| 国产精品久久久av久久久 | 国产一级片免费播放 | 精品视频专区 | 成人在线网站观看 | 日韩一区精品 | 不卡视频一区二区三区 | 综合五月 | 最新国产一区二区三区 | 久久久99精品免费观看 | 色噜噜噜 | 99精品国产免费久久久久久下载 | 天堂视频中文在线 | 日本在线观看一区二区三区 | 国产一区网 | 麻豆果冻剧传媒在线播放 | 揉bbb玩bbb少妇bbb | 欧美日韩国产mv | 97人人模人人爽人人喊中文字 | 99av国产精品欲麻豆 | 亚洲精品午夜一区人人爽 | 天天色天天色天天色 | 国产精品免费观看在线 | 三级视频片 | 综合色久 | 亚洲成人在线免费 | 97视频中文字幕 | 久久久久久麻豆 | 亚洲在线不卡 | 91电影福利 | 日韩欧美视频在线观看免费 | 亚洲精品xxxx | 天天射天天射 | 精品国产三级 | www.国产在线观看 | av网站免费看 | 麻豆视频免费入口 | 久久视频6| 亚洲精品一区二区在线观看 | 青青河边草免费观看 | 久久看免费视频 | 在线观看av小说 | 黄色在线成人 | 视色网站 | 97人人超碰在线 | 国产黄色成人av | 成人免费观看电影 | 国产亚洲精品久久久久久移动网络 | 日韩av影视在线 | 黄色资源在线 | 日韩在线观看影院 | 日本精品免费看 | 国产精品2018 | 国产亚洲va综合人人澡精品 | 中国一 片免费观看 | 久久精品视频网站 | 在线免费观看视频你懂的 | 亚洲国产日韩在线 | av中文字幕在线看 | 国产高清在线精品 | 日批视频| 草在线视频 | 久久精品婷婷 | www.神马久久| 色香蕉在线 | 91超在线 | 亚洲色图 校园春色 | 伊人网综合在线观看 | 日本中文乱码卡一卡二新区 | 国产亚洲亚洲 | 人人藻人人澡人人爽 | 国产精品一区二区精品视频免费看 | 中文在线a∨在线 | 亚洲精品在线视频 | 中文字幕在线观看免费高清完整版 | 激情综合中文娱乐网 | 丁香婷婷网 | 国产亚洲片 | av在线等 | 久久精品看片 | 日韩精品免费一区二区 | 视频在线亚洲 | 97视频精品| 中文字幕二区 | 欧美一级在线观看视频 | 国产一区观看 | www免费| 干干夜夜 | 日韩有码在线观看视频 | 伊人色**天天综合婷婷 | 麻豆激情电影 | 亚洲精品视频久久 | 亚洲精品日韩在线观看 | 欧美日韩视频免费 | 97精品国产97久久久久久春色 | 97视频在线看 | 免费福利视频网站 | 亚洲精品在线视频网站 | 久久av免费 | 精品国产一二三四区 | 69国产成人综合久久精品欧美 | 超碰九九 | 九九精品无码 | 国产精品久久在线观看 | 国产69精品久久久久9999apgf | 99精品热视频只有精品10 | 最近免费中文视频 | 国外调教视频网站 | av在线播放快速免费阴 | 99r在线视频 | 91精品久久久久久久99蜜桃 | 成人久久久久久久久 | 国产视频在线观看一区 | 免费亚洲片 | 91免费高清观看 | 国产精品久久久久久久久久久免费 | 欧美成人h版电影 | 天天干天天操天天入 | 三级黄色大片在线观看 | 一区二区电影网 | 日韩av成人在线观看 | 黄视频色网站 | 日韩中文字幕一区 | 久久永久免费 | 日韩免费专区 | 国产一区高清在线 | 91精品蜜桃| 永久精品视频 | 色偷偷中文字幕 | 久久精品免费播放 | 最近中文字幕在线播放 | 激情网色| 国产免费激情久久 | 日韩国产精品一区 | 91免费版在线 | 一区二区精品在线观看 | 国产精品麻豆欧美日韩ww | 狠狠色伊人亚洲综合成人 | 国内精品久久久精品电影院 | 91精品欧美 | 中文字幕亚洲欧美日韩2019 | 欧美日韩国产亚洲乱码字幕 | 免费在线色 | 午夜精品久久久久99热app | 色视频成人在线观看免 | 国产精品久久久久久久久久久免费 | 91激情小视频 | 激情五月婷婷激情 | 国产日韩欧美在线观看 | 欧美日韩国产欧美 | 狠狠色丁香婷综合久久 | 91在线视频免费观看 | 一区二区三区精品在线 | 欧美成人aa | 99r在线视频| 9999在线视频 | 亚洲免费一级 | 国产免费又黄又爽 | 免费观看一级一片 | 亚洲成人精品影院 | 久香蕉 | 国产视频一二区 | 黄污视频网站大全 | 日韩一级网站 | 亚洲伦理一区二区 | 中文字幕丝袜 | 涩涩爱夜夜爱 | 亚洲特级毛片 | 亚洲精品一区二区三区四区高清 | 九九久久久久久久久激情 | 国产91国语对白在线 | 免费网站观看www在线观看 | 亚洲人视频在线 | 国产精品美女免费 | 爱爱av在线 | 久久久久久高潮国产精品视 | 4p变态网欧美系列 | 亚洲视屏在线播放 | 男女全黄一级一级高潮免费看 | 91色影院 | 国产成人精品久久亚洲高清不卡 | 黄色大片免费播放 | 四虎永久网站 | 欧美日韩视频 | 日韩av网站在线播放 | 97天天综合网 | 亚洲国产成人精品在线 | 高清av中文在线字幕观看1 | 在线观看av中文字幕 | 成年人在线观看免费视频 | 国产婷婷视频在线 | 亚洲精品免费在线播放 | 亚洲美女视频在线观看 | 久久综合狠狠狠色97 | 日韩精品第一区 | 91丨九色丨高潮 | 在线观看成人小视频 | 精品久久久影院 | 少妇bbbb| a午夜在线 | 日韩欧美精品在线观看视频 | 天天综合导航 | 在线免费黄色 | 亚洲一级片在线看 | 中文字幕一区二区三区在线视频 | 高清av中文在线字幕观看1 | 五月天天在线 | 精品国产1区二区 | 亚洲精品国产拍在线 | 日韩精品中文字幕在线 | 国产黄色片久久久 | 亚洲不卡av一区二区三区 | 久久99久久99免费视频 | 摸bbb搡bbb搡bbbb| 免费看三级网站 | 久久视频99 | 天天操比 | 婷婷伊人五月天 | 国产女人18毛片水真多18精品 | 亚洲影院色 | 男女激情片在线观看 | 91尤物国产尤物福利在线播放 | 免费视频久久久 | 中文字幕在线乱 | 日韩一区二区三区不卡 | 亚洲永久精品在线 | 日av免费| 国产精品一区久久久久 | 手机看片 | 免费特级黄色片 | 99久久婷婷国产综合亚洲 | 四虎欧美 | 精品字幕| 午夜精品久久久久久 | 亚洲一区二区麻豆 | 国产三级香港三韩国三级 | 国产精品a级 | 精品久久久久久久久久久久 | 又黄又爽的免费高潮视频 | 缴情综合网五月天 | 中文字幕一区二区三区乱码在线 | www国产亚洲 | 亚洲国产精久久久久久久 | 911久久香蕉国产线看观看 | 狠狠操影视 | 黄色av网站在线观看免费 | 在线欧美国产 | 91毛片在线观看 | 久久久片 | 亚洲成人免费观看 | 极品中文字幕 | 久久久免费电影 | 操操操影院 | av电影中文字幕在线观看 | 中文字幕在线观看三区 | 一区中文字幕电影 | 夜夜高潮夜夜爽国产伦精品 | 久久久三级视频 | 天天色天天射天天综合网 | 日韩黄色一级电影 | 综合铜03| 亚洲人毛片| 久久久在线观看 | 久久精品久久精品久久39 | 国产精品1000 | 国产精品 欧美 日韩 | 精品久久久一区二区 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲天堂在线观看完整版 | 欧美日本一区 | 91成人精品一区在线播放 | 色多视频在线观看 | 免费看国产一级片 | 在线看片中文字幕 | 蜜桃av观看 | 99热99| 91九色成人| 日本精品视频一区二区 | 精品色综合 | 99精品免费久久久久久久久日本 | 蜜桃av综合网 | 一区免费观看 | 欧美色道 | 国产爽妇网 | 欧美视频不卡 | 网站你懂的 | 又湿又紧又大又爽a视频国产 | 麻豆91网站 | 亚洲在线国产 | 久久精品99国产国产精 | 99久久精品免费看国产免费软件 | 国产在线不卡一区 | 欧美a免费| 国产婷婷 | 九九导航 | 少妇搡bbbb搡bbb搡69 | 久久婷婷一区二区三区 | www.色婷婷| 亚洲激情视频在线观看 | 亚洲乱码精品久久久久 | 国产视频一区在线 | 亚洲精品国产精品久久99 | 一级理论片在线观看 | av在线电影免费观看 | 亚洲九九精品 | 中文字幕国产在线 | 亚洲综合激情网 | 免费看三级黄色片 | 91在线超碰 | 成人三级av| 黄色日本免费 | 久久精品国产免费 | 婷婷在线色 | 亚洲国产片色 | 久久福利精品 | 99精品视频中文字幕 | 日韩高清在线一区二区三区 | 欧美日本中文字幕 | 99久免费精品视频在线观看 | 99re中文字幕 | 亚洲aⅴ一区二区三区 | 五月天久久精品 | 精品在线视频一区二区三区 | 99热最新精品 | 亚洲播播 | 久久久久国产精品厨房 | 五月婷婷狠狠 | 亚洲开心色| 婷婷综合视频 | 国产黄色片久久 | 天天综合亚洲 | 综合久久精品 | 中文字幕在线观看网址 | 日韩高清二区 | 日韩剧| 综合久久精品 | 日韩www在线 | 久久一区国产 | 国产福利一区二区三区视频 | 国产在线自 | 日韩在线视频精品 | 91黄色小网站 | a天堂免费| 久久国内精品视频 | 国产精品一区在线观看你懂的 | 在线视频免费观看 | 亚洲精品黄网站 | 成人av电影网址 | 狠狠躁日日躁狂躁夜夜躁av | 91爱爱免费观看 | 狠狠狠色丁香综合久久天下网 | 天天看天天干 | 亚洲成av人片在线观看www | 91激情视频在线 | 狠狠色丁香婷婷综合橹88 | 91激情小视频 | 欧美日韩啪啪 | 操操日| 日日草视频 | 18pao国产成视频永久免费 | av免费在线看网站 | 99精品在线免费在线观看 | 日韩美在线观看 | 亚洲dvd | 国产视频1| 中文字幕在线观看视频一区 | 久久久久久草 | 婷婷五综合 | 天天色天天射天天操 | 91麻豆国产福利在线观看 | 亚洲电影毛片 | 日韩欧美国产精品 | 亚洲精品在线免费 | 一区二区视频免费在线观看 | 99久久久久免费精品国产 | 日本久久成人 | 999久久久精品视频 日韩高清www | 日韩欧美一区视频 | 伊人婷婷网 | 中文字幕大全 | 香蕉久久久久久av成人 | 久久色在线观看 | 中文字幕乱码一区二区 | 久久国产a | 人人草在线观看 | 九九在线高清精品视频 | 久久一精品 | 色噜噜日韩精品欧美一区二区 | 91视频这里只有精品 | 日韩欧美一区视频 | 免费视频色 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 国产精品成人久久久久 | 欧美日韩在线网站 | av在线播放快速免费阴 | 久久激情小说 | 久久精品一区八戒影视 | 亚洲精品在线视频播放 | 中文字幕在线观看第三页 | 高清精品久久 | 永久免费毛片在线观看 | 在线免费色视频 | 亚洲日本中文字幕在线观看 | 夜夜骑日日 | 又黄又刺激视频 | 国产小视频在线免费观看视频 | 视频在线观看91 | 日韩啪视频 | 亚洲视频综合在线 | 97精品电影院 | 日韩av成人在线观看 | 超碰在97 | 亚洲精品va| 人人爱爱人人 | 丁香高清视频在线看看 | 久久dvd | 国产精品久久久久永久免费 | 日本成址在线观看 | 一区二区三区在线免费播放 | 久久人人看| 亚洲 中文字幕av | 国产精品视频内 | 日韩精品欧美视频 | 一区二区三区高清在线 | 日产中文字幕 | 麻豆国产精品视频 | 成人免费网站视频 | 亚洲激情| 九九热视频在线免费观看 | 久久精品这里热有精品 | 日韩中文字幕在线看 | 欧美成人高清 | 久久精品91久久久久久再现 | 久久大片| 一区二区三区在线免费观看视频 | 97人人澡人人爽人人模亚洲 | 亚洲免费av观看 | 亚洲视频一 | 久久久久国产精品厨房 | 最新91在线视频 | 天天久久综合 | 草樱av| 国产成人99久久亚洲综合精品 | 性色大片在线观看 | 亚洲午夜大片 | 国产精品久久久久久久久久久久冷 | 久久久黄色免费网站 | av一级片 | 精品黄色在线 | 激情综合网婷婷 | 日韩欧美xx| 美女国产| 亚州av成人 | 5月丁香婷婷综合 | 精精国产xxxx视频在线播放 | av免费看电影 | 精品久久在线 | 国语对白少妇爽91 | 日韩精品一区二区三区免费观看视频 | 在线免费日韩 | 日韩视频一二三区 | 99久久婷婷国产 | 中文字幕乱码电影 | 亚洲综合最新在线 | 激情综合一区 | 国产成人久久av免费高清密臂 | 午夜精品一区二区三区在线视频 | 久久久久久久久久久免费av | 国产短视频在线播放 | 一区二区三区在线播放 | 在线观看成人国产 | 久久综合精品一区 | 99这里只有久久精品视频 | 成人av资源网 | 久久久久免费看 | 久久综合影音 | 免费在线观看成人av | 四虎在线免费观看 | 亚洲成av人电影 | 伊人伊成久久人综合网站 | 欧美精品乱码久久久久久按摩 | 亚洲黄色区 | 在线观看黄网站 | 精品成人国产 | 国产精品久久久久免费 | 96精品高清视频在线观看软件特色 | 最近2019中文免费高清视频观看www99 | 成人综合日日夜夜 | 精品国产乱码久久久久 | 久久这里只有精品1 | 在线播放 日韩专区 | 91女子私密保健养生少妇 | 亚洲高清视频在线观看免费 | 99视频精品| 国产成人高清av | 一本一本久久a久久精品牛牛影视 | 国产午夜精品一区二区三区嫩草 | 天天艹日日干 | 91插插影库| 久久久国产精品亚洲一区 | 99久久99| 精品国产一区二区三区久久久 | 日韩av高清| 亚洲在线精品视频 | 天天综合成人网 | 天堂av在线中文在线 | www国产亚洲 | 亚洲免费av在线播放 | 国产精品久久久久久久免费观看 | 国产91精品看黄网站在线观看动漫 | 久久精品999| 丁香婷婷综合五月 | 在线观看av中文字幕 | 国产小视频免费在线网址 | 四川bbb搡bbb爽爽视频 | 人人看人人艹 | 西西44人体做爰大胆视频 | 中文字幕在线国产精品 | 国产玖玖在线 | 国产精品亚洲成人 | 97精品久久 | 在线观看免费 | 97在线免费 | 四虎在线观看精品视频 | 国产免费嫩草影院 | 伊人看片 | 日韩av中文 | 国产精品久久久久高潮 | 国产精品国产亚洲精品看不卡 | 在线免费观看国产黄色 | 天天看天天操 | 五月婷av | 波多野结衣在线观看一区 | 亚洲精品视频在线观看免费视频 | 一区二区三区在线影院 | 国产午夜精品一区二区三区 | 免费在线激情视频 | 在线视频精品播放 | 一区三区视频 | 日韩免费网站 | 欧美精品xx | 中文字幕一区二区三区四区视频 | 亚州中文av | 黄色软件网站在线观看 | 日韩高清免费观看 | 欧美狠狠操 | 国产免费资源 | 日韩欧美精品一区二区三区经典 | 天堂av在线7 | aaa日本高清在线播放免费观看 | 成人动漫一区二区三区 | 亚洲国产精品激情在线观看 | 99精品国产高清在线观看 | 视频国产在线观看18 | 欧美孕妇与黑人孕交 | 国产精品99久久久久久久久久久久 | 日韩国产精品久久久久久亚洲 | 91精品视频免费看 | 又色又爽又黄高潮的免费视频 | 国产视频亚洲视频 | 最近中文字幕mv | 日本在线视频网址 | 成人免费视频在线观看 | 中文字幕第一页在线 | 久久成人欧美 | 欧美精品在线观看免费 | 成人小视频免费在线观看 | 在线免费观看视频一区 | 天堂网一区 | 中文字幕人成乱码在线观看 | 久操视频在线 | av亚洲产国偷v产偷v自拍小说 | 91污在线| 免费国产在线视频 | 婷婷在线播放 | free,性欧美 九九交易行官网 | 99精品视频免费观看视频 | 国产小视频91 | 91精品在线免费观看视频 | 国产精品观看在线亚洲人成网 | 99久高清在线观看视频99精品热在线观看视频 | 国产中文欧美日韩在线 | 在线观看精品一区 | 久久久精品影视 | 国产精品1区2区3区在线观看 | 欧美成年人在线观看 | 久久,天天综合 | 最新av网站在线观看 | 亚洲理论影院 | 久久免费播放视频 | 在线观看涩涩 | 五月天中文字幕mv在线 | 中文字幕在线看视频国产中文版 | www狠狠操 | 五月综合婷 | av电影在线不卡 | 国产一区久久久 | 日韩在线视 | 色综合人人 | 国产精品av一区二区 | 人人澡超碰碰97碰碰碰软件 | 国产字幕在线观看 | 国内视频在线 | 国产一区精品在线观看 | 激情婷婷亚洲 | 又黄又刺激视频 | 91成人精品一区在线播放69 | 亚洲一区二区三区四区在线视频 | 黄色小说视频网站 | 亚洲国产av精品毛片鲁大师 | 国产网站色 | 中文字幕av有码 | 久久人人97超碰精品888 | 欧美a性 | 日韩1页 | 人人爽人人片 | 欧美精品九九 | 国产精品99久久久久的智能播放 | 国产91精品久久久久 | 日韩在线视频网 | 天天综合网在线观看 | 国产综合在线观看视频 | 亚洲欧美国内爽妇网 | 人人爽人人澡 | 96超碰在线 | 亚洲欧美视频网站 | 亚洲天堂网在线视频观看 | 九九在线高清精品视频 | 日韩欧美高清一区二区三区 | 欧美在线不卡一区 | 日韩免费视频一区二区 | 亚洲国产偷| 免费在线成人av电影 | 国产福利a | 99精品美女 | 成人av动漫在线 | 欧美大片在线观看一区 | 伊人伊成久久人综合网小说 | 中文字幕av免费在线观看 | 在线免费成人 | 婷婷网在线 | 亚洲aaa级| 综合久久一本 | 日日夜夜av| 国内精品福利视频 | 亚洲精品美女久久久 | 国产永久免费 | 亚洲欧洲精品一区 | 美女性爽视频国产免费app | 女人久久久久 | 欧美亚洲一级片 |