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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring中的重试功能!嗯,有点东西

發(fā)布時間:2025/3/11 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring中的重试功能!嗯,有点东西 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

來源:https://albenw.github.io/posts/69a9647f/

概要

Spring實現(xiàn)了一套重試機制,功能簡單實用。Spring Retry是從Spring Batch獨立出來的一個功能,已經廣泛應用于Spring Batch,Spring Integration, Spring for Apache Hadoop等Spring項目。 本文將講述如何使用Spring Retry及其實現(xiàn)原理。

背景

重試,其實我們其實很多時候都需要的,為了保證容錯性,可用性,一致性等。一般用來應對外部系統(tǒng)的一些不可預料的返回、異常等,特別是網絡延遲,中斷等情況。還有在現(xiàn)在流行的微服務治理框架中,通常都有自己的重試與超時配置,比如dubbo可以設置retries=1,timeout=500調用失敗只重試1次,超過500ms調用仍未返回則調用失敗。 如果我們要做重試,要為特定的某個操作做重試功能,則要硬編碼,大概邏輯基本都是寫個循環(huán),根據返回或異常,計數失敗次數,然后設定退出條件。 這樣做,且不說每個操作都要寫這種類似的代碼,而且重試邏輯和業(yè)務邏輯混在一起,給維護和擴展帶來了麻煩。 從面向對象的角度來看,我們應該把重試的代碼獨立出來。

使用介紹

基本使用

先舉個例子:

@Configuration @EnableRetry public?class?Application?{@Beanpublic?RetryService?retryService(){return?new?RetryService();}public?static?void?main(String[]?args)?throws?Exception{ApplicationContext?applicationContext?=?new?AnnotationConfigApplicationContext("springretry");RetryService?service1?=?applicationContext.getBean("service",?RetryService.class);service1.service();} }@Service("service") public?class?RetryService?{@Retryable(value?=?IllegalAccessException.class,?maxAttempts?=?5,backoff=?@Backoff(value?=?1500,?maxDelay?=?100000,?multiplier?=?1.2))public?void?service()?throws?IllegalAccessException?{System.out.println("service?method...");throw?new?IllegalAccessException("manual?exception");}@Recoverpublic?void?recover(IllegalAccessException?e){System.out.println("service?retry?after?Recover?=>?"?+?e.getMessage());}}

@EnableRetry - 表示開啟重試機制?

@Retryable - 表示這個方法需要重試,它有很豐富的參數,可以滿足你對重試的需求?

@Backoff - 表示重試中的退避策略?

@Recover - 兜底方法,即多次重試后還是失敗就會執(zhí)行這個方法

Spring-Retry 的功能豐富在于其重試策略和退避策略,還有兜底,監(jiān)聽器等操作。

然后每個注解里面的參數,都是很簡單的,大家看一下就知道是什么意思,怎么用了,我就不多講了。

重試策略

看一下Spring Retry自帶的一些重試策略,主要是用來判斷當方法調用異常時是否需要重試。(下文原理部分會深入分析實現(xiàn))

  • SimpleRetryPolicy 默認最多重試3次

  • TimeoutRetryPolicy 默認在1秒內失敗都會重試

  • ExpressionRetryPolicy 符合表達式就會重試

  • CircuitBreakerRetryPolicy 增加了熔斷的機制,如果不在熔斷狀態(tài),則允許重試

  • CompositeRetryPolicy 可以組合多個重試策略

  • NeverRetryPolicy 從不重試(也是一種重試策略哈)

  • AlwaysRetryPolicy 總是重試

….等等

退避策略

看一下退避策略,退避是指怎么去做下一次的重試,在這里其實就是等待多長時間。(下文原理部分會深入分析實現(xiàn))

  • FixedBackOffPolicy 默認固定延遲1秒后執(zhí)行下一次重試

  • ExponentialBackOffPolicy 指數遞增延遲執(zhí)行重試,默認初始0.1秒,系數是2,那么下次延遲0.2秒,再下次就是延遲0.4秒,如此類推,最大30秒。

  • ExponentialRandomBackOffPolicy 在上面那個策略上增加隨機性

  • UniformRandomBackOffPolicy 這個跟上面的區(qū)別就是,上面的延遲會不停遞增,這個只會在固定的區(qū)間隨機

  • StatelessBackOffPolicy 這個說明是無狀態(tài)的,所謂無狀態(tài)就是對上次的退避無感知,從它下面的子類也能看出來

原理

原理部分我想分開兩部分來講,一是重試機制的切入點,即它是如何使得你的代碼實現(xiàn)重試功能的;二是重試機制的詳細,包括重試的邏輯以及重試策略和退避策略的實現(xiàn)。

切入點

@EnableRetry

@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @EnableAspectJAutoProxy(proxyTargetClass?=?false) @Import(RetryConfiguration.class) @Documented public?@interface?EnableRetry?{/***?Indicate?whether?subclass-based?(CGLIB)?proxies?are?to?be?created?as?opposed*?to?standard?Java?interface-based?proxies.?The?default?is?{@code?false}.**?@return?whether?to?proxy?or?not?to?proxy?the?class*/boolean?proxyTargetClass()?default?false;}

我們可以看到

@EnableAspectJAutoProxy(proxyTargetClass = false)

這個并不陌生,就是打開Spring AOP功能。 重點看看

@Import(RetryConfiguration.class)

@Import相當于注冊這個Bean

我們看看這個RetryConfiguration是個什么東西

它是一個AbstractPointcutAdvisor,它有一個pointcut和一個advice。我們知道,在IOC過程中會根據PointcutAdvisor類來對Bean進行Pointcut的過濾,然后生成對應的AOP代理類,用advice來加強處理。 看看RetryConfiguration的初始化:

@PostConstructpublic?void?init()?{Set<Class<??extends?Annotation>>?retryableAnnotationTypes?=?new?LinkedHashSet<Class<??extends?Annotation>>(1);retryableAnnotationTypes.add(Retryable.class);//創(chuàng)建pointcutthis.pointcut?=?buildPointcut(retryableAnnotationTypes);//創(chuàng)建advicethis.advice?=?buildAdvice();if?(this.advice?instanceof?BeanFactoryAware)?{((BeanFactoryAware)?this.advice).setBeanFactory(beanFactory);}} protected?Pointcut?buildPointcut(Set<Class<??extends?Annotation>>?retryAnnotationTypes)?{ComposablePointcut?result?=?null;for?(Class<??extends?Annotation>?retryAnnotationType?:?retryAnnotationTypes)?{Pointcut?filter?=?new?AnnotationClassOrMethodPointcut(retryAnnotationType);if?(result?==?null)?{result?=?new?ComposablePointcut(filter);}else?{result.union(filter);}}return?result;}

上面代碼用到了AnnotationClassOrMethodPointcut,其實它最終還是用到了AnnotationMethodMatcher來根據注解進行切入點的過濾。這里就是@Retryable注解了。

//創(chuàng)建advice對象,即攔截器protected?Advice?buildAdvice()?{//下面關注這個對象AnnotationAwareRetryOperationsInterceptor?interceptor?=?new?AnnotationAwareRetryOperationsInterceptor();if?(retryContextCache?!=?null)?{interceptor.setRetryContextCache(retryContextCache);}if?(retryListeners?!=?null)?{interceptor.setListeners(retryListeners);}if?(methodArgumentsKeyGenerator?!=?null)?{interceptor.setKeyGenerator(methodArgumentsKeyGenerator);}if?(newMethodArgumentsIdentifier?!=?null)?{interceptor.setNewItemIdentifier(newMethodArgumentsIdentifier);}if?(sleeper?!=?null)?{interceptor.setSleeper(sleeper);}return?interceptor; }

AnnotationAwareRetryOperationsInterceptor

繼承關系

可以看出AnnotationAwareRetryOperationsInterceptor是一個MethodInterceptor,在創(chuàng)建AOP代理過程中如果目標方法符合pointcut的規(guī)則,它就會加到interceptor列表中,然后做增強,我們看看invoke方法做了什么增強。

@Overridepublic?Object?invoke(MethodInvocation?invocation)?throws?Throwable?{MethodInterceptor?delegate?=?getDelegate(invocation.getThis(),?invocation.getMethod());if?(delegate?!=?null)?{return?delegate.invoke(invocation);}else?{return?invocation.proceed();}}

這里用到了委托,主要是需要根據配置委托給具體“有狀態(tài)”的interceptor還是“無狀態(tài)”的interceptor。

private?MethodInterceptor?getDelegate(Object?target,?Method?method)?{if?(!this.delegates.containsKey(target)?||?!this.delegates.get(target).containsKey(method))?{synchronized?(this.delegates)?{if?(!this.delegates.containsKey(target))?{this.delegates.put(target,?new?HashMap<Method,?MethodInterceptor>());}Map<Method,?MethodInterceptor>?delegatesForTarget?=?this.delegates.get(target);if?(!delegatesForTarget.containsKey(method))?{Retryable?retryable?=?AnnotationUtils.findAnnotation(method,?Retryable.class);if?(retryable?==?null)?{retryable?=?AnnotationUtils.findAnnotation(method.getDeclaringClass(),?Retryable.class);}if?(retryable?==?null)?{retryable?=?findAnnotationOnTarget(target,?method);}if?(retryable?==?null)?{return?delegatesForTarget.put(method,?null);}MethodInterceptor?delegate;//支持自定義MethodInterceptor,而且優(yōu)先級最高if?(StringUtils.hasText(retryable.interceptor()))?{delegate?=?this.beanFactory.getBean(retryable.interceptor(),?MethodInterceptor.class);}else?if?(retryable.stateful())?{//得到“有狀態(tài)”的interceptordelegate?=?getStatefulInterceptor(target,?method,?retryable);}else?{//得到“無狀態(tài)”的interceptordelegate?=?getStatelessInterceptor(target,?method,?retryable);}delegatesForTarget.put(method,?delegate);}}}return?this.delegates.get(target).get(method);}

getStatefulInterceptor和getStatelessInterceptor都是差不多,我們先看看比較簡單的getStatelessInterceptor。

private?MethodInterceptor?getStatelessInterceptor(Object?target,?Method?method,?Retryable?retryable)?{//生成一個RetryTemplateRetryTemplate?template?=?createTemplate(retryable.listeners());//生成retryPolicytemplate.setRetryPolicy(getRetryPolicy(retryable));//生成backoffPolicytemplate.setBackOffPolicy(getBackoffPolicy(retryable.backoff()));return?RetryInterceptorBuilder.stateless().retryOperations(template).label(retryable.label()).recoverer(getRecoverer(target,?method)).build();}

具體生成retryPolicy和backoffPolicy的規(guī)則,我們等下再回頭來看。 RetryInterceptorBuilder其實就是為了生成RetryOperationsInterceptor。RetryOperationsInterceptor也是一個MethodInterceptor,我們來看看它的invoke方法。

public?Object?invoke(final?MethodInvocation?invocation)?throws?Throwable?{String?name;if?(StringUtils.hasText(label))?{name?=?label;}?else?{name?=?invocation.getMethod().toGenericString();}final?String?label?=?name;//定義了一個RetryCallback,其實看它的doWithRetry方法,調用了invocation的proceed()方法,是不是有點眼熟,這就是AOP的攔截鏈調用,如果沒有攔截鏈,那就是對原來方法的調用。RetryCallback<Object,?Throwable>?retryCallback?=?new?RetryCallback<Object,?Throwable>()?{public?Object?doWithRetry(RetryContext?context)?throws?Exception?{context.setAttribute(RetryContext.NAME,?label);/**?If?we?don't?copy?the?invocation?carefully?it?won't?keep?a?reference?to*?the?other?interceptors?in?the?chain.?We?don't?have?a?choice?here?but?to*?specialise?to?ReflectiveMethodInvocation?(but?how?often?would?another*?implementation?come?along?).*/if?(invocation?instanceof?ProxyMethodInvocation)?{try?{return?((ProxyMethodInvocation)?invocation).invocableClone().proceed();}catch?(Exception?e)?{throw?e;}catch?(Error?e)?{throw?e;}catch?(Throwable?e)?{throw?new?IllegalStateException(e);}}else?{throw?new?IllegalStateException("MethodInvocation?of?the?wrong?type?detected?-?this?should?not?happen?with?Spring?AOP,?"?+"so?please?raise?an?issue?if?you?see?this?exception");}}};if?(recoverer?!=?null)?{ItemRecovererCallback?recoveryCallback?=?new?ItemRecovererCallback(invocation.getArguments(),?recoverer);return?this.retryOperations.execute(retryCallback,?recoveryCallback);}//最終還是進入到retryOperations的execute方法,這個retryOperations就是在之前的builder?set進來的RetryTemplate。return?this.retryOperations.execute(retryCallback);}

無論是RetryOperationsInterceptor還是StatefulRetryOperationsInterceptor,最終的攔截處理邏輯還是調用到RetryTemplate的execute方法,從名字也看出來,RetryTemplate作為一個模板類,里面包含了重試統(tǒng)一邏輯。不過,我看這個RetryTemplate并不是很“模板”,因為它沒有很多可以擴展的地方。

重試邏輯及策略實現(xiàn)

上面介紹了Spring Retry利用了AOP代理使重試機制對業(yè)務代碼進行“入侵”。下面我們繼續(xù)看看重試的邏輯做了什么。 RetryTemplate的doExecute方法。

protected?<T,?E?extends?Throwable>?T?doExecute(RetryCallback<T,?E>?retryCallback,RecoveryCallback<T>?recoveryCallback,?RetryState?state)throws?E,?ExhaustedRetryException?{RetryPolicy?retryPolicy?=?this.retryPolicy;BackOffPolicy?backOffPolicy?=?this.backOffPolicy;//新建一個RetryContext來保存本輪重試的上下文RetryContext?context?=?open(retryPolicy,?state);if?(this.logger.isTraceEnabled())?{this.logger.trace("RetryContext?retrieved:?"?+?context);}//?Make?sure?the?context?is?available?globally?for?clients?who?need//?it...RetrySynchronizationManager.register(context);Throwable?lastException?=?null;boolean?exhausted?=?false;try?{//如果有注冊RetryListener,則會調用它的open方法,給調用者一個通知。boolean?running?=?doOpenInterceptors(retryCallback,?context);if?(!running)?{throw?new?TerminatedRetryException("Retry?terminated?abnormally?by?interceptor?before?first?attempt");}//?Get?or?Start?the?backoff?context...BackOffContext?backOffContext?=?null;Object?resource?=?context.getAttribute("backOffContext");if?(resource?instanceof?BackOffContext)?{backOffContext?=?(BackOffContext)?resource;}if?(backOffContext?==?null)?{backOffContext?=?backOffPolicy.start(context);if?(backOffContext?!=?null)?{context.setAttribute("backOffContext",?backOffContext);}}//判斷能否重試,就是調用RetryPolicy的canRetry方法來判斷。//這個循環(huán)會直到原方法不拋出異常,或不需要再重試while?(canRetry(retryPolicy,?context)?&&?!context.isExhaustedOnly())?{try?{if?(this.logger.isDebugEnabled())?{this.logger.debug("Retry:?count="?+?context.getRetryCount());}//清除上次記錄的異常lastException?=?null;//doWithRetry方法,一般來說就是原方法return?retryCallback.doWithRetry(context);}catch?(Throwable?e)?{//原方法拋出了異常lastException?=?e;try?{//記錄異常信息registerThrowable(retryPolicy,?state,?context,?e);}catch?(Exception?ex)?{throw?new?TerminatedRetryException("Could?not?register?throwable",ex);}finally?{//調用RetryListener的onError方法doOnErrorInterceptors(retryCallback,?context,?e);}//再次判斷能否重試if?(canRetry(retryPolicy,?context)?&&?!context.isExhaustedOnly())?{try?{//如果可以重試則走退避策略backOffPolicy.backOff(backOffContext);}catch?(BackOffInterruptedException?ex)?{lastException?=?e;//?back?off?was?prevented?by?another?thread?-?fail?the?retryif?(this.logger.isDebugEnabled())?{this.logger.debug("Abort?retry?because?interrupted:?count="+?context.getRetryCount());}throw?ex;}}if?(this.logger.isDebugEnabled())?{this.logger.debug("Checking?for?rethrow:?count="?+?context.getRetryCount());}if?(shouldRethrow(retryPolicy,?context,?state))?{if?(this.logger.isDebugEnabled())?{this.logger.debug("Rethrow?in?retry?for?policy:?count="+?context.getRetryCount());}throw?RetryTemplate.<E>wrapIfNecessary(e);}}/**?A?stateful?attempt?that?can?retry?may?rethrow?the?exception?before?now,*?but?if?we?get?this?far?in?a?stateful?retry?there's?a?reason?for?it,*?like?a?circuit?breaker?or?a?rollback?classifier.*/if?(state?!=?null?&&?context.hasAttribute(GLOBAL_STATE))?{break;}}if?(state?==?null?&&?this.logger.isDebugEnabled())?{this.logger.debug("Retry?failed?last?attempt:?count="?+?context.getRetryCount());}exhausted?=?true;//重試結束后如果有兜底Recovery方法則執(zhí)行,否則拋異常return?handleRetryExhausted(recoveryCallback,?context,?state);}catch?(Throwable?e)?{throw?RetryTemplate.<E>wrapIfNecessary(e);}finally?{//處理一些關閉邏輯close(retryPolicy,?context,?state,?lastException?==?null?||?exhausted);//調用RetryListener的close方法doCloseInterceptors(retryCallback,?context,?lastException);RetrySynchronizationManager.clear();}}

主要核心重試邏輯就是上面的代碼了,看上去還是挺簡單的。 在上面,我們漏掉了RetryPolicy的canRetry方法和BackOffPolicy的backOff方法,以及這兩個Policy是怎么來的。 我們回頭看看getStatelessInterceptor方法中的getRetryPolicy和getRetryPolicy方法。

private?RetryPolicy?getRetryPolicy(Annotation?retryable)?{Map<String,?Object>?attrs?=?AnnotationUtils.getAnnotationAttributes(retryable);@SuppressWarnings("unchecked")Class<??extends?Throwable>[]?includes?=?(Class<??extends?Throwable>[])?attrs.get("value");String?exceptionExpression?=?(String)?attrs.get("exceptionExpression");boolean?hasExpression?=?StringUtils.hasText(exceptionExpression);if?(includes.length?==?0)?{@SuppressWarnings("unchecked")Class<??extends?Throwable>[]?value?=?(Class<??extends?Throwable>[])?attrs.get("include");includes?=?value;}@SuppressWarnings("unchecked")Class<??extends?Throwable>[]?excludes?=?(Class<??extends?Throwable>[])?attrs.get("exclude");Integer?maxAttempts?=?(Integer)?attrs.get("maxAttempts");String?maxAttemptsExpression?=?(String)?attrs.get("maxAttemptsExpression");if?(StringUtils.hasText(maxAttemptsExpression))?{maxAttempts?=?PARSER.parseExpression(resolve(maxAttemptsExpression),?PARSER_CONTEXT).getValue(this.evaluationContext,?Integer.class);}if?(includes.length?==?0?&&?excludes.length?==?0)?{SimpleRetryPolicy?simple?=?hasExpression???new?ExpressionRetryPolicy(resolve(exceptionExpression)).withBeanFactory(this.beanFactory):?new?SimpleRetryPolicy();simple.setMaxAttempts(maxAttempts);return?simple;}Map<Class<??extends?Throwable>,?Boolean>?policyMap?=?new?HashMap<Class<??extends?Throwable>,?Boolean>();for?(Class<??extends?Throwable>?type?:?includes)?{policyMap.put(type,?true);}for?(Class<??extends?Throwable>?type?:?excludes)?{policyMap.put(type,?false);}boolean?retryNotExcluded?=?includes.length?==?0;if?(hasExpression)?{return?new?ExpressionRetryPolicy(maxAttempts,?policyMap,?true,?exceptionExpression,?retryNotExcluded).withBeanFactory(this.beanFactory);}else?{return?new?SimpleRetryPolicy(maxAttempts,?policyMap,?true,?retryNotExcluded);}}

嗯~,代碼不難,這里簡單做一下總結好了。就是通過@Retryable注解中的參數,來判斷具體使用文章開頭說到的哪個重試策略,是SimpleRetryPolicy還是ExpressionRetryPolicy等。

private?BackOffPolicy?getBackoffPolicy(Backoff?backoff)?{long?min?=?backoff.delay()?==?0???backoff.value()?:?backoff.delay();if?(StringUtils.hasText(backoff.delayExpression()))?{min?=?PARSER.parseExpression(resolve(backoff.delayExpression()),?PARSER_CONTEXT).getValue(this.evaluationContext,?Long.class);}long?max?=?backoff.maxDelay();if?(StringUtils.hasText(backoff.maxDelayExpression()))?{max?=?PARSER.parseExpression(resolve(backoff.maxDelayExpression()),?PARSER_CONTEXT).getValue(this.evaluationContext,?Long.class);}double?multiplier?=?backoff.multiplier();if?(StringUtils.hasText(backoff.multiplierExpression()))?{multiplier?=?PARSER.parseExpression(resolve(backoff.multiplierExpression()),?PARSER_CONTEXT).getValue(this.evaluationContext,?Double.class);}if?(multiplier?>?0)?{ExponentialBackOffPolicy?policy?=?new?ExponentialBackOffPolicy();if?(backoff.random())?{policy?=?new?ExponentialRandomBackOffPolicy();}policy.setInitialInterval(min);policy.setMultiplier(multiplier);policy.setMaxInterval(max?>?min???max?:?ExponentialBackOffPolicy.DEFAULT_MAX_INTERVAL);if?(this.sleeper?!=?null)?{policy.setSleeper(this.sleeper);}return?policy;}if?(max?>?min)?{UniformRandomBackOffPolicy?policy?=?new?UniformRandomBackOffPolicy();policy.setMinBackOffPeriod(min);policy.setMaxBackOffPeriod(max);if?(this.sleeper?!=?null)?{policy.setSleeper(this.sleeper);}return?policy;}FixedBackOffPolicy?policy?=?new?FixedBackOffPolicy();policy.setBackOffPeriod(min);if?(this.sleeper?!=?null)?{policy.setSleeper(this.sleeper);}return?policy;}

嗯~,一樣的味道。就是通過@Backoff注解中的參數,來判斷具體使用文章開頭說到的哪個退避策略,是FixedBackOffPolicy還是UniformRandomBackOffPolicy等。

那么每個RetryPolicy都會重寫canRetry方法,然后在RetryTemplate判斷是否需要重試。 我們看看SimpleRetryPolicy的

@Overridepublic?boolean?canRetry(RetryContext?context)?{Throwable?t?=?context.getLastThrowable();//判斷拋出的異常是否符合重試的異常//還有,是否超過了重試的次數return?(t?==?null?||?retryForException(t))?&&?context.getRetryCount()?<?maxAttempts;}

同樣,我們看看FixedBackOffPolicy的退避方法。

protected?void?doBackOff()?throws?BackOffInterruptedException?{try?{//就是sleep固定的時間sleeper.sleep(backOffPeriod);}catch?(InterruptedException?e)?{throw?new?BackOffInterruptedException("Thread?interrupted?while?sleeping",?e);}}

至此,重試的主要原理以及邏輯大概就是這樣了。

RetryContext

我覺得有必要說說RetryContext,先看看它的繼承關系。

可以看出對每一個策略都有對應的Context。

在Spring Retry里,其實每一個策略都是單例來的。我剛開始直覺是對每一個需要重試的方法都會new一個策略,這樣重試策略之間才不會產生沖突,但是一想就知道這樣就可能多出了很多策略對象出來,增加了使用者的負擔,這不是一個好的設計。Spring Retry采用了一個更加輕量級的做法,就是針對每一個需要重試的方法只new一個上下文Context對象,然后在重試時,把這個Context傳到策略里,策略再根據這個Context做重試,而且Spring Retry還對這個Context做了cache。這樣就相當于對重試的上下文做了優(yōu)化。

總結

Spring Retry通過AOP機制來實現(xiàn)對業(yè)務代碼的重試”入侵“,RetryTemplate中包含了核心的重試邏輯,還提供了豐富的重試策略和退避策略。

參考資料

http://www.10tiao.com/html/164/201705/2652898434/1.html https://www.jianshu.com/p/58e753ca0151 https://paper.tuisec.win/detail/90bd660fad92183


總結

以上是生活随笔為你收集整理的Spring中的重试功能!嗯,有点东西的全部內容,希望文章能夠幫你解決所遇到的問題。

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

四虎国产精品永久在线国在线 | 久久综合婷婷综合 | 日韩av不卡在线观看 | 99久久爱 | 激情五月六月婷婷 | 特黄色大片 | 国产成人精品久久久久 | 在线视频日韩一区 | 欧美日韩免费在线观看视频 | 五月婷婷狠狠 | 九九久久影视 | 人人爽久久久噜噜噜电影 | 国产高清日韩欧美 | 国产精品 国产精品 | 特级黄色视频毛片 | 视频一区二区国产 | 国产美女网站视频 | 色狠狠综合天天综合综合 | 亚洲精品高清在线 | 天天干天天干天天干天天干天天干天天干 | 999精品视频| 91在线观看高清 | 深夜福利视频在线观看 | 久久国产一区二区三区 | 精品视频中文字幕 | 丁香六月五月婷婷 | 国产成人精品久久久久 | 国产高清专区 | 欧美一级性生活视频 | 国产原创av在线 | 五月天综合色 | 免费观看日韩av | 福利视频第一页 | 成人小视频在线 | 91成人精品一区在线播放 | 精品国产自 | 天天艹天天操 | 日本一区二区免费在线观看 | 久久999久久| 九九免费观看全部免费视频 | 日本一区二区免费在线观看 | 91久久丝袜国产露脸动漫 | 国产黄色片一级三级 | 日韩av一区二区在线播放 | 精品国产精品久久一区免费式 | 亚洲精品综合久久 | 日韩一区二区三区高清在线观看 | 最近日本韩国中文字幕 | 成年人视频免费在线播放 | 9992tv成人免费看片 | 国产拍揄自揄精品视频麻豆 | 欧美精选一区二区三区 | 国产中文视 | 国产精品一区二区av麻豆 | 国产日韩精品在线观看 | 最近更新好看的中文字幕 | 久久私人影院 | 91精品国产欧美一区二区 | 在线看日韩 | 国产在线中文 | 麻豆视频免费在线播放 | 色噜噜狠狠狠狠色综合久不 | 亚洲欧洲成人精品av97 | av在线在线 | 久久综合狠狠综合久久激情 | 亚洲成av人片一区二区梦乃 | 狠狠的操你 | 国产成在线观看免费视频 | 欧美一二区在线 | 成人一区二区在线 | 欧美精品少妇xxxxx喷水 | 99久久成人 | 最近最新最好看中文视频 | 日韩中文字幕电影 | 精品a在线 | 欧美a视频在线观看 | 三上悠亚一区二区在线观看 | 国产一二三在线视频 | 久久久久免费网 | 久久久久激情视频 | 在线观看中文字幕av | 免费网站在线观看成人 | 久草精品视频在线看网站免费 | 欧美精品二区 | 97精品在线| 久青草国产在线 | 中文字幕av免费 | 亚洲第一久久久 | 一区二区精品在线观看 | 激情网五月天 | 国产在线国产 | 五月婷婷在线综合 | 玖玖玖国产精品 | 成人一区不卡 | 日韩免费电影在线观看 | 欧美精品在线观看一区 | 99久久精品免费看 | 91亚洲精品久久久 | 插综合网| 成人久久久久久久久久 | 午夜 久久 tv | 国产精品免费在线播放 | 日韩精品一区二区三区丰满 | 国产在线观看h | 中文字幕欧美激情 | 亚洲经典中文字幕 | 久草免费在线观看视频 | 国产一级免费在线观看 | 97在线观 | 免费在线一区二区 | 成人网在线免费视频 | 99久久精品一区二区成人 | 国产最新视频在线 | 国产伦理一区二区三区 | 欧美日韩视频在线观看免费 | 九九综合久久 | 手机av在线网站 | 丁香国产视频 | 99久久精品久久久久久动态片 | 五月天亚洲婷婷 | 中文字幕 婷婷 | 日本精品一区二区三区在线观看 | 黄色国产区 | 999成人精品 | 国产综合在线视频 | 人人插人人看 | 国产精品久久伊人 | 亚洲最新视频在线 | 欧美日韩高清在线一区 | 手机色站 | 黄网站免费久久 | 国产91综合一区在线观看 | 中文一区在线 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 国产精品系列在线播放 | 国产一级精品绿帽视频 | 91人人视频在线观看 | 男女激情麻豆 | 久久免费毛片视频 | 99在线热播精品免费99热 | 成人黄色中文字幕 | 午夜精品一区二区三区在线视频 | 中文字幕中文中文字幕 | 色婷婷中文 | 日韩在线观看中文字幕 | 欧美少妇bbwhd | 狠狠色丁香婷婷综合欧美 | 国产日韩av在线 | 欧美性生交大片免网 | 一级片视频在线 | 久久国色夜色精品国产 | 精品国产一区二区三区四 | 久久色在线播放 | 亚洲涩涩涩 | 久久精品99国产精品 | 成人在线观看av | 久久久国产一区二区 | 在线观看国产91 | 狠狠躁日日躁狂躁夜夜躁av | 精品一区二区三区久久久 | 黄网站a| 成片人卡1卡2卡3手机免费看 | 一区二区三区高清不卡 | 欧美日韩一区二区三区免费视频 | 久久新视频 | 操操日| 久久有精品 | 欧美成人精品xxx | 欧美黄污视频 | 日韩三级在线观看 | 久久久久免费精品视频 | 天天草av | 久久www免费人成看片高清 | 黄色特一级 | 国产美女精品人人做人人爽 | 91九色最新 | 国产 亚洲 欧美 在线 | 久久久久国产精品视频 | 999日韩 | 久久9999久久免费精品国产 | 999一区二区三区 | 最近中文字幕视频网 | 日韩久久精品一区二区 | 日日夜日日干 | 亚洲精品日韩在线观看 | 国产精品免费观看视频 | 黄色在线免费观看网址 | 天堂资源在线观看视频 | 草久视频在线观看 | 黄视频网站大全 | 成人黄色电影在线播放 | 国产高清中文字幕 | 欧美日韩免费视频 | 精品久久久久久国产 | 日韩乱码在线 | 免费 在线 中文 日本 | 亚洲黄色片 | 五月婷婷激情五月 | 久久国产免费 | 91香蕉视频色版 | 超碰在线cao| 亚洲理论电影网 | 激情亚洲综合在线 | 亚洲精品视频免费看 | 国内精品视频一区二区三区八戒 | 在线观看的黄色 | 九九视频免费 | 深爱开心激情 | 一区二区三区四区在线免费观看 | 97碰碰精品嫩模在线播放 | 日韩av黄| 亚洲精品影院在线观看 | 毛片一二区 | 久久国产高清视频 | 国产色婷婷精品综合在线手机播放 | 高清不卡一区二区在线 | 国产精品视频 | www.综合网.com| 少妇高潮流白浆在线观看 | 一区二区三区在线观看免费视频 | 天天精品视频 | 午夜视频欧美 | 成 人 黄 色 视频免费播放 | 久久久久日本精品一区二区三区 | 午夜电影av | 久久在现| www.夜夜骑.com | 免费视频18| 欧美怡红院视频 | 欧美一级久久久 | 91精品视频在线观看免费 | 亚洲91在线 | 麻豆激情电影 | 精品女同一区二区三区在线观看 | 国产视频精品视频 | 免费在线观看黄网站 | 91久久丝袜国产露脸动漫 | 国产乱老熟视频网88av | 日色在线视频 | 99久高清在线观看视频99精品热在线观看视频 | 色视频在线观看免费 | 麻豆一二| 97视频在线观看视频免费视频 | 国产精品18久久久久vr手机版特色 | 久久精视频 | 天天操天天干天天干 | 在线免费av网站 | 精品国产乱码久久久久久三级人 | 国产97色在线 | 精品极品在线 | 尤物九九久久国产精品的分类 | 亚洲欧美偷拍另类 | av日韩中文| 这里只有精品视频在线 | 亚洲mv大片欧洲mv大片免费 | 亚洲午夜久久久久久久久电影网 | 日韩一区二区三区高清在线观看 | av电影在线观看完整版一区二区 | 欧美日韩高清在线一区 | 国产小视频免费在线观看 | 色综合久久久久综合体 | 人人草人人草 | 99亚洲精品视频 | 最近高清中文在线字幕在线观看 | 91久久久久久久一区二区 | 在线看黄网站 | 国产精品久久久久久久久久白浆 | 午夜精品一区二区三区四区 | 婷婷射五月 | 最新久久免费视频 | 综合网久久 | 亚洲国产成人在线 | 在线精品视频在线观看高清 | 欧美成人精品欧美一级乱 | 久久久蜜桃一区二区 | 在线中文字幕视频 | 日韩| 中文在线天堂资源 | 97日日 | 日韩高清免费电影 | 不卡av电影在线 | 亚洲精品国精品久久99热一 | 91网页版在线观看 | 在线婷婷 | 在线观看国产高清视频 | 天天躁日日 | 精品一区二区在线观看 | 成年一级片 | 婷婷综合五月天 | 青青草国产免费 | 91久久精 | 久久成年人视频 | 中文字幕黄色网 | 在线韩国电影免费观影完整版 | 国产视频在线免费观看 | 欧美成人猛片 | 亚洲久草在线 | 午夜在线观看 | 在线观看日韩国产 | 91在线在线观看 | 91免费网站在线观看 | 美女久久99 | 久久国产精品99精国产 | 91九色在线播放 | japanese黑人亚洲人4k | 五月激情丁香图片 | 国产一区二区三区免费视频 | 欧美另类调教 | 久久亚洲精品国产亚洲老地址 | 91色九色 | 久久爱资源网 | 国产一区自拍视频 | 欧美片网站yy| 91av在线精品 | 国产精品美女久久 | 中文字幕91在线 | 国产一区二区精 | 日韩免费一二三区 | 婷婷夜夜 | 国产r级在线观看 | 精品999 | 日本精品一二区 | 韩日电影在线 | 91在线小视频 | 人九九精品 | 婷婷色中文 | 欧美日韩中文字幕综合视频 | 久久久精品一区二区三区 | 最近免费中文字幕mv在线视频3 | 精品久久久久久一区二区里番 | 日本精品视频一区二区 | 亚洲精品视 | 国产97视频 | 人人看人人爱 | 亚洲第一久久久 | 欧美日韩国产精品一区 | 91视频午夜| 九九精品视频在线观看 | 激情在线五月天 | 欧美精品一区在线 | 欧美日韩精品在线 | ww视频在线观看 | 91热视频 | 蜜臀av一区| 精品国产欧美一区二区三区不卡 | 成年人在线免费视频观看 | 精品美女久久 | 97视频人人澡人人爽 | 在线亚洲午夜片av大片 | 国精产品999国精产品视频 | 久久福利在线 | 99热最新| 91网在线 | 九七在线视频 | 国产精品96久久久久久吹潮 | 久草视频播放 | 精品亚洲免a | 波多野结衣一区二区三区中文字幕 | av电影不卡在线 | 国产精品久久久久影院 | 欧美疯狂性受xxxxx另类 | 日日干夜夜草 | 天天操天天射天天插 | 97成人超碰| 亚洲最新合集 | 麻豆一级视频 | 五月激情五月激情 | 国产精品区二区三区日本 | 欧美男同网站 | 97热久久免费频精品99 | 亚洲在线看| 成年人电影免费看 | 成年人av在线播放 | 天天干,天天射,天天操,天天摸 | 中文字幕在线观看完整版 | 日本精品xxxx| 四虎永久国产精品 | www在线观看视频 | 看片黄网站| 久久av中文字幕片 | 久久成人综合 | 欧美乱大交 | 日本精品久久久久中文字幕 | 美女视频黄网站 | 亚洲人成在线电影 | 亚洲欧洲精品一区 | 国产色黄网站 | 国产精品国产自产拍高清av | 国产99久久久国产 | 手机av片| 国产成人av免费在线观看 | 国产在线视频一区二区三区 | 中文字幕在线观看你懂的 | 色婷婷激情综合 | 亚洲午夜久久久久 | 丝袜美腿在线 | 亚洲精品男人天堂 | 免费日韩高清 | 久久久香蕉视频 | 深夜福利视频在线观看 | 成人免费网站视频 | 亚洲一级片在线看 | 天天综合网久久综合网 | 国产 一区二区三区 在线 | av网站有哪些 | 国产黄色免费电影 | 久久九九影视 | 国产精品剧情 | 麻豆精品视频在线 | 69亚洲乱| 男女激情片在线观看 | 又黄又爽又色无遮挡免费 | 一级片免费在线 | av电影在线观看完整版一区二区 | 9在线观看免费 | 中文字幕视频在线播放 | 成人av一二三区 | 视频精品一区二区三区 | 天天干,天天操,天天射 | 欧美日韩在线视频观看 | 国产福利av| 黄色特一级 | 欧洲精品久久久久毛片完整版 | 日韩色高清 | 91日韩免费| 国产一区麻豆 | 日韩黄视频 | 天堂网一区| 涩涩色亚洲一区 | 久草9视频| 色婷婷精品 | 日韩免费区 | 亚洲成色777777在线观看影院 | 天天色综合1 | 免费精品在线观看 | 国产高清在线精品 | 国产精品久久久影视 | 狠狠狠的干| 亚洲精品视 | 特级大胆西西4444www | 91大片成人网 | 日韩视频 一区 | 国产精品成人a免费观看 | 最近日本中文字幕 | 日本精品视频一区 | av一区二区在线观看中文字幕 | 欧美国产一区二区 | 久久乐九色婷婷综合色狠狠182 | 免费午夜视频在线观看 | 国产精品大尺度 | 有码中文字幕在线观看 | a成人v在线| 一区二区三区四区不卡 | 国产高清黄 | 免费看的国产视频网站 | 一区三区视频 | 狠狠狠色丁香婷婷综合久久五月 | 久久艹中文字幕 | 337p欧美| 欧美精品一区二区在线播放 | 日日夜夜精品 | 日韩久久一区 | 久视频在线播放 | 中文字幕第一页在线 | 天天操天天插 | 国产精品精品国产色婷婷 | 亚洲美女视频网 | 久久精品99国产精品酒店日本 | 日韩特级片 | 在线观看一级片 | 91手机电影 | 欧美精品在线视频 | 在线天堂视频 | 日本xxxx.com| 日韩在线三级 | 欧美日韩中文国产一区发布 | 99国产成+人+综合+亚洲 欧美 | av在线最新 | 国产手机在线精品 | 天天色综合久久 | 久久久久久国产精品 | 国产精品理论视频 | 亚洲视频免费在线 | 日韩综合一区二区 | 99精品一区 | 久久精品一二区 | 深夜男人影院 | 国产在线 一区二区三区 | 国产精品一区二区美女视频免费看 | 国产精品午夜8888 | 九九九热精品免费视频观看 | 丁香婷婷综合五月 | 97视频久久久 | 美女在线观看av | 天天爱天天操天天干 | 精品欧美乱码久久久久久 | 国产免费成人 | 最近乱久中文字幕 | 韩国一区二区三区视频 | 亚洲精品黄 | 免费看污污视频的网站 | 久久天堂影院 | 夜夜爽天天爽 | 又污又黄网站 | 超级碰碰免费视频 | 夜夜躁日日躁狠狠躁 | 日日综合网 | 最新日韩在线观看 | 国产一区二区免费看 | 成人中文字幕av | 人人玩人人添人人澡超碰 | 欧美性黄网官网 | 国产区精品在线 | 一本—道久久a久久精品蜜桃 | 中文十次啦 | 欧美成人久久 | 黄色毛片观看 | 婷婷亚洲综合五月天小说 | 六月丁香社区 | 国产中文a| 久久精品a| 一级黄色片毛片 | 欧美性高跟鞋xxxxhd | 国产精品18毛片一区二区 | 久久国产精品免费一区 | 日韩欧美成 | 欧美精品一二 | 国产精品都在这里 | 黄色av成人在线观看 | 久久99精品国产一区二区三区 | 日韩欧美电影在线 | a√天堂资源 | 91亚洲视频在线观看 | 999电影免费在线观看 | 久久国产精品视频免费看 | 国产一区二区在线免费播放 | av大片免费看 | 亚洲精品视频免费 | 成人av电影网址 | 国产精品 中文在线 | 91中文字幕一区 | 天天干干 | 国产亚洲精品免费 | 欧美精品九九99久久 | 亚洲免费专区 | 99久久精品久久久久久清纯 | 国产一区二区在线播放视频 | 国产手机视频在线观看 | a在线观看免费视频 | 亚洲精品系列 | 久久av影视| 国产免费视频一区二区裸体 | 久草精品视频在线看网站免费 | 国产一级淫片免费看 | 欧美视频在线观看免费网址 | 欧美色精品天天在线观看视频 | 精品国产一二三 | 国产亚洲aⅴaaaaaa毛片 | 午夜在线资源 | 亚洲精品理论 | 99热最新在线 | 久久狠狠干 | 天天躁天天操 | 三级在线国产 | av片一区二区 | 日韩精品一区二区三区外面 | 精品美女在线视频 | 久草视频免费播放 | 亚洲日b视频 | 久久精品国产亚洲a | 在线高清一区 | www.久久爱.cn | 伊人婷婷色 | 国产精品欧美日韩在线观看 | 久久人人爽人人爽人人 | 中文字幕在线网址 | 精品不卡视频 | 色婷婷综合在线 | 久久国产亚洲视频 | 91免费黄视频 | 国产视频精品免费播放 | 国产 视频 高清 免费 | 成人在线免费视频观看 | 最近字幕在线观看第一季 | 99r精品视频在线观看 | 国产手机视频在线观看 | 亚洲国产影院av久久久久 | 天天操天天爽天天干 | 国产成人一二片 | 欧美一级免费高清 | 亚洲精品免费在线观看 | 亚洲精品无 | 在线不卡视频 | 在线观看91 | 中文字幕视频免费观看 | 天堂麻豆 | 日韩综合在线观看 | 中文在线字幕免 | 午夜视频在线观看网站 | 久久久精品国产免费观看一区二区 | 最新久久免费视频 | 精品视频免费观看 | 久草资源在线 | 久久国产剧场电影 | 婷婷色中文字幕 | 国产不卡在线视频 | 久久在线免费视频 | 9ⅰ精品久久久久久久久中文字幕 | 88av视频 | 久要激情网 | 久久影视精品 | av片无限看 | 日本久久免费电影 | 色视频网站免费观看 | 亚洲人av免费网站 | 一级成人网 | 99视频精品全部免费 在线 | 一区二区三区 亚洲 | 久久情网 | 日韩在线视频国产 | 九九热视频在线免费观看 | 五月天视频网 | 在线国产福利 | 亚洲天堂网视频 | 久久看毛片 | 国产一区二区在线观看免费 | 最新av网址在线 | 久草精品视频 | 在线观看黄网站 | 日韩电影中文字幕在线观看 | 干 操 插 | 黄色一级在线免费观看 | 成人a级免费视频 | 亚洲精品视频免费观看 | 久久久午夜视频 | 欧美极品在线播放 | 999久久国产| 中文字幕一区av | 成人在线视频网 | 国产破处在线视频 | 亚洲成人av电影在线 | 丁香花在线观看免费完整版视频 | 久久午夜羞羞影院 | 在线看av网址 | 伊人超碰在线 | 天堂av在线网 | 中文字幕第 | 欧美午夜视频在线 | 中文字幕在线乱 | 狠狠88综合久久久久综合网 | 一区二区三区国 | 91伊人久久大香线蕉蜜芽人口 | 精品视频久久 | 国产精品第54页 | 在线免费观看一区二区三区 | 国产精品破处视频 | 亚洲一区二区观看 | 日韩欧美视频免费看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲最大成人免费网站 | 黄色av影院 | 911香蕉| 日韩在线观看影院 | 在线观看免费av片 | 97视频免费观看2区 亚洲视屏 | 久久精品欧美一区 | 日韩精品一区二区免费 | 日韩欧美在线影院 | 日韩免费在线一区 | 国产在线欧美日韩 | 国产精品一区久久久久 | 日韩精品免费在线 | 狠狠躁天天躁综合网 | 亚洲成人黄色在线 | 国产成在线观看免费视频 | 日韩电影在线观看一区 | 亚洲理论片在线观看 | 久久国精品 | 天天操天天添天天吹 | 西西www444 | 97在线观看| 成人久久精品视频 | 国产精品一区二区av影院萌芽 | 久久福利电影 | 国产精品不卡av | 六月婷婷网 | 日韩理论片在线观看 | 97超碰中文字幕 | 激情综合交 | 国产无遮挡又黄又爽馒头漫画 | 又湿又紧又大又爽a视频国产 | 六月丁香在线观看 | 欧美乱熟臀69xxxxxx | 最新极品jizzhd欧美 | 69亚洲乱| 国产999| 日韩精品一区二区三区电影 | 国产一级视频免费看 | 精品在线免费视频 | 久久久久久毛片精品免费不卡 | 久久久久久97三级 | 最新国产在线观看 | 欧美日韩视频在线播放 | 日本中文字幕网 | 玖玖玖影院 | 国产精品成人在线观看 | 91久久丝袜国产露脸动漫 | 精品国产一区二区三区久久 | 91麻豆精品国产91久久久更新时间 | www最近高清中文国语在线观看 | 欧美少妇xxx| 免费在线黄| 欧美日韩视频精品 | 99视频国产在线 | 91看片淫黄大片在线播放 | 91黄色免费网站 | 久久婷婷精品视频 | 午夜成人免费电影 | 欧美日韩免费在线观看视频 | 亚洲春色综合另类校园电影 | 美女国产网站 | 99久久精品国产观看 | 九九综合九九综合 | 欧美激情综合五月色丁香 | 精品在线观看免费 | 精品视频中文字幕 | 亚洲人成人在线 | 日韩手机在线 | 在线观看中文字幕 | 日本在线观看一区 | 久久激情小说 | 免费福利片2019潦草影视午夜 | 色免费在线 | 夜色资源站国产www在线视频 | 精品国产一区二区三区四 | 成人在线视频论坛 | 亚洲精品在线免费播放 | 91麻豆精品国产午夜天堂 | 91午夜精品 | www.久久婷婷| 最近日韩免费视频 | 国产资源网 | 色吊丝在线永久观看最新版本 | 色在线视频网 | 日韩视| 日韩综合视频在线观看 | 99c视频高清免费观看 | 久草电影在线观看 | 一区二区网| 精品久久一级片 | 一级片免费视频 | 久草视频网 | 国产午夜三级一二三区 | 国产精品一区二区久久精品 | 特级免费毛片 | 啪一啪在线 | 免费国产在线视频 | 日韩精品一区二区免费视频 | 国内成人精品2018免费看 | 欧美日韩精品免费观看 | 色婷婷www | 国产无遮挡又黄又爽在线观看 | 欧美午夜一区二区福利视频 | 国产拍揄自揄精品视频麻豆 | 欧美色图亚洲图片 | 国产一区二区播放 | 国产高清在线视频 | 欧美成a人片在线观看久 | av先锋中文字幕 | 免费看十八岁美女 | 在线国产能看的 | 五月天综合激情 | 国产精品免费在线观看视频 | 国产伦精品一区二区三区高清 | 91视频久久久 | 一区二区三区在线观看免费 | 天天操综合网 | 中文字幕久久精品 | 日韩精品一区二区免费视频 | 日本一区二区三区视频在线播放 | 久久精品三 | 亚洲精品自在在线观看 | 欧美日韩中文字幕综合视频 | 久久电影国产免费久久电影 | 在线播放 一区 | 亚洲精品高清在线观看 | 国产91影院 | 亚洲天堂在线观看完整版 | 4438全国亚洲精品在线观看视频 | 日本三级在线观看中文字 | 综合久久网 | 天天干天天碰 | 久久综合免费视频 | 欧美日一级片 | 日韩毛片在线免费观看 | 日韩免费福利 | 日韩精品亚洲专区在线观看 | 97在线观看免费视频 | 成人在线播放免费观看 | av大片免费 | 在线免费观看欧美日韩 | 男女男视频| 精品视频国产 | 91在线精品播放 | 日韩欧美在线免费观看 | 婷婷丁香六月天 | 亚洲国产一二三 | 亚洲一区二区高潮无套美女 | 午夜国产成人 | 日韩av电影中文字幕 | 日本乱视频 | 少妇bbb搡bbbb搡bbbb′ | 精品国产伦一区二区三区 | 深夜免费小视频 | 在线 视频 亚洲 | 国产高清免费 | 婷婷在线五月 | 毛片美女网站 | 2022久久国产露脸精品国产 | 九九九九免费视频 | 国产乱码精品一区二区蜜臀 | 91亚洲夫妻 | 在线观看国产福利片 | 超碰在线人人草 | 欧美少妇xx | 97超级碰碰碰碰久久久久 | 国产一区二区在线免费观看 | 国产精品一区一区三区 | 最近2019中文免费高清视频观看www99 | 97视频人人免费看 | 精品日韩中文字幕 | 丰满少妇对白在线偷拍 | 丁香综合网 | 亚洲在线 | 夜夜躁天天躁很躁波 | 97天天综合网 | 天天综合网天天综合色 | wwwwwww色| 韩日精品在线 | 在线91观看| 91精品少妇偷拍99 | 免费日韩精品 | 丁香午夜婷婷 | 在线观看黄色av | 91成年人在线观看 | 天天干,天天射,天天操,天天摸 | 国产成人久久77777精品 | 精品国产乱码久久久久 | 色综合天天天天做夜夜夜夜做 | 在线观看免费视频你懂的 | 日韩色综合网 | 色综合天天综合在线视频 | 黄色字幕网 | 9999精品免费视频 | 国产99久久99热这里精品5 | 91精品一区二区三区久久久久久 | 欧洲激情在线 | 午夜婷婷在线观看 | h网站免费在线观看 | 一区二区三区四区免费视频 | 久久国产视频网站 | 国产做a爱一级久久 | 国产在线观看网站 | 欧美大片mv免费 | 国产精品日韩高清 | 美女国内精品自产拍在线播放 | 国内精品久久久久久中文字幕 | 91av国产视频 | 色婷在线 | 国内精品视频久久 | 激情视频在线高清看 | 午夜电影中文字幕 | 久久精品视频网站 | 中文字幕一区二区三 | 国产视频九色蝌蚪 | 国产视频精品在线 | 麻豆精品在线视频 | 国产精品永久免费 | 91福利视频久久久久 | 日韩精品视| 欧美日韩视频网站 | 欧美日韩裸体免费视频 | 久久久精品小视频 | 99色人 | 99免费国产 | 亚洲精品在线观看av | 成人资源在线 | 91女神的呻吟细腰翘臀美女 | 日日夜夜91 | 97视频在线看 | 亚洲精品在线视频播放 | 精品99在线视频 | 免费看黄色毛片 | 国产精品麻豆视频 | 日韩国产欧美在线播放 | 亚洲精品1区2区3区 超碰成人网 | 亚洲国产中文字幕 | 免费在线观看成年人视频 | 欧美成人手机版 | 日韩欧美网站 | 中文字幕在线观看免费高清电影 | 久久免费观看少妇a级毛片 久久久久成人免费 | 樱空桃av | 色视频网页| 欧美一级淫片videoshd | 91在线观看视频网站 | 97精品国产97久久久久久粉红 | 久久97超碰| 天天曰天天曰 | 色在线观看网站 | 97在线观看 | 亚洲mv大片欧洲mv大片免费 | 不卡国产在线 | av片子在线观看 | 亚洲在线不卡 | 国产亚洲精品久 | 欧美性网站 | 国产无套精品久久久久久 | 中文字幕日韩一区二区三区不卡 | 精品视频国产 | 亚洲男模gay裸体gay | 国产视频999| 免费黄色一区 | 亚洲视频每日更新 | 日韩欧美99 | 久久综合精品一区 | 97电影网站 | 91在线视频观看免费 | 首页国产精品 | 国产精品麻豆99久久久久久 | 欧美日韩不卡一区二区三区 | 开心激情综合网 | 中文字幕在线观看免费高清完整版 | 91看片看淫黄大片 | 毛片网站在线看 | 国产高清视频在线播放一区 | 在线观看的av网站 | 成年人黄色在线观看 | av电影免费观看 | 麻豆视频在线 | 国产99久久久久 | 日韩二区三区 | 欧美一级久久久 | 欧美污网站 | 999抗病毒口服液 | 黄网站色成年免费观看 | 欧洲精品视频一区 | 久久成年人| www.色就是色 | 国产v在线播放 | 超碰.com| 国产国产人免费人成免费视频 | 亚洲黄色一级大片 | 中文字幕在线播放日韩 | 国产区高清在线 | 久久伊人精品天天 | 日韩欧美极品 | 狠狠狠色丁香婷婷综合久久88 | 成人黄色小说网 | 国产生活一级片 | 国产午夜亚洲精品 | 国产亚洲在线视频 | 欧美激情视频一区二区三区 | 成年人视频在线观看免费 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 在线视频 影院 | 久久免费成人精品视频 | 成人精品一区二区三区中文字幕 | av成人动漫在线观看 | 国产亚洲视频中文字幕视频 | 婷婷色 亚洲 | 亚洲视频在线观看免费 | 久久超碰在线 | a黄在线观看| 成人动漫视频在线 | 日韩视频在线观看视频 | 中文乱幕日产无线码1区 | 国产午夜精品一区二区三区嫩草 | 狠狠操狠狠 | 草久草久 | 日日夜夜精品免费视频 | 成人免费网站在线观看 | 日本少妇高清做爰视频 | 国产麻豆精品一区 | 少妇资源站| 91看片淫黄大片一级在线观看 | 黄色av电影一级片 | 国产精品青青 | 久久精品中文字幕少妇 | 在线免费色 | 天天干天天爽 | 五月丁色 | 欧美精品乱码久久久久久按摩 | av一区二区在线观看中文字幕 | 成人网在线免费视频 | 国产精品网红福利 | 日韩在线视频精品 | 中文在线资源 |