99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

MyBatis-Plus多數(shù)據(jù)源配置實(shí)戰(zhàn):原理、踩坑與最佳實(shí)踐

MyBatis-Plus多數(shù)據(jù)源配置實(shí)戰(zhàn):原理、踩坑與最佳實(shí)踐 做多數(shù)據(jù)源這件事我前前后后折騰過(guò)好幾個(gè)方案從最開始手動(dòng)寫AbstractRoutingDataSource到后來(lái)切到mybatis-plus的dynamic-datasource最大的感受就是如果項(xiàng)目里已經(jīng)用了mybatis-plus多數(shù)據(jù)源配置真的沒(méi)必要自己造輪子。這個(gè)starter把最臟最累的活都干完了而且坑也填得差不多了。這篇文章就把我的完整配置過(guò)程、踩過(guò)的坑、以及一些網(wǎng)上很少說(shuō)清楚的細(xì)節(jié)一次性講透保證你照著做就能跑起來(lái)。為什么項(xiàng)目會(huì)需要多數(shù)據(jù)源先別急著上手配置你得先想清楚一個(gè)問(wèn)題你到底是不是真的需要多數(shù)據(jù)源我見(jiàn)過(guò)不少項(xiàng)目其實(shí)只有一個(gè)庫(kù)但開發(fā)同學(xué)提前把多數(shù)據(jù)源的架子搭好了。這種“未雨綢繆”我一般不建議因?yàn)槎鄶?shù)據(jù)源會(huì)引入額外的復(fù)雜度尤其是事務(wù)邊界變模糊、連接管理變復(fù)雜一旦出了問(wèn)題排查成本很高。真正需要多數(shù)據(jù)源的場(chǎng)景大致就這么幾類讀寫分離主庫(kù)負(fù)責(zé)寫從庫(kù)負(fù)責(zé)讀這是最常見(jiàn)的訴求。分庫(kù)分表的過(guò)渡階段還沒(méi)上ShardingSphere這種中間件先用多數(shù)據(jù)源頂著。業(yè)務(wù)數(shù)據(jù)隔離比如訂單庫(kù)、用戶庫(kù)、日志庫(kù)物理上分離各有各的連接池。第三方系統(tǒng)對(duì)接需要直連別人家的數(shù)據(jù)庫(kù)人家只給你只讀賬號(hào)。報(bào)表統(tǒng)計(jì)場(chǎng)景大查詢走獨(dú)立的庫(kù)免得把業(yè)務(wù)庫(kù)拖垮。我之前遇到的一個(gè)典型場(chǎng)景就是讀寫分離線上訂單系統(tǒng)主庫(kù)的壓力還好但后臺(tái)的報(bào)表查詢?nèi)悄欠N多表關(guān)聯(lián)的大SQL一跑就是好幾秒直接把主庫(kù)的CPU干到80%。后來(lái)就是把報(bào)表查詢?nèi)壳械街蛔x從庫(kù)主庫(kù)瞬間就穩(wěn)了。這種場(chǎng)景用mybatis-plus的多數(shù)據(jù)源就是一兩行注解的事收益非常直接。再說(shuō)說(shuō)為什么選mybatis-plus而不是自己寫或者用Spring自帶的方案。其實(shí)Spring的AbstractRoutingDataSource本身就能實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源我早年也這么干過(guò)得自己寫AOP切面、自己維護(hù)數(shù)據(jù)源上下文、自己處理事務(wù)的綁定問(wèn)題。說(shuō)白了技術(shù)上能做但代碼量不小而且邊界情況特別多。mybatis-plus的dynamic-datasource-spring-boot-starter把這些封裝好了還額外支持了嵌套切換、懶加載數(shù)據(jù)源、連接池監(jiān)控這些實(shí)用功能。既然項(xiàng)目里已經(jīng)用了mybatis-plus那直接用這個(gè)starter是最平滑的路子。動(dòng)態(tài)數(shù)據(jù)源的核心原理用mybatis-plus配置多數(shù)據(jù)源很多人上來(lái)就抄配置跑通了就完事。但你要是不理解它背后的原理遇到問(wèn)題的時(shí)候會(huì)非常痛苦。這個(gè)starter的原理一句話就能說(shuō)清它本質(zhì)上還是基于Spring的AbstractRoutingDataSource在每次數(shù)據(jù)庫(kù)操作前通過(guò)AOP攔截DS注解把當(dāng)前要用的數(shù)據(jù)源標(biāo)識(shí)存到ThreadLocal里然后在真正獲取連接的時(shí)候動(dòng)態(tài)路由到對(duì)應(yīng)的數(shù)據(jù)源上。我展開說(shuō)一下這條鏈路你理解了以后排錯(cuò)會(huì)容易很多。先說(shuō)底層的數(shù)據(jù)源路由。Spring提供了一個(gè)抽象類叫AbstractRoutingDataSource它維護(hù)了一個(gè)Mapkey是數(shù)據(jù)源標(biāo)識(shí)value是實(shí)際的數(shù)據(jù)源對(duì)象。它有一個(gè)determineCurrentLookupKey()方法你重寫這個(gè)方法返回一個(gè)keySpring在每次獲取數(shù)據(jù)庫(kù)連接的時(shí)候都會(huì)調(diào)它根據(jù)key取對(duì)應(yīng)的數(shù)據(jù)源。mybatis-plus的dynamic-datasource對(duì)這個(gè)類做了增強(qiáng)如果當(dāng)前線程沒(méi)設(shè)置數(shù)據(jù)源標(biāo)識(shí)就用默認(rèn)主庫(kù)如果設(shè)置了就用對(duì)應(yīng)的庫(kù)。這就是整個(gè)多數(shù)據(jù)源能跑起來(lái)的地基。再說(shuō)AOP攔截。dynamic-datasource定義了一個(gè)切面攔截所有加了DS注解的方法。在方法執(zhí)行前它會(huì)把DS里指定的數(shù)據(jù)源名稱存到DynamicDataSourceContextHolder的ThreadLocal里方法執(zhí)行完再把這個(gè)值清理掉。所以**DS注解的作用范圍就是當(dāng)前線程內(nèi)的方法執(zhí)行期**方法結(jié)束ThreadLocal就清了不會(huì)串到下一個(gè)請(qǐng)求。這里有個(gè)非常關(guān)鍵的細(xì)節(jié)DS注解是加在方法上的不是加在類上全局生效的。雖然注解本身支持加在Service類上但那也只是給這個(gè)類的所有方法都套了同一個(gè)數(shù)據(jù)源本質(zhì)上還是方法級(jí)別的攔截。很多人誤以為加在類上就是“這個(gè)類永遠(yuǎn)走某個(gè)庫(kù)”其實(shí)不是事務(wù)和嵌套調(diào)用都會(huì)改變實(shí)際路由結(jié)果。理解了原理你再看配置里的每一行就都看得懂了。比如yml里的primary: master就是決定當(dāng)ThreadLocal里沒(méi)值的時(shí)候默認(rèn)走哪個(gè)庫(kù)strict: true是當(dāng)DS指定了一個(gè)不存在的庫(kù)名時(shí)直接報(bào)錯(cuò)防止你寫錯(cuò)名字后靜默走了主庫(kù)這個(gè)務(wù)必要開。mybatis-plus的多數(shù)據(jù)源starter還做了一些深層的適配比如數(shù)據(jù)源懶加載也就是在Spring容器啟動(dòng)的時(shí)候并不立即創(chuàng)建所有數(shù)據(jù)源連接池而是等第一次用到某個(gè)庫(kù)的時(shí)候才初始化。你如果配了很多個(gè)庫(kù)這個(gè)特性會(huì)讓啟動(dòng)速度快不少。另外它還內(nèi)置了Druid、HikariCP的監(jiān)控支持不過(guò)這個(gè)看你實(shí)際用什么連接池Druid配合的監(jiān)控面板用起來(lái)更順手一些。開箱即用完整配置步驟接下來(lái)就是實(shí)戰(zhàn)環(huán)節(jié)。我盡量把每一步都寫清楚包括依賴版本、配置文件、代碼位置你照著做就行。先說(shuō)環(huán)境SpringBoot 2.7.18mybatis-plus-boot-starter 3.5.7JDK 8。高版本的SpringBoot 3.x我也用過(guò)配置方式基本一致就是javax換成jakarta注意一下就行。第一步引入依賴在pom.xml里加入dynamic-datasource的starter。注意這個(gè)starter是獨(dú)立的和mybatis-plus的starter是兩回事別搞混了。!-- mybatis-plus 核心starter -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.7/version /dependency !-- mybatis-plus 多數(shù)據(jù)源starter -- dependency groupIdcom.baomidou/groupId artifactIddynamic-datasource-spring-boot-starter/artifactId version3.6.1/version /dependency版本這里我多說(shuō)一句3.6.1是目前比較穩(wěn)定的版本3.5.x和3.6.x都有一些迭代但如果你項(xiàng)目里已經(jīng)有mybatis-plus了建議讓多數(shù)據(jù)源starter和mybatis-plus保持相近版本避免出現(xiàn)兼容問(wèn)題。我踩過(guò)一次坑mybatis-plus用的3.5.3多數(shù)據(jù)源starter用的3.5.0結(jié)果是DS注解在某些場(chǎng)景下不生效排查了半天升級(jí)版本后就好了。第二步配置yml數(shù)據(jù)源在application.yml里配置數(shù)據(jù)源信息。這個(gè)是核心配置spring: datasource: dynamic: primary: master strict: true strategy: com.baomidou.dynamic.datasource.DynamicDataSourceStrategy datasource: master: url: jdbc:mysql://192.168.1.10:3306/order_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver slave: url: jdbc:mysql://192.168.1.11:3306/order_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: readonly_user password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver report: url: jdbc:postgresql://192.168.1.12:5432/report_db username: report password: 123456 driver-class-name: org.postgresql.Driver幾個(gè)關(guān)鍵點(diǎn)解釋一下primary: master默認(rèn)數(shù)據(jù)源所有沒(méi)加DS注解的Mapper操作都會(huì)走這個(gè)庫(kù)。這是兜底的我建議永遠(yuǎn)保留一個(gè)master別把主庫(kù)配成別的名字。strict: true嚴(yán)格模式。如果DS里寫了一個(gè)不存在的庫(kù)名直接拋異常不會(huì)靜默走主庫(kù)。這個(gè)建議開啟否則你拼錯(cuò)一個(gè)字母數(shù)據(jù)寫到主庫(kù)里去排查的時(shí)候想哭的心都有。數(shù)據(jù)源名稱你可以隨便起比如master、slave、report但注意這些名字會(huì)在DS注解里引用要保持一致。第三步在啟動(dòng)類排除DataSourceAutoConfiguration這一步很多人會(huì)漏掉但關(guān)鍵程度不亞于前面的配置。如果你使用的是SpringBoot 2.x以上版本啟動(dòng)類要加這個(gè)排除SpringBootApplication(exclude DataSourceAutoConfiguration.class) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }為什么要排除因?yàn)镾pringBoot的自動(dòng)配置會(huì)讀到spring.datasource.url之類的配置去創(chuàng)建DataSource你現(xiàn)在的配置是放在spring.datasource.dynamic.datasource.master下面的SpringBoot默認(rèn)配置根本讀不到就會(huì)報(bào)錯(cuò)說(shuō)找不到主數(shù)據(jù)源。dynamic-datasource的starter自己會(huì)創(chuàng)建一個(gè)動(dòng)態(tài)數(shù)據(jù)源所以必須把SpringBoot默認(rèn)的數(shù)據(jù)源自動(dòng)配置排除掉。這一步網(wǎng)上很多教程沒(méi)提或者提了沒(méi)解釋為什么。實(shí)際上一開始我沒(méi)加這個(gè)排除啟動(dòng)直接報(bào)錯(cuò)Failed to configure a DataSource: url attribute is not specified加了排除以后馬上就好了。第四步寫測(cè)試代碼驗(yàn)證配置完成后寫一個(gè)簡(jiǎn)單的Service來(lái)驗(yàn)證效果。DS注解加在Service層的方法上或者直接加在Mapper的方法上。我建議加在Service層因?yàn)闃I(yè)務(wù)上你更關(guān)心的是“這個(gè)業(yè)務(wù)方法走哪個(gè)庫(kù)”而且Mapper層面太細(xì)了不好管理。Service public class UserServiceImpl implements UserService { Autowired private UserMapper userMapper; Override public User getMasterUser(Long id) { return userMapper.selectById(id); } DS(slave) Override public User getSlaveUser(Long id) { return userMapper.selectById(id); } DS(report) Override public ListReport getReportList() { return reportMapper.selectList(null); } }這里有個(gè)非常關(guān)鍵的區(qū)別getMasterUser方法沒(méi)加DS走的就是primary指定的主庫(kù)getSlaveUser加了DS(slave)走的就是從庫(kù)getReportList走的是report庫(kù)。注意DS注解可以加在類上表示這個(gè)類所有方法都走同一個(gè)庫(kù)如果類上和方法上都有DS以方法上的為準(zhǔn)方法級(jí)的優(yōu)先級(jí)更高。從庫(kù)的UserMapper和主庫(kù)的UserMapper其實(shí)是同一個(gè)Java接口同一個(gè)實(shí)體類。區(qū)別只在于你調(diào)用時(shí)走的方法加沒(méi)加注解。這一點(diǎn)就體現(xiàn)了dynamic-datasource的設(shè)計(jì)精髓一個(gè)Mapper可以自由穿梭在多個(gè)數(shù)據(jù)源之間。高版本SpringBoot的額外注意事項(xiàng)如果你用的是SpringBoot 3.x也就是JDK 17的環(huán)境配置會(huì)有一個(gè)額外的變化。除了剛才說(shuō)的排除DataSourceAutoConfiguration還得注意數(shù)據(jù)庫(kù)驅(qū)動(dòng)的坐標(biāo)變化dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId scoperuntime/scope /dependencyMyBatis、Druid這些組件在Boot 3.x下都需要對(duì)應(yīng)新版本。dynamic-datasource 3.6.1本身就兼容SpringBoot 3.x這個(gè)倒不用擔(dān)心。還有一點(diǎn)SpringBoot 3.x里用的是Jakarta命名空間如果項(xiàng)目里引了老的javax依賴會(huì)直接起不來(lái)。高版本還有個(gè)常見(jiàn)的坑是數(shù)據(jù)源初始化順序的問(wèn)題。SpringBoot 3.x對(duì)自動(dòng)配置的順序要求更嚴(yán)格如果你發(fā)現(xiàn)啟動(dòng)報(bào)錯(cuò)說(shuō)什么DataSource被循環(huán)依賴了試試在啟動(dòng)類上把SpringBoot的DataSourceTransactionManagerAutoConfiguration也排除掉SpringBootApplication(exclude { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class })不過(guò)要注意排除掉DataSourceTransactionManagerAutoConfiguration之后事務(wù)管理器的自動(dòng)配置就沒(méi)了需要你自己注冊(cè)或者直接用dynamic-datasource提供的事務(wù)管理器。這個(gè)坑一般出現(xiàn)在你同時(shí)用了Spring的Transactional和DS的場(chǎng)景后面我會(huì)詳細(xì)說(shuō)。事務(wù)和數(shù)據(jù)源切換的那點(diǎn)事兒這是多數(shù)據(jù)源配置里最讓人頭疼的部分我放在這里單獨(dú)講。當(dāng)你用Transactional的時(shí)候事務(wù)是在方法進(jìn)入前就開啟了連接也是在事務(wù)開始時(shí)從默認(rèn)數(shù)據(jù)源拿的。如果這個(gè)事務(wù)方法內(nèi)部又調(diào)用了帶DS的方法那DS可能根本不會(huì)切換數(shù)據(jù)源或者切換了也不生效??聪旅娴睦覶ransactional public void transfer() { orderMapper.insert(order); // 走主庫(kù) getSlaveUser(1L); // 想切到從庫(kù)但可能不生效 }問(wèn)題出在Transactional開啟事務(wù)時(shí)已經(jīng)把連接和事務(wù)綁定到當(dāng)前線程了DS的AOP切面在事務(wù)方法內(nèi)部執(zhí)行時(shí)試圖去切換數(shù)據(jù)源但事務(wù)管理器還是拿著舊連接不放。所以事務(wù)內(nèi)的數(shù)據(jù)源切換會(huì)失效或者報(bào)錯(cuò)。我實(shí)測(cè)過(guò)的結(jié)果是如果你的transfer()方法上加了Transactional內(nèi)部再調(diào)getSlaveUser()實(shí)際查詢還是會(huì)走主庫(kù)。這不是bug而是Spring事務(wù)機(jī)制的固有行為。解決辦法有幾個(gè)思路把不需要走主庫(kù)的操作拆出去放到一個(gè)獨(dú)立的事務(wù)方法里這個(gè)方法單獨(dú)加DS和Transactional。使用dynamic-datasource的DSTransactional來(lái)代替Spring的Transactional它支持多數(shù)據(jù)源下的事務(wù)管理但它是本地事務(wù)不支持跨庫(kù)的分布式事務(wù)。如果確實(shí)需要跨庫(kù)強(qiáng)一致那你需要引入Seata這類分布式事務(wù)中間件這是另一個(gè)范疇了本文不展開。特別注意多數(shù)據(jù)源配置開啟了以后Spring自帶的Transactional默認(rèn)綁定的是主數(shù)據(jù)源的事務(wù)管理器。如果你在從庫(kù)上做寫操作并加了Transactional事務(wù)并不會(huì)真正在從庫(kù)上生效這個(gè)細(xì)節(jié)很多人踩坑后才回過(guò)神來(lái)。這一點(diǎn)非常容易忽略務(wù)必注意。我個(gè)人的習(xí)慣是從庫(kù)只做查詢不開放寫權(quán)限數(shù)據(jù)庫(kù)賬號(hào)也不給寫權(quán)限。這樣從根本上避免從庫(kù)上出現(xiàn)寫事務(wù)。實(shí)操中遇到的坑和排查心得配置跑通之后還有一堆實(shí)際問(wèn)題。我把這些坑按頻率從高到低列出來(lái)你遇到的時(shí)候可以直接對(duì)號(hào)入座???DS注解不生效表現(xiàn)是有DS注解的方法實(shí)際還是走的默認(rèn)庫(kù)。排查思路先確認(rèn)starter版本是否兼容然后確認(rèn)方法是否被Spring代理。如果你是在一個(gè)類內(nèi)部的this.xxx()調(diào)用那DS注解是不會(huì)被AOP攔截的。因?yàn)镾pring的AOP基于代理this調(diào)用不走代理對(duì)象。Service public class OrderService { // 這樣調(diào)用DS會(huì)失效 public void doSomething() { this.queryFromSlave(); } DS(slave) public void queryFromSlave() { // ... } }解決辦法是通過(guò)注入自己的代理對(duì)象或者把方法拆到另一個(gè)Service里調(diào)用。這個(gè)是最常見(jiàn)的DS不生效原因沒(méi)有之一。坑2連接池耗盡或者連接泄漏多數(shù)據(jù)源意味著多個(gè)連接池每個(gè)都是獨(dú)立的默認(rèn)的連接池大小可能不夠。如果你同時(shí)有主庫(kù)、從庫(kù)、報(bào)表庫(kù)高峰期很容易出現(xiàn)某個(gè)庫(kù)的連接池被打滿的提示。而且如果你手寫代碼時(shí)手動(dòng)拿了連接沒(méi)有釋放那個(gè)連接池就泄漏一個(gè)時(shí)間長(zhǎng)了就滿了。建議給每個(gè)連接池設(shè)置合理的上限spring: datasource: dynamic: datasource: master: hikari: maximum-pool-size: 30 minimum-idle: 5 connection-timeout: 30000 idle-timeout: 600000 slave: hikari: maximum-pool-size: 20 minimum-idle: 5另外注意從庫(kù)的連接池峰值往往更高因?yàn)樽x請(qǐng)求多把從庫(kù)的maximum-pool-size調(diào)大一點(diǎn)是合理的。我之前就是主庫(kù)30、從庫(kù)50這么配的???MyBatis二級(jí)緩存串庫(kù)如果你開了MyBatis的二級(jí)緩存緩存的是查詢結(jié)果但二級(jí)緩存的key是Mapper的namespace不區(qū)分?jǐn)?shù)據(jù)源。這意味著你用主庫(kù)查了一次緩存的鍵沒(méi)有數(shù)據(jù)源維度同類查詢切到從庫(kù)時(shí)命中的可能是主庫(kù)的緩存結(jié)果。這個(gè)問(wèn)題在小項(xiàng)目里可能不出事但一旦兩個(gè)庫(kù)的數(shù)據(jù)不一致就會(huì)出詭異的問(wèn)題。建議多數(shù)據(jù)源場(chǎng)景下直接關(guān)閉二級(jí)緩存老老實(shí)實(shí)用一級(jí)緩存和Redis???主從延遲導(dǎo)致的數(shù)據(jù)不一致讀寫分離的場(chǎng)景下從庫(kù)的數(shù)據(jù)有延遲。你剛寫完主庫(kù)馬上去查從庫(kù)可能查不到剛寫的數(shù)據(jù)。這時(shí)候需要區(qū)分業(yè)務(wù)場(chǎng)景對(duì)實(shí)時(shí)性要求高的查詢強(qiáng)制走主庫(kù)能容忍延遲的就放心走從庫(kù)。比如訂單詳情頁(yè)的查詢建議直接走主庫(kù)或者做一個(gè)短時(shí)間的緩存別讓主從延遲影響用戶體驗(yàn)。這個(gè)問(wèn)題跟多數(shù)據(jù)源本身無(wú)關(guān)但既然做了讀寫分離就一定會(huì)遇到提前了解解法是很有必要的???連接在事務(wù)方法內(nèi)部切換導(dǎo)致連接管理器報(bào)錯(cuò)這個(gè)場(chǎng)景其實(shí)比較偏但我確實(shí)遇到過(guò)。動(dòng)態(tài)數(shù)據(jù)源里如果在一個(gè)事務(wù)執(zhí)行途中切換數(shù)據(jù)源DynamicRoutingDataSource會(huì)嘗試在當(dāng)前線程重新綁定連接而舊連接和事務(wù)的關(guān)系會(huì)變得很微妙進(jìn)而出現(xiàn)一些奇怪的SQL執(zhí)行錯(cuò)誤日志里會(huì)蹦出來(lái)類似Connection is not available這種。所以再次強(qiáng)調(diào)不要在一個(gè)事務(wù)方法里來(lái)回切換數(shù)據(jù)源要么拆分方法要么全走多數(shù)據(jù)源事務(wù)注解。多數(shù)據(jù)源常見(jiàn)問(wèn)題排查速查表我整理了一下實(shí)戰(zhàn)中比較高頻的場(chǎng)景做成一個(gè)速查表方便你遇到問(wèn)題時(shí)快速定位方向。問(wèn)題現(xiàn)象可能原因解決思路啟動(dòng)報(bào)錯(cuò)url attribute is not specified沒(méi)排除DataSourceAutoConfiguration啟動(dòng)類排除該自動(dòng)配置DS注解完全不生效類內(nèi)部this調(diào)用沒(méi)走代理拆到獨(dú)立Bean或注入代理對(duì)象事務(wù)內(nèi)部切換數(shù)據(jù)源失敗Transactional在DS之前開啟連接已綁定拆分事務(wù)方法或使用DSTransactional從庫(kù)數(shù)據(jù)查不到剛寫入的數(shù)據(jù)主從同步延遲實(shí)時(shí)性要求高的查詢走主庫(kù)連接池大量超時(shí)連接泄漏或連接池太小排查泄漏點(diǎn)調(diào)整Hikari參數(shù)查詢結(jié)果串庫(kù)MyBatis二級(jí)緩存不區(qū)分?jǐn)?shù)據(jù)源關(guān)閉二級(jí)緩存strict模式下報(bào)數(shù)據(jù)源不存在DS注解寫錯(cuò)庫(kù)名核對(duì)yml里的數(shù)據(jù)源名稱這個(gè)速查表不敢說(shuō)覆蓋所有情況但大部分新手遇到的就這些了。真正高級(jí)的問(wèn)題得靠日志和監(jiān)控一步步定位比如Druid的監(jiān)控頁(yè)面可以看到每個(gè)數(shù)據(jù)源當(dāng)前的活躍連接數(shù)遇到連接問(wèn)題看那個(gè)是最直觀的。多數(shù)據(jù)源場(chǎng)景下的最佳實(shí)踐建議最后聊幾點(diǎn)實(shí)戰(zhàn)心得。這些不是配置層面的東西而是架構(gòu)層面的取舍但我覺(jué)得比配置本身更重要。能用主從復(fù)制解決的別用多數(shù)據(jù)源。如果你只是想減輕主庫(kù)壓力優(yōu)先考慮從庫(kù)復(fù)制然后在業(yè)務(wù)代碼里通過(guò)切面或Mapper注解走從庫(kù)。如果業(yè)務(wù)模塊之間的依賴并不緊密干脆拆庫(kù)拆服務(wù)走微服務(wù)每個(gè)服務(wù)管自己的庫(kù)這才是徹底的解耦。配置層面建議每個(gè)數(shù)據(jù)源的最小空閑連接數(shù)不要太小即使流量不大也至少維持3到5個(gè)空閑連接避免突然的流量尖峰把連接池打滿。連接池初始化是耗時(shí)的如果空閑連接全被回收了高峰時(shí)突然新建連接會(huì)產(chǎn)生明顯的毛刺延遲。還有一個(gè)很多人忽略的管理問(wèn)題多數(shù)據(jù)源的密碼保管和變更。三個(gè)庫(kù)的密碼分別寫在yml里每過(guò)幾個(gè)月密碼就會(huì)過(guò)期改起來(lái)雖然不難但容易漏。我之前就漏改了一個(gè)報(bào)表庫(kù)的密碼導(dǎo)致報(bào)表服務(wù)在凌晨定時(shí)任務(wù)跑了兩個(gè)小時(shí)全失敗了。建議引入配置中心來(lái)統(tǒng)一管理或者至少把數(shù)據(jù)源配置抽到獨(dú)立的profile文件里別所有環(huán)境混成一個(gè)yml。最后說(shuō)一個(gè)我比較堅(jiān)持的原則生產(chǎn)環(huán)境開啟strict模式任何SQL都不允許因?yàn)閷戝e(cuò)名字而靜默落到默認(rèn)庫(kù)上。寧可讓錯(cuò)誤快速暴露寧可讓自己半夜被電話叫醒也不要在用戶頁(yè)面出現(xiàn)數(shù)據(jù)錯(cuò)亂后去追查好幾天的庫(kù)。這是我吃了虧之后才長(zhǎng)記性的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文字幕不卡视频| 99综合成人视频在线观看| 激情综合亚洲| 国产成人精品亚洲线观看| 国产精品色一哟哟| 激情网战码亚洲A| 亚洲V国产V欧美V久久久久久| 丁香五月a| 综合99综合久久久久久久| 99热精品在线| 国产97色在线 | 日韩| 久热这里只有精品在线观看 | 人人搡人人| 五月天色影院| 女人天堂久久| 天天色综合网吨吧| 伊人综合网4| 日日噜噜久久婷婷五月天| 99日本黄站| 免费试看小视频 99| 激情四射婷婷| 久人操| 免费看欧美成人A片无码| 色小说五月天| 常久最新免费的色吊丝| 婷婷五月天激情综合深爱| 狠狠情色| 五月婷婷先锋| 亚洲色就是色色色| 婷婷丁香社区| 91精品91久久久中77777| 97操碰在线视频| 五月天自拍视频| 超碰在线国产| 九九色精品| 黄色片avv| 婷婷五月天av| 丁香五月天堂网| 五月丁香六月婷婷激情网| a v色婷婷| 玖玖综合网| 色碰97| 99在线精品免费视频| 欧美日韩999| 五月婷人妻| 综合婷婷久久| 婷婷成人综合| 欧美日韩大黄| 丁香五月 六月婷婷首页| 亚洲免费观看高清完整版AV线| 久婷婷视平| 激情综合五月婷婷| 日韩AV中文在线观看| 丁香婷婷色五月| 五月丁香激情在线| 五月天婷婷无码| 激情五月婷在线精品| 激情欧美婷五月| 亚洲激情网站无码| 欧美色一级色| 这里只有精品96| www.狠狠| AV在线免费观看不卡| 三男玩一女三A片| 亚洲操B| 狠狠综合久久| 亚洲超碰在线| 五月天婷婷婷| 吊色AV男人的天堂| 成人日韩欧美| 六月丁香婷婷天堂| 思思re99视频在线观看| 色噜噜狠狠色综合成人网| 综合性爱网| 色丁香五月婷婷| 亚洲成人va| 久久五月天免费网站| 婷婷在线日韩综合| 黄色一级影片| 五月天另类小说久久小说网| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 亚洲日日日| se色99| 月婷婷亚洲| 五月天婷婷色播在线网| 五月婷婷色五月| www热久久yy9| 日韩在线看AV| 7超碰自拍| 秋霞免费三级片| 人人爱天天摸摸天天爱| 亚洲色五月婷婷| 国产欧美va| 人妻久久久久久久久久久| 综合五月天婷婷色| 色婷婷色五月天| 婷婷色在线播放| 91色色色| 五他月天啪啪啪| 丁香五月91| 99在线观看视频精品| 五月丁花色综合网| 婷婷激情社区| 色综合久久综合| Av九九| 就爱操www com| 婷婷五月天六月| 亚洲色图五月丁香| 大伊香蕉精品视频在线| 夜色综合网| 99自拍视频在线| 丁香久色| 99成人| 狠狠操天天干| www.五月天婷婷| 激情婷婷五六月天| 日韩成人网址| 91精产一区三区免费观看| 六月婷婷天天操夜夜爽视频| 久久ab| 开心五月激情网| 日噜噜色| 天天草天天日| 五月激情小说| 97在线视频观看| 丁香六月伊人| 91免费啪视频| 婷婷伊人激情婷婷| 婷婷五月天小说网| 色欧美一级| 五月婷婷丁香综合| 91九色熟女| 亚洲五月六月婷婷| 婷婷丁香五月激情中文字幕版| 久久激情天堂| 欧美 日韩 成人| 欧美丁香五月天| 直接看的av| 大香av| 思思 热 99| 99这里有精品视频| 婷婷五月天va| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 色欲一二三| 九九色热| 五月婷婷久久激情| 欧美性猛交XXXX乱大交极品| 日操五月婷| 成片免费观看视频大全| 精品国产va久久久久| 日本狠狠色| 日逼影音先锋男人资源站| 色五月丁香五月激情五月激情| 色五月婷婷九月| 色逼综合网| 无码毛片992367| 婷婷狠狠干| 啪啪九九色| 五月丁香六月婷婷免费视频| 万月丁香狠狠爱| 五月丁香六月婷婷a v| 色99在线| 日本九九热| 久久A极片| 操笔无码| 99综合入口| 五月丁六月婷| 99久久视频| 五月丁香六月色| 三年高清大片免费观看国语| 国产VA亚洲VA96| 天啪天啪天啪天啪| 婷婷国产成人| 超碰99热| 超碰日韩人妻在线| 第四色五月天| 99re这里只有精品99| 亚洲激情综合网| 大香蕉婷婷丁香视频在线| 丁香五月婷婷激情网| 五月天啪啪| 天天色视频| 日韩一区二区在线播放| www.99.色| 99热精品6| 日韩美一级毛卡片| 九九久久99| 综合在线网| 成人.在线日韩| 狠狠干在线视频| 五月丁香六月激情网站| 丁香婷婷激情| 欧美熟女乱又伦| AV大片在线观看| 狠狠干在线| jiujiu热在线视频| 狠狠爱丁香婷| 婷婷五月天亚洲| 怡红院99| 97精品在线| www.99热| 丁香五月先锋| 婷婷色Av| 99日韩| 性做爰1一7伦| 婷婷精品视频| 人人草开心五月天| 亚色网站小视频| 日韩成人免费电影| 手机免费福利视频| 久久丁香五月综合六月激情红杏视频 | 99热精国产这里只有精品| 强辱丰满人妻HD中文字幕| 日本道久久91| 五月色婷婷影院| 婷婷激情性爱| 91男人操女人视频| 久热超碰91| 色情五月综合婷婷| 婷婷五月激情四射手| 这里只有视频精品| 色色色视频免费无码 | 97碰碰视频在线观看免费| 激情丁香婷婷六月天| 色五月av| 欧美一级色| 99热这里只有是亚洲国产| 97久久人人| 99热热热天天人人人超超碰| 99无码| 五月婷婷色五月| 亚洲精品va| WWW.久久久久久久久久久久久| www.婷婷六月天| 婷香五月激情视频| 色欲AV导航| 99免费热在线精品| 九月婷婷| 色八月婷婷| 综合色网站| 久久婷婷六月综合国际| 99热精品免费| 婷婷色在线视频| 久久丁香五月婷婷| 岛国av网| 操嫩逼电影| 久草五月| AV中文在线| 情色婷婷五月天| 亚洲黄色精品| 99热国产精品| 五月天啪啪啪| 免费无码毛片一区二区A片| 九九热这里| 9热视频在线观看| 99爱视频在线| 五月婷婷激情中文字幕| 欧美三日本三级少妇三99| 99热这里只有在线| 丁婷婷五月天在线播放| 色五月六月| 亚洲国产精品综合色区| 草做免费在线观看| 亚洲九九视频| 丁香六月狠狠干| 婷婷五月久久| 欧洲激情精品婷婷| 色情五月天丁香社区| 激情五月色婷婷| 亚洲婷婷免费| 综合色色婷婷| 五月色婷婷中文字幕| 97超碰在线免费观看| 欧洲色色| 久久人妻视频| 国产精品成人AV在线观看春天| 五月婷婷综合网| 五月丁香网站| 五月丁香色色色| 久久男人网婷婷| 热久久999| 99色嘟嘟精品网站| 超碰在线观看9| 曰曰久久| 激情五月天婷婷激情| 五月丁色AV| 五月丁香六月婷婷免费视频| 色婷婷激情| 三级三久久线久久99久目本WW| 五月婷婷激情综合网| 五月婷婷啪啪| 五月丁香六月婷婷综合| WWW.夜夜操.com| 99热这里只有精品50| 五月天综合影院| 97碰人人操| 9久热| 67194线路二在线观看| 丁香五月天激情四射网络不好| 嫩草视频观看| 久久五月丁香激情综合| www.五月丁香| 婷婷激情五月呦呦| 色色色色热热| 99国产精品久久久久久久久久久| 婷婷丁香五月欧美人| 99久久网站| 99啪啪| a级毛片一区二区免费视频| www.9797国产| 激情五婷网| 色婷婷综合网| 色婷婷情片| 噜一噜免费视频| 青草少妇激情| 久热99视频在线观看| 婷婷丁香五月天婷婷| 狠狠操性爱av| 国产在线aaa片一区二区99| 色色色色色综合| 丁香五月综合色婷婷| 99re热视频这里只精品5| 色色色色色网| 五月丁香 啪啪| 五月亚洲| 五月婷婷精品视频| 噜噜噜精品欧美成人在线观看| 国产精品久久..4399| 婷婷丁香五月在线观看91| 日韩成人免费电影| 超碰99久久| 九色1区视频在线| 亚洲精品色色| 天天日天天舔| 另类激情五月天。| 97啪啪| 人人搡人人| 五月婷婷六月激情网| 久久伊人大香蕉| 色五月婷婷自拍| 激情婷婷五月基地| 182.t午在线观看| 五月夜丁香| 丁香五月成人网| 亚洲在线操| 亚洲天堂青草| 婷婷狠狠久久| 五月丁香无码| 国产jd1024基地手机看国产| 婷婷操逼| 婷婷亚洲综合| 婷婷五月天 丁香五月天 裸体| 最新AV在线观看| 深爱五月婷婷开心中文字幕| 五月婷婷九| 国产毛片精品一区二区色欲黄A片| 色婷婷亚洲综合网站| 99久在线精品99re8热| 色高清无码视频| xx久久| 婷婷丁香色五月天| 色婷婷中文字母五月丁香| 婷婷深爱五月丁香| 六月丁香激情网| 激情五月影院| 激情视频91| 天天综合永久| 啪啪91| 天天综合 99久久婷婷| 五月综合777| 成人在线日韩| 99乱视频| 天天插天天爽| 久久3级片| 99国产小视频免费观看| 操操碰| 人人97操| 婷婷五月激情视频| 五月婷婷丁香日韩在线| 九九综合久久丁香婷婷,开心激情综合网| 嫩草乱码一区三区四区| 色插人人| 青青草婷婷综合五月| 五月婷婷大香蕉| 欧美日韩成人在线网| 色播婷婷五月天| 丰满人妻一区二区三区| 开心五月激情网| 色偷偷色婷婷| 亚洲旡码| 亚洲av网站| www.AV在线| 日日操人人操| 婷婷五月色综合香五月| 亚洲五月天狠狠| 99热在线成人网站| 欧美日韩色色| 综合激情五月天六月婷免费视频| 色色亚洲99com| 色五月婷婷成人视频| 91精品综合久久久久久五月丁香| 激情AV| 97久久精品| 久久一级片| 99热这里只有精品86| 91热视频| 99精品免费欧美小视频 | 九九热婷婷| 久草嫩草在线观看| 五月婷婷激情五月| www激情网站| 婷婷网五月天| 性爱激情小说AV五月丁香花| 五月激情婷婷丁香| 久久婷婷人人| 综合狠狠干| 97人妻碰碰碰碰碰久久久久久| 天天干天天射综合网| 综合久久婷婷99| 国产热精品| www五月| 久久99精品久久久久久青青AR| 久久er99| 四色五月视频| 激情爱爱网站| 狠狠五月激情在线| 99在线精品免费视频| 亚洲婷婷月丁香五月| av大香蕉| 天天色官网| 91久女| 激情网婷婷婷| 91色吧网| 日韩AAAAA| www.9797国产| 丁香五月大香蕉| 超碰在线国产| 夜夜穞天天穞狠狠穞AV美女按摩| www.99热视频在线观看| 婷婷的五月天另类视频| 婷婷丁香成人五月天| 日韩欧美婷婷丁| 超碰国产在线观看| 婷婷九月色| 激情综合五| 色婷婷狠| 思思久久久婷婷| www,av好吊操| 91黄操| 午夜天堂一区人妻| 五月天激情电影| 欧美日韩成人高清在线| 91婷婷搞| 亚洲九九在线| 亚洲色图81p| 91色色色| dingxiangtingtingliuyue| 婷婷激情97| 激情丁香九九五月综合网| 婷婷四月 成人 狠狠干| 开心五月深爱五月| 人妻狠狠操| 97精品人人A片免费看| 无码人妻一区| 国产亚洲99| 性爱激情综合网| 美欧成人视频| 激情综合网激情五月网| 六月大香蕉| 91日韩在线| 99免费热视频在线| 最新热中文字幕| 大香蕉婷婷婷| 99热精品在线| 精品色色| 九九这里精品| 亚洲av日韩无码| 欧美性生交A片免费看| 深爱激情六月天| 婷婷99| www.91AV.com| 99久久九九| AV性爱在线| 91婷色| av首页在线| 激情www| 婷婷五月在线播放| 午夜精品777| 五月天激情四射网站| 国产成人精品一区二三区熟女在线| 五月婷婷在线免费观看| 精品99爱免费视频在线观看| 超碰人人艹| 丁香五月婷婷社区| 日韩丰满少妇无码内射| 久色网址| 天天操婷婷| WWW、日本色丁香、co m| 97色操| 亚洲亚洲人成综合网络| 九九热精品视频| 丁香色婷婷五月天| 狠狠干五码| 色五月天影视| 九九热欧美| CAOBIBI| 九九视频在线观看视频6| 色婷婷av在线观看| 天堂综合久久| 色情婷婷五月天| 精品成人无码A片观看香草视频| 色婷婷久久综合| 久久精品五月| 九月停停| 99福利视频导航| 99精品热| www.狠狠| 97色碰| 99ri精品| 99热碰碰热| 97操碰在线视频| 天天摸色吧天天摸色吧| 99热色在线精品| 人人操超踫| 亚洲色五月天是什么| 婷婷色色五月天| 中美日韩成人在线| 久99视频在线观看| 97影院一级片| 超碰激情网| 综合色网站| 97人人干。| 激情五月婷婷色色| 丁香五月婷婷少妇| 一区操| 九色视频入口91| 变态 另类 在线 | 激情久久伊人| 丁香六月婷婷色XXXX| 办公室少妇激情呻吟A片在线观看| 午夜一区| 深爱五月婷婷| 久久久国产精品黄毛片| 色涩视频久久| 91九色白丝| 久久99大| 视频1区2区| 五月天婷综合| 91成人视频| 婷婷五月天堂网| 九九热a| 五月丁香爱婷婷深深| 97热精品| WWW,激情五月天,COM| 色色婷婷五月| 中文人妻主播久久| 人人操人人爱丁香五月| 久久九九免费视频| 26.uuu丁香五月婷婷| 日本色色色| 欧美成人精品A片免费一区99| 久色| 婷婷六月香| 国产永久一黄| 国产91视频| 综合婷婷六月| 久久色五月天综合网| 色XX综合网| WWW.99视频| 色色操| 国产精自产拍久久久久久蜜 | 成人版视频在线观看| 久久99久久久久久| 亚洲熟妇AV乱码在线观看| 丁香五月亚洲综合丝袜| 另类在线观看视频| 久婷婷五月丁香在线观看| 久久五月天黄色五月天色网址| 婷婷五月天论坛| www.9797国产| 天天爽天天| 一本到不卡高清DVD| 久99久视频免费观看| 人妻中文在线| 婷婷五月天激情综合网| 久久网日本| 激情婷婷| 91视频久久久| 99热这里只有精品98| 激情五月丁香六月综合AVXXXX| 五月婷婷亚洲| 人人操人av| 九九无码| 天天碰夜夜操| 9久久婷婷国产综合精品性色| 千人斩操逼| 天天拍天天操| 国产欧美精品AAAAAA片| 啪色综合| 日日日影院| AV在线中文| 国外亚洲成AV人片在线观看| 99热爱爱干干日| 婷婷五月天xxx| 狠狠操狠狠| 日本乱子人伦在线视频| 五月丁香久久呀| 婷婷五月天色网久| 五月丁香婷婷中文| 亚洲AV久久久久久久久久久久久久久久| 噜噜色五月| 五月丁香六月停停| 五月丁香影院| 久七香蕉| 99久久免费精品| 噜噜视频| 亚洲综合婷婷五月| 日日爽日日爽| 天天色情站| AV在线免费播放| 丁香六月无码| 99啪啪| 99热日韩| 色五月婷婷五月天| 丁香五月激情图片婷婷| 丁香 婷婷五月| 五月丁香婷婷在线| 亚洲精品a成人在线播放| 欧美A级网站| 丁香五月天之婷婷影院| 97干在线免费| 99aese| 激情深爱五月天| 99热在线观看精品| 五月婷婷婷| 丁香六月婷婷色XXXX| eeuus五月婷| 伦乱天堂| 欧美色97| 久9无码视频| 五月婷久草| 五月丁香六月情婷婷久久| 五月婷婷激情网| a网站免费观看| 玖玖无码中文| 精品人妻在线| 丁香六月婷婷综合| 97成人在线视频精品| 丁香六月婷婷姐网| 久草丁香婷婷1024| 欧美激情五月| 丁香六月天婷婷色| 琪琪理论片| 人妻久久久| 91九色网| 五月香婷婷| 婷婷五月天成人网| 五月丁香婷婷综合| 丁香五月婷婷啪| 九九碰九九爱97超碰| 色色婷婷五月天| 国产精品电影| 天天色综和网| 亚洲免费看片| 婷婷六月丁香色| 亚洲成av人影院| www.日韩艹| 青草视频在线播放| 三级大香蕉网| 狠干综合| 国产成人AV在线播放| 色婷婷www| 婷婷激情综合无月| 性无码专区无码| 色婷婷六月开心中文字| 五月婷婷操操| 丁香五月婷婷俺也要去| 亚洲AV永久无码影院黑人 | 开心久久xxx色| 9+1视频网址| 色综合爱综合| 狠狠操狠狠色| 激情五月开心五月丁香五月| 精品久久久999| 青草激情综合| 性小说五月天| 99在线小视频| 综合一区二区三区| 人人操Av| 激情五月婷婷色综合| 激情深爱综合网| 色玖玖爱| 黄桃AV无码免费一区二区三区| 综合网五月天123| 人人干Av| 激情综合网五月天| 成人αV视频免费观看| 婷婷五月天男人影院色色网| 97自拍99| 丁香六月婷| 丁香五月丁香伊人| 停停五月色宗合| 久久精彩免费视频| 亚洲婷婷乱乱丁香| 久久精品综合色| 日韩成人精品中文字幕| 五月丁香在线综合| 婷婷五月天国产精品| 色爆五月| 色婷婷先锋| 五月天成人在线视频丁香| 久久婷婷网址| 五月丁香六月激情欧美综合| 五月丁香花婷婷玉莉AV| 超碰在线人人| 九九九九九九热| 久久艹99| 激情网开心网| www.色99| 激情五月天.色网| 老司机日日夜夜青草| 色9999综合久久| 久久婷婷色| 99青青草| 色色综合成人网| 久久久人人操A V| 人妻人人操| 婷婷香五月天| 婷婷五月天激情在线观看| 久久一品区| 精品国产一区二区三区四区阿崩| 99久久99久久| 天天综合亚洲| 天天在线久久综合| 玖玖婷婷五月| 精品久9| 五月天成人综合| 亚洲欧美一区二区三区爱爱动图 | wwwss在线观看| 国产午夜精品久久久观看| 色五月婷婷五月丁香五月激情五月视频 | 久久小说| 久久久精品人妻| 舔色婷婷| 久久99美女精彩视频| 久久女婷| 天天se在线视频| 99热黄| 亚洲无AV在线中文字幕| 综合激情视频| 久久综合影院| 99热这里只有精品国产精品| 就爱啪啪婷婷| 国产欧美日韩性爱| 五月天久久综合| 夜色.cnm| 熟妇内谢69XXXXXA片| 99热啪啪| 青青草轻轻操| 五月丁香婷婷爱| 久久免费视频62| 久色中文| 六月婷婷色五月| 激情婷婷丁香五月天小说| 亚洲色网址| 热五月婷婷| 久久久久婷| 岛国AV网| 激情五月婷婷丁香综合网| 激情的五月| 做爱夜夜干天天操| aaa丁香五月天| 丁香大香蕉| 成人av在线电影| 五月天激情啪啪| 超碰国产在线观看| 亚洲黄色av网站| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 亚洲天堂aaa| 五月好婷婷| 九九爱看亚洲| 婷婷色五月久久| 99久久思思| 五月天婷婷青青| 国熟女视频| 一本久久亚洲五月婷婷| 五月丁香婷婷婷婷综合网| 最新激情五月天| 色婷婷视频| 婷婷成人五月天一区| 丁香婷五月天| 思思热久久爱| 79色色色色| 五月天婷婷社区| 五月综合色| 色欲天天综合| 直接看的AV| 色情成人五月天| 疯狂做受XXXX高潮A片| 99国产精品久久久久久久久久久 | 久综合| 天天干天干| 99久视频| 琪琪色综合网站| 超碰在线免费观看3 9| 五月婷婷黄色毛片| 久久新地此| 99激情在线| 五月天激情在线视频| 五月www| 丁香五月婷婷色偷偷| 色偷偷综合| 九九视频这里只有精品| 九九色精品| chaopengdaxiangjiao| 极品少妇婷婷五月| 偷拍91九色| 高清无码.com| 色青五月天| 婷婷性福五月天| 亚洲综合色婷婷| 青草青草视频2免费观看| 伊人婷婷99热精品| 99免费在线视频| 天天爽夜夜爽夜夜爽精品| 五月视频日本免费观看| 五月天天爽| 中文字幕av久久爽一区| 亚洲字幕AV一区二区三区四区| 思思热99er| 婷婷久久性爱| 亚洲射激情| 久色视频| 国产av天堂| 久久九九99.www| 狠狠操狠狠爱| 国产片色| 欧美日韩999| 国产精品色情AAAAA片软件| 欧美啪啪网| 天天色综和网| 五月婷婷亞洲中文| 五月婷婷之综合激情| 色青青电影色五月| 超碰人人草| 我要看激情五月天| 天天婷婷操| 《蜘蛛女》梁铮1995| 中文字幕 中文字幕明步| ..真实国产乱子伦毛片| 久久人人超| 天天色天天舔天天爱天天爽| www.99视频| www.婷婷| 日本久久超碰| 欧美综合激情五月天| 五月婷婷激情| 99啪视频在线观看| 插插插丁香五月婷婷| 五月婷婷啪啪| 99热在线观看| 五月天激情啪啪| 九九在线免费观看| 久热这里只有精品99re| 99情色五月天| 天天操夜夜夜拍拍拍| 丁香六月激情网C0W| 色婷婷六月| AV成人在线播放| 狠狠操.COM| 九九久久网| 欧美日韩中国| 亚洲AAA| 婷婷丁香亚洲色综合91| 婷婷五月丁香第四色超碰在线 | 99免费| 婷婷综合性爱网| 天天五月丁香五月| 激情五月婷婷综合网| 五月天狠狠| 噜噜狠狠色综合久| 五月丁香在线婷婷美女| 狠狠五月天| 欧美婷婷| 久久香蕉丁香| 久草丁香婷婷五月天婷| 无码婷婷五月天| 另类图片五月天| 日韩精品999| 欧美色色色色色| 青青草婷婷五月天| 色综合久久久久| 狠狠狠狠狠狠| 99无码| 97人妻碰碰碰久| 狠狠色噜噜狠狠| 丁香花五月天激情| 久久精品噜噜噜成人A∨色欲 | 99久久视频| 久久九九色| 久久综合图片| 亚洲欧州色情在线观看| 综合久久综合| 六月婷婷久久| 影音先锋天天日| 丁香九月综合在线| 色五月综合激情| 婷婷五月五月丁香| 秋霞电影理论| 婷婷综合仓库中文| 天天色综合色| 艹B高清无码| 婷婷六月网| 久久无码成人| 六月丁香婷婷天堂| 大地资源色婷婷视频在线| 激情综合青草| 五月丁香六月婷| 色天天综合天天综合频道。| 丁香婷婷影院| 大功率国产在线| 91成人看片| 天堂久久婷婷| 97在线精品视频| 97色片| 婷婷色网站| 青青草性爱视频| 久久五月视频| 天天噪夜夜爽| 操操操B| 久久小片| 一本九九色| www.夜夜| 五月丁香色| 99色精品| 另类图片激情五月天| 666555。COm毛片| 欧美97p| 综合 蜜月 婷婷| 天天爱天天操| 99热精品在线观看| 九九亚洲视频| 色综合五月婷婷狠狠干| 久99婷婷色综合| 丁香激情五月少妇| 超级碰碰碰91| 五月天久久婷婷| 99热这只有| 精品婷婷丁香五| 9久9久| 色色色色色色色色综合网| 内射综合网| www.五月丁香| 丁香婷婷六月天| 五月丁香另类网| 五月丁香成年黄色| 丁香五月自拍| 丁香五月天激情| 人人摸人人干人人做| 丁香六月婷婷色XXXX| 天天日天天爱天天噪| 成人网页在线观看| 丁香五月婷婷啪啪| 丁香五月婷婷激情视频播放| 免费观看日韩成人av| 激情伊人| 久久五月丁香激情综合| 五月婷中文娱乐综合| 91成人视频| 97在线/亚洲| 玖玖色综合| 色日本五月天| 九九色中文| 激情五月天久久| 九九色播五月丁香| 丁香女人五月天| 51精品国内探花| 色婷婷色99国产综合精品| 色狠狠伊人久久五月丁香| 欧美日韩国产日本精品四虎网网站物| 色婷五月| 五月开行婷婷色五月| 日韩人妻无码精品| 综合欧美五月婷婷| 国产激情在线| 26uuu亚洲色| 婷婷五月天亚洲综合| 日产精品久久久久久久蜜臀| 日批在线看| 99热在线精品播放| 国产超碰在线| 色久综合| 99视频精品全部免费观看| 丁香婷婷91在线观看视频| 97精品人人A片免费看| 丁香五月天天高清在线| 全亚洲最大的婷婷五月天网站COM| 亚洲九九99精品视频在线播放| 婷婷五月天堂| 久久aaaa片一区二区| 丁香色五月直播| 天天艹| 蜜乳av一级av| 日本色道视频网站| 99亚洲无码| 五月天婷婷久久日| 五月激情六月综合| 婷婷国产成人| 亚洲婷婷六月天| 激情久久综合| 99热日本精品| 99婷五月| 99综合免费视频| 97九色| 综合婷婷五月丁香在线观看| 精品人妻伦| 肏屄色播伊人97婷婷| 精品操逼一区二区| 激情五月天婷婷| 另类激情综合| 欧美成人色婷婷| 五月天综合区| 欧美精品久久久久久视频观看| 色五月色图| 久九九热| 99爱在线| 大地资源色婷婷视频在线| 久久色婷婷| 色九月婷婷丁香| 99热99色| 婷婷激情丁五月| 综合激情五月丁香| 婷婷她六月天| 五月婷婷啪| 大大香蕉综合在线| 高潮毛片又色又爽免费| 色色a| 秋霞性爱AV| 久久婷婷六月综合| 激情宗合网激情五月天| 婷婷在线五月天观看| 亚洲色啪| 色婷婷五月综合| 51成人| 五月丁香啪啪激情| 久久9热| 五月亭亭色| 99热网精品| 色噜噜丁香| 亚洲经典三级| 99国产精品久久久久久久久久久 | 91打屁股视频网站| 99久久精品国产色欲| 国产99久| 亚洲丁香花五月丁香花| 丁香五月婷婷综合激情哟哟哟| 精品久久久91久久影视网| 色婷婷丁香五月| 99免费视频| 青柠影视免费高清电视剧| 成人网址在线观看| 97碰碰在线观看视频| 26uuu美女三级视频| 五月丁香六月在线欧美| 99在线公开视频| 婷香狠狠爱五月| 9热久久| 91视频免费后入强操| 亚洲超碰中文字幕| 久久综合9| 久久草大香蕉| 任你操精品免费| 在线天堂9| 久久99热这里只有精品| 99色综合| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 99性感视频| 99亚洲色色| 亚洲成人人人操| 噜噜国产| 99热精品在线播放| 九九热视频在线观看| 亚洲V国产V欧美V久久久久久| www.金莲av| 人人操91色| AV成人在线播放| 亚洲综合在线伊人婷| 小视频在线亚洲| 色五月五月丁香| 婷婷五月综合激情免费视频| 97色天堂| 99热这里都是精品| 99热网站| 91无码一起草| 2013AV天堂| 九九色热| 亚洲无码成人网| 色播五月丁香综合| 婷婷射丁香| 99精品久久久久久久婷婷| 亚洲超碰在线| 97日本在线播放| 丁香婷婷九月| 欧美天天干五月丁香| 婷婷开心激情五月激情网| 人人操AV| 国产毛片精品一区二区色欲黄A片| 97人碰人操| 久久五月丁香婷婷| 天天综合天天做天天综合| 天天日日夜夜爽。| 午夜成人网站在线观看| 777影视理论片大全在线观看| 亚洲日比视频| 4399亚洲视频| 五月婷婷在线网站| 996日日爱| 激情五月影院| 黄色短视频在线观看| 碰超99| 99精品7| 九热免费视频| 夜夜操加勒比| 991精品在线视频| 热的国产,热的综合,热的有码 | 99热自拍| 99噜噜噜在线播放| 4438国产免费看| 性爱在线播放av| 国产婷婷综合| 熟女人妻一区二区三区免费看| 我想看国产大学生口爆吞精的视频| 欧美五月丁香啪啪响视频| 深爱五月婷| 色九九综合| 99久久精品国产色欲| 丁香色色网| 色婷婷狠狠爱| 婷婷欧美激情| 综合五月婷婷| 六月激情丁香一道本7777| 欧美噜噜久久久XXX| 色五月欧美| 亚洲无AV在线中文字幕| 精品99在线| 六月丁香婷婷五月| 高清无码网址| 久久婷婷五月综合啪| 六月丁香五月激情婷婷| 67194国产| 一区二区三区四区牛| 天天噪夜夜爽| 日本三级韩三级99久久| 黄色AAAAAAA| 这里只有在线精品| 九九色色| www激情网站| 激情五月婷婷中文字幕| 五月天婷婷小说| 99精品热视频| 开心婷婷五月中文字幕组| 香蕉久久国产AV一区二区| 伊人综合婷婷| 久久精品66| 激情五月天网| 亚洲综合婷婷五月| 综合网亚洲| www.狠狠| 大香网伊人久久综合| 欧美超级视频97| 婷婷综合在线视频| 丁香六月爱综合| 国产婷婷色综合AV蜜臀AV| 色10月婷婷视频| 日韩色五月| 夫妻超碰在线| 五月熟妇婷婷久久| 91丨九色丨国产打屁股| 色播婷婷五月天| 欧美丁香五月| 91在线日本| 婷婷五月天国产| 色约约视频一区二区三区四区五区| 婷婷五月天激情视频| 香蕉AV777XXX色综合一区| 另类专区在线| 91成人视频| 久久久久亚洲AV成人无码电影| 色婷婷亚洲五月天| 免费在线观看av网站| 天天天摸夜夜夜玩| 99干日日干| 9999色色色色| 久久视频在线视频| 玖玖在线资源视频| 成人日韩欧美| 玖玖综合色区在线观看| 色婷婷五月亚洲| 91久女| 亚洲 五月 婷婷 成人| 色婷婷网大全在线| 激情久久综合网| 亚洲国产精品成人午夜| 婷婷六月天激情影院| 51精品国自产在线| 五月永久激情| 偷拍九九热| 思思热视频| 久久综合色情网站| 亚洲免费99| 丁香五月久久| 丁香五月影院| 亚洲综合激情五月久久| 丁香婷婷大香蕉| 成人婷婷色五月天| 婷婷五月色播放| 情欲综合网| 色色欧美色色| 久久综合激情婷婷激情| 丁香五月婷婷国产在线| 久久在线视频免费观看| 黄色AV日韩| 久久伊人婷婷| 久久五月天综合| 激情深爱综合| 蜜桃成语时李时珍 免费| 色色亚卅| 日韩无码系列| 五月天丁香成人| 色色综合网站| 亚洲乱码日产精品BD| 大伊久久| 丁香花五月天婷婷成人社区| 天天婷婷综合亚洲亚洲| 神马欧美精| 夜夜撸日日操| www婷婷亚洲| 五月丁香婷婷激情图片| 91九色视频在线观看| 天天射影| 97久久超碰| 这里只有精品9| 婷婷狠狠操| 综合激情五月天| 操丝袜视频影院导航| 射久久丁香五月| www.99在线| 五月天激情婷婷丁香| 最近中文字幕2019视频1| 五月色综合网| 91九色国产| 色五月丁香com| 五月婷导航| 激情爱爱网站超大免费| 色婷婷在线视频| 五月天综合视频| 综合久久高清| 色婷五月天| 久久99热这里只有精品| 五月天激情小说婷婷| 五月天操逼激情| 91热网址| 三级成人网站| 婷婷婷久久久| 亚洲精品无码99热| 91无码高清|