精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

別再用雪花算法生成 ID 了!試試這個吧!

開發 前端
說了這么多,并不是說雪花算法一無是處。在一些簡單的場景下,它依然是個不錯的選擇。但隨著系統規模的擴大和業務復雜度的提升,我們確實需要更可靠、更靈活的 ID 生成方案。

兄弟們,凌晨三點,運維的電話突然炸響。"訂單系統炸了!重復 ID 導致支付通道堵塞,用戶都在罵街!" 排查日志時,一行刺眼的異常記錄跳了出來:時鐘回撥導致 ID 沖突。又是雪花算法這個磨人的小妖精惹的禍!

作為分布式系統的 "身份證",.“身份證”,ID 生成器看似只是個簡單的數字生成器,實則暗藏玄機。今天咱們就來好好聊聊:為什么曾經風光無限的雪花算法,如今越來越不香了?又有哪些更靠譜的替代方案能扛住各種奇葩場景?

一、雪花算法:看似完美的 "瑞士手表"

2010 年,Twitter 開源的雪花算法(Snowflake)橫空出世,立刻成為分布式 ID 生成領域的 "網紅"。它把 64 位 ID 分成三部分:41 位時間戳、10 位機器 ID 和 12 位序列號。這種設計就像一塊精密的瑞士手表,各個部件完美配合,保證了 ID 的唯一性和有序性。

雪花算法的優點確實很突出:

  1. 全局唯一:通過時間戳 + 機器 ID + 序列號的組合,理論上不會出現重復 ID。
  2. 趨勢遞增:時間戳在高位,保證了 ID 整體上是遞增的,對數據庫索引友好。
  3. 高性能:純內存計算,單機每秒能生成幾十萬甚至上百萬個 ID。
  4. 靈活可控:可以根據業務需求調整各部分的位數分配。

然而,就像再精密的手表也會有誤差,雪花算法的幾個 "硬傷" 在高并發場景下逐漸暴露出來。

首先是時鐘回撥問題。雪花算法嚴重依賴系統時鐘,一旦服務器時間發生回撥(比如 NTP 同步、人工調整),就可能生成重復 ID。想象一下,如果你的手表突然倒著走了,你是不是會對當前時間產生困惑?系統也是一樣。有一次我們機房進行時鐘同步,結果導致某臺服務器時間回撥了 3 秒,直接造成了上千個重復的訂單 ID,排查了整整 4 小時才搞定。

其次是機器 ID 管理麻煩。傳統雪花算法需要手動分配機器 ID,在集群擴容時很容易出錯。我就見過有人為了圖省事,直接把機器 IP 的后幾位作為機器 ID,結果導致不同機房的服務器出現 ID 沖突。更麻煩的是在 K8s 環境下,Pod 漂移會導致機器 ID 頻繁變化,簡直是運維的噩夢。

最后是 ID 可預測性。由于雪花算法的結構相對固定,有心人很容易通過分析連續的 ID 推測出你的系統架構。曾經有個電商平臺就因為用了默認配置的雪花算法,被黑客通過訂單 ID 反推出了服務器數量和大致的訂單量,進而針對性地發起了流量攻擊。

二、替代方案大比拼:誰是更可靠的 "身份證系統"?

既然雪花算法不完美,那市面上有哪些更靠譜的選擇呢?我們可以從三個維度來評估:唯一性、性能和安全性。

美團 Leaf:雙保險的 "銀行保險柜"

美團開源的 Leaf 方案就像一個雙保險的銀行保險柜,同時支持號段模式和優化后的雪花模式,讓你可以根據業務需求靈活選擇。

號段模式的思路很簡單:從數據庫批量獲取一段 ID,緩存到本地慢慢分配。就像去 ATM 機取錢,一次取幾千塊放錢包里,不用每次花錢都去銀行。這種模式大大減輕了數據庫壓力,單機 QPS 輕松達到 10 萬 +。

更厲害的是,Leaf 還采用了 "雙 buffer" 機制。想象一下你有兩個錢包,當第一個錢包的錢花到只剩 10% 時,系統會自動幫你從銀行取一筆錢放進第二個錢包。這樣就算取錢過程有點慢,你手里也總有零錢可用,不會耽誤事。這個機制在秒殺場景下特別管用,能有效避免 ID 生成中斷。

Leaf 的雪花模式則解決了傳統雪花算法的時鐘回撥問題。它通過 ZooKeeper 協調,為每個節點分配唯一的 workId。當檢測到時鐘回撥時,會等待一段時間再生成 ID。如果回撥時間太長,還會自動切換到備用節點,簡直是個聰明的 "時間管理大師"。

百度 UidGenerator:高性能的 "高鐵列車"

百度的 UidGenerator 就像一列高鐵,把雪花算法的性能推向了新高度。它最牛的地方是引入了 RingBuffer(環形緩沖區),就像高鐵的預購票系統,提前生成一批 ID 存起來,等需要的時候直接拿就行。

這種設計帶來了兩個好處:一是無鎖并發,多個線程可以同時取 ID,就像多個檢票口同時檢票,效率大大提升;二是提前緩存,就算偶爾遇到 "堵車"(系統壓力大),也不會影響乘客上車(ID 生成)。

UidGenerator 的單機 QPS 能達到 600 萬,這是什么概念?相當于一秒鐘能給 600 萬人發身份證!而且它還解決了機器 ID 的管理問題,通過數據庫自增 ID 來動態分配,再也不用擔心手動配置出錯了。

不過要注意的是,CachedUidGenerator 為了追求高性能,采用了 "借用未來時間" 的策略。如果系統時鐘發生回撥,它會直接使用緩存中的未來 ID,這在某些對時間敏感的場景下可能會有問題。所以使用時一定要根據業務場景選擇合適的實現類。

Sonyflake:長壽的 "烏龜"

索尼公司的 Sonyflake 算法就像一只烏龜,雖然跑得不快,但特別長壽。它對雪花算法的位分配做了調整:39 位時間戳(精確到 10 毫秒)、16 位機器 ID 和 8 位序列號。

這種設計讓 Sonyflake 的時間戳可以支持 174 年,比雪花算法的 69 年翻了一倍還多。對于那些需要長期運行的系統(比如金融系統)來說,這可是個大優勢。16 位的機器 ID 可以支持 65536 個節點,非常適合超大規模集群。

不過代價是性能有所下降,每 10 毫秒最多生成 256 個 ID,換算成每秒就是 25600 個。這在高并發場景下可能不夠用,所以通常需要部署多個實例來分擔壓力。就像烏龜雖然跑得慢,但如果有一群烏龜一起干活,總量也很可觀。

UUIDv7:無牽無掛的 "浪子"

如果你厭倦了管理機器 ID 和時鐘同步這些麻煩事,那 UUIDv7 絕對是你的菜。它就像一個無牽無掛的浪子,不需要任何中心化協調,也能生成全局唯一的 ID。

UUIDv7 是 IETF 推出的新標準,在保持 UUID 唯一性的同時,加入了時間排序功能。它的結構是:48 位時間戳(精確到毫秒)+ 76 位隨機數。這樣既保證了 ID 的趨勢遞增,又通過巨大的隨機空間(2^76≈75.5 萬億億)確保了唯一性。

最爽的是,UUIDv7 不需要管理機器 ID。傳統雪花算法就像給每個機器發一個身份證,而 UUIDv7 則是讓每個人天生就長得不一樣,從概率上避免了沖突。這在云原生環境下特別有用,再也不用擔心 Pod 漂移導致的 ID 沖突了。

不過 UUIDv7 也有個小問題:它是 128 位的字符串,直接作為數據庫主鍵可能影響性能。解決辦法是把它存成 BINARY (16) 類型,再通過 MySQL 的虛擬列功能生成一個可讀的字符串列。這樣既保證了性能,又方便了運維查詢,可謂一舉兩得。

號段模式:簡單可靠的 "自行車"

如果你覺得上面的方案太復雜,那號段模式可能更適合你。它就像一輛自行車,結構簡單,維護方便,雖然速度不快,但應付日常通勤(中等并發場景)綽綽有余。

號段模式的核心思想是:從數據庫獲取一個 ID 范圍(比如 1-1000),然后在本地慢慢分配。當分配到一定比例(比如 80%)時,再去數據庫取下一段。這樣既能保證 ID 有序,又大大減少了數據庫訪問。

實現起來也很簡單,只需要一張表記錄每個業務的當前最大 ID 和步長。代碼層面可以用 Spring Boot+MyBatis 快速搭建,就算是新手也能很快上手。我們公司的用戶系統就用了這種模式,每天生成幾百萬個 ID,穩定得很。

三、性能大比拼:誰才是真正的 "速度之王"?

光說不練假把式,我們來看看這些方案的性能到底怎么樣。雖然下面的數據來自 Go 語言的測試,但 Java 環境下的相對性能應該差不多。

性能王者:Krand(12.03 ns/op)

這貨就像 F1 賽車,速度快得離譜。但它是基于隨機數的,不保證遞增性,適合作為緩存鍵等場景。

第二梯隊:XID(27.54 ns/op)、UUIDv7(約 30 ns/op)

這些就像高鐵,性能優秀還兼顧了有序性。適合大多數分布式系統場景。

第三梯隊:UidGenerator(約 100 ns/op)、Leaf(約 200 ns/op)

相當于普通火車,雖然比不過高鐵,但勝在穩定可靠,能應對高并發。

壓軸選手:雪花算法(258.4 ns/op)、Sonyflake(約 300 ns/op)

就像自行車,雖然慢,但勝在簡單可靠,適合小規模系統。

不過要注意,性能不是唯一的考量因素。比如 UUIDv7 雖然快,但 128 位的長度可能影響數據庫性能;UidGenerator 性能強勁,但需要額外的數據庫支持。所以選型時一定要綜合考慮。

四、場景化選型:沒有最好,只有最合適

說了這么多,到底該選哪個呢?其實就像選車一樣,沒有最好的,只有最合適的。我們來看看不同場景下的最佳選擇:

金融支付場景:安全第一,選 Leaf

金融系統對 ID 的要求就像對鈔票的要求一樣嚴格:絕對不能重復,還要有一定的安全性。Leaf 的號段模式配合數據庫主從架構,既能保證 ID 唯一性,又有足夠的容錯能力。再加上雙 buffer 機制,就算數據庫偶爾 "打盹",也不會影響業務運轉。

電商秒殺場景:性能為王,選 UidGenerator

秒殺場景下,ID 生成就像春運搶票,瞬間流量能達到平時的幾十倍。這時候 UidGenerator 的 RingBuffer 就派上大用場了,提前緩存的 ID 能像應急車票一樣,輕松應對突發流量。600 萬的 QPS 就算是 "春運級" 的流量也不在話下。

長期運行的系統:壽命優先,選 Sonyflake

像銀行的核心系統,可能一跑就是幾十年。這時候 Sonyflake 的 174 年壽命就體現出優勢了。雖然它的性能不算頂尖,但對于金融系統來說,穩定性比速度更重要。

云原生環境:靈活至上,選 UUIDv7

在 K8s 這樣的動態環境下,Pod 隨時可能漂移,機器 ID 很難管理。UUIDv7 不需要任何中心化協調,天生適合這種場景。只需要注意把它存成 BINARY 類型,性能也不會太差。

中小團隊 / 非核心業務:簡單夠用,選號段模式

如果你的團隊規模不大,或者 ID 生成不是核心業務,那簡單的號段模式可能更適合。就像自行車雖然不快,但勝在靈活方便,維護成本低。只需要一張表,幾行代碼,就能搭建起一個可靠的 ID 生成服務。

超大規模分布式系統:創新方案,試試 Butterfly

如果你覺得上面的方案還不夠勁,可以看看 Butterfly 框架。它就像一個 "時間機器",不再依賴真實時鐘,而是用邏輯時鐘來生成 ID。就算服務器時間亂跳,也不會影響 ID 的唯一性。

Butterfly 的設計很巧妙:

更厲害的是,它還支持動態擴容,通過 ZooKeeper 可以輕松管理超過 1024 個節點。對于超大規模的分布式系統來說,這簡直是量身定做。

  • 進程啟動時記錄一個 "邏輯起始時間"
  • 后續 ID 生成基于這個時間自增,不再看真實時鐘
  • 序列號用完了,就把邏輯時間 + 1,完美避免了時鐘回撥問題

五、落地指南:從理論到實踐

光說不練假把式,我們來看看怎么把這些方案落地到實際項目中。

Leaf 集成步驟:

第一步:拉取源碼并編譯

git clone git@github.com:Meituan-Dianping/Leaf.git
cd leaf
mvn clean install -DskipTests

第二步:配置數據庫(號段模式)

CREATE DATABASE leaf;
CREATE TABLE `leaf_alloc` (
  `biz_tag` varchar(128) NOT NULL,
  `max_id` bigint(20) NOT NULL DEFAULT '1',
  `step` int(11) NOT NULL,
  `description` varchar(256) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`biz_tag`)
) ENGINE=InnoDB;
insert into leaf_alloc(biz_tag, max_id, step, description) 
values('order_id', 1, 2000, '訂單ID生成');

第三步:配置 leaf.properties

leaf.name=leaf-server
leaf.segment.enable=true
leaf.jdbc.url=jdbc:mysql://localhost:3306/leaf
leaf.jdbc.username=root
leaf.jdbc.password=123456
leaf.snowflake.enable=true
leaf.snowflake.zk.address=localhost:2181

第四步:啟動服務并測試

curl http://localhost:8080/api/segment/get/order_id

UidGenerator 集成要點:

UidGenerator 的集成稍微復雜一點,但核心是配置好 workerId 的生成策略和 RingBuffer 的大小。

@Configuration
public class UidConfig {
    @Bean
    public UidGenerator uidGenerator() {
        CachedUidGenerator generator = new CachedUidGenerator();
        generator.setWorkerIdAssigner(workerIdAssigner());
        generator.setBoostPower(14); // RingBuffer大小為2^14=16384
        generator.setPaddingFactor(50); // 剩余50%時開始填充
        return generator;
    }
    
    @Bean
    public WorkerIdAssigner workerIdAssigner() {
        return new DisposableWorkerIdAssigner();
    }
}

使用的時候直接注入即可:

@Autowired
private UidGenerator uidGenerator;
public long generateOrderId() {
    return uidGenerator.getUID();
}

UUIDv7 的正確使用姿勢:

首先引入依賴:

<dependency>
    <groupId>com.fasterxml.uuid</groupId>
    <artifactId>uuid-generator</artifactId>
    <version>4.0.1</version>
</dependency>

然后生成 UUIDv7:

UUIDGenerator generator = UUIDGenerator.getInstance();
UUID uuid = generator.generateType7();

為了兼顧性能和可讀性,可以在數據庫中這樣設計:

CREATE TABLE`order` (
`id`BINARY(16) NOTNULL,
`id_text`VARCHAR(36) GENERATEDALWAYSAS (BIN_TO_UUID(id)) VIRTUAL,
`amount`DECIMAL(10,2) NOTNULL,
`create_time` DATETIME NOTNULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

這樣既能享受 BINARY 類型的性能優勢,又能通過 id_text 列方便地查看和調試。

六、避坑指南:這些 "坑" 你可別踩

  1. 時鐘同步問題:無論用哪種方案,服務器之間的時鐘同步都很重要。建議部署 NTP 服務,但要注意不要同步太頻繁,避免時鐘抖動。一般來說,10 分鐘同步一次就夠了。
  2. 機器 ID 沖突:這是最容易踩的坑!一定要確保機器 ID 的生成方式在集群中是唯一的,尤其是在自動擴縮容的場景下。可以考慮用 ZooKeeper 或數據庫自增 ID 來管理機器 ID。
  3. 數據庫單點:號段模式和 UidGenerator 都依賴數據庫,一定要做好主從備份,避免單點故障。最好再加上監控告警,一旦主庫掛了能及時切換。
  4. 緩存策略:本地緩存雖然能提高性能,但也要注意緩存大小和更新策略,避免內存溢出或緩存穿透。Leaf 的雙 buffer 和 UidGenerator 的 RingBuffer 都是經過驗證的優秀設計,可以參考它們的實現。
  5. 監控告警:給 ID 生成服務加上監控吧,至少要監控 QPS、響應時間和錯誤率。當出現異常時,能第一時間告警。曾經有個團隊就是因為沒加監控,ID 生成服務掛了半小時才發現,造成了巨大損失。
  6. 預留擴展空間:設計 ID 生成方案時,一定要給未來留有余地。比如步長設置得大一點,機器 ID 的位數多預留幾位,免得以后擴容時發現不夠用,那就麻煩了。

七、總結:沒有銀彈,但有更好的選擇

說了這么多,并不是說雪花算法一無是處。在一些簡單的場景下,它依然是個不錯的選擇。但隨著系統規模的擴大和業務復雜度的提升,我們確實需要更可靠、更靈活的 ID 生成方案。

美團 Leaf 就像一個穩重的老司機,總能把你安全送到目的地;百度 UidGenerator 則像一匹千里馬,在高并發場景下能跑出讓人驚嘆的速度;Sonyflake 就像一只長壽的烏龜,適合長期運行的系統;而 UUIDv7 則像一個無牽無掛的浪子,在云原生環境中如魚得水。

責任編輯:武曉燕 來源: 石杉的架構筆記
相關推薦

2025-05-15 03:00:00

2020-07-17 07:15:38

數據庫ID代碼

2025-09-16 07:00:00

雪花算法IDPython

2025-10-09 07:10:00

ID代碼生成JavaScript

2025-11-03 04:00:00

2025-07-17 12:37:21

2025-08-13 03:00:00

2025-05-19 04:00:00

2020-12-02 11:18:50

print調試代碼Python

2020-12-04 10:05:00

Pythonprint代碼

2021-06-09 06:41:11

OFFSETLIMIT分頁

2019-09-05 13:06:08

雪花算法分布式ID

2020-02-05 14:17:48

Python數據結構JavaScript

2020-02-05 16:37:06

方括號Python方法

2022-03-08 13:46:22

httpClientHTTP前端

2020-12-07 06:05:34

apidocyapiknife4j

2020-12-15 08:06:45

waitnotifyCondition

2021-01-29 11:05:50

PrintPython代碼

2020-12-03 09:05:38

SQL代碼方案

2023-10-26 16:33:59

float 布局前段CSS
點贊
收藏

51CTO技術棧公眾號

婷婷精品国产一区二区三区日韩 | 免费福利在线观看| 丁香花高清在线观看完整版| 亚洲少妇一区| 亚洲精品ww久久久久久p站| 4438全国成人免费| 国产精品无码自拍| 中文字幕av网站| 五月国产精品| 激情懂色av一区av二区av| 亚洲影院色无极综合| 九九九视频在线观看| 亚洲深夜视频| 麻豆国产欧美日韩综合精品二区| 亚洲精品美女视频| 18禁网站免费无遮挡无码中文| 国产深喉视频一区二区| 第一会所亚洲原创| 欧美三级中文字幕在线观看| 日本一区精品| 少妇又紧又色又爽又刺激视频| 欧美日本成人| 欧美性色黄大片手机版| 日韩精品一区二区三区四区五区 | 欧美性孕妇孕交| 一区二区动漫| 日韩精品在线视频观看| 久久国产成人精品国产成人亚洲| 婷婷在线免费视频| 欧美婷婷在线| 亚洲国产精品久久精品怡红院| 免费人成自慰网站| 国模私拍视频在线| 一本久久综合| 欧美精品做受xxx性少妇| 做a视频在线观看| 老司机精品视频在线观看6| 国产在线播放一区| 韩国福利视频一区| 韩国女同性做爰三级| 久久麻豆视频| 一区二区三区精品在线| 国产成人女人毛片视频在线| 免费在线观看av网址| 九九热hot精品视频在线播放| 精品女厕一区二区三区| 日韩欧美一区二区在线观看| 图片区 小说区 区 亚洲五月| 国产suv精品一区二区6| 91av在线视频观看| 免费一级suv好看的国产网站| 亚洲精品无播放器在线播放| 一区二区高清在线| 狠狠干视频网站| www.五月婷婷| 久久精品网址| 欧美另类99xxxxx| 精品无码国产污污污免费网站| 日韩动漫一区| 亚洲乱亚洲乱妇无码| 日本黄色的视频| 成人女同在线观看| 亚洲观看高清完整版在线观看| 日本成人三级电影网站| 精华区一区二区三区| 国产精品99久久久久久似苏梦涵 | 亚洲精品久久久久久下一站| 黄色av免费在线播放| 成人三级网址| 国产欧美日韩精品在线| 国产日韩欧美自拍| 国产网站在线看| 99精品综合| 亚洲欧洲在线免费| 成人啪啪18免费游戏链接| 一区二区三区免费在线看| 欧美专区日韩专区| 国产精品va无码一区二区| 男女羞羞在线观看| 一区二区三区高清| 欧美视频免费看欧美视频| 毛片在线看网站| 国产欧美一区二区精品秋霞影院| 色综合电影网| fc2ppv国产精品久久| 亚洲成人av电影在线| 成人在线激情网| 白浆在线视频| 亚洲专区一二三| 无码人妻精品一区二区三区在线| 亚洲综合av一区二区三区| 疯狂蹂躏欧美一区二区精品| 日韩精品免费播放| 欧美国产亚洲精品| 7777精品伊人久久久大香线蕉完整版| 成人小视频在线看| 女人让男人操自己视频在线观看 | 韩国视频理论视频久久| 一级黄色在线视频| 亚洲在线网站| 久久久久久久久久久亚洲| 永久久久久久久| 欧美残忍xxxx极端| 色yeye香蕉凹凸一区二区av| 永久免费成人代码| 久久精品影视| 久久成人这里只有精品| 日日噜噜夜夜狠狠久久波多野| 欧美日韩一区二区综合 | 国产区av在线| 久久精品视频一区| 欧美中日韩免费视频| 182tv在线播放| 亚洲综合无码一区二区| 粉嫩虎白女毛片人体| 国产精品99久久免费观看| 亚洲成成品网站| 九九热久久免费视频| 欧美成人激情| 青青草国产精品一区二区| 在线观看日本视频| 首页亚洲欧美制服丝腿| 国产成人鲁鲁免费视频a| 你懂的国产在线| 久久字幕精品一区| 国产亚洲欧美一区二区| 三级av在线| 亚洲风情在线资源站| 在线能看的av网站| 日韩1区2区| 麻豆成人在线看| 亚洲天堂一二三| 九色|91porny| 91久久国产综合久久蜜月精品| www.黄色一片| 亚洲男人电影天堂| 黄色大片中文字幕| 99精品女人在线观看免费视频 | 亚洲欧美视频在线播放| 国产精品香蕉| 欧美黄色片在线观看| 天天操中文字幕| 天堂蜜桃91精品| 精品在线视频一区二区| a视频网址在线观看| 亚洲欧美一区二区三区久本道91| 中文字幕无码精品亚洲资源网久久| 四虎影视国产精品| 亚洲激情视频在线| 动漫精品一区一码二码三码四码| 国产精品资源在线看| 久久久久天天天天| 国产三区在线观看| 欧美一卡2卡三卡4卡5免费| 黄色网址在线视频| 久久久久久久久久久9不雅视频| 国产精品极品尤物在线观看| 国产情侣自拍小视频| 亚洲欧洲另类国产综合| 黄色片视频在线免费观看| 亚洲成人一品| 色综合久久久888| 亚洲精品免费在线观看视频| 中文字幕av一区 二区| 亚洲色成人www永久在线观看| 欧美9999| 国产91成人在在线播放| 免费黄网站在线观看| 欧美主播一区二区三区| 777777国产7777777| 粉嫩蜜臀av国产精品网站| 秋霞无码一区二区| 精品日韩毛片| 99三级在线| 午夜在线免费观看视频| 精品美女国产在线| 日本人亚洲人jjzzjjz| 激情综合色播五月| 日韩中文字幕一区| 日韩城人网站| 久久全国免费视频| 亚洲视频在线观看免费视频| 亚洲同性同志一二三专区| 亚洲视频天天射| 五月精品视频| 黄色99视频| 欧美一区二区三区婷婷| 欧美激情极品视频| 电影在线高清| 亚洲国产成人av在线| 中文字幕永久在线视频| 亚洲永久精品国产| 国产高潮呻吟久久| 国产成人午夜视频| 手机看片福利日韩| 欧美女优在线视频| 51国偷自产一区二区三区| 中日韩脚交footjobhd| 美女av一区二区三区| 男人天堂资源在线| 欧美不卡一区二区三区| 欧美精品色哟哟| 国产欧美日韩不卡免费| 日本少妇xxxx| 一本色道精品久久一区二区三区| 亚洲精品中字| 欧美性生活一级| 欧美亚洲第一页| 日本成人不卡| 亚洲国产精品视频在线观看| 一道本在线视频| 一本到不卡免费一区二区| 精品人妻一区二区三区日产乱码卜| 久久福利资源站| 国产一区亚洲二区三区| 樱桃成人精品视频在线播放| 国产亚洲精品久久飘花| 韩国三级大全久久网站| 国产精品入口日韩视频大尺度| 久久米奇亚洲| 亚洲国产精品专区久久| 精品人妻一区二区三区含羞草| 欧美性受xxxx| 无码人妻久久一区二区三区| 午夜一区二区三区在线观看| 中国黄色a级片| 国产盗摄视频一区二区三区| 制服丝袜中文字幕第一页| 日韩激情一区二区| 中文网丁香综合网| 99re8这里有精品热视频8在线| 久久久亚洲影院| av免费在线免费| 久久五月天综合| jizz性欧美10| 美女少妇精品视频| 国产黄色在线网站| 久久精品91久久香蕉加勒比| 亚洲精品久久久狠狠狠爱 | 色综合www| 国产一区二区免费在线观看| 99a精品视频在线观看| 99国产在线| aiai久久| 国产麻豆乱码精品一区二区三区 | 国产美女被下药99| 七七成人影院| 欧美激情一级二级| 国产精品论坛| 浅井舞香一区二区| 日本综合视频| 成人免费午夜电影| 在线观看v片| 欧美最猛性xxxx| 亚洲成人看片| 久久人人爽人人爽人人片av高请| 色呦呦网站在线观看| 曰本色欧美视频在线| 亚洲国产成人在线观看| 精品国产精品一区二区夜夜嗨| 成人一二三四区| 亚洲国产一区二区在线播放| 精品人伦一区二区| 99视频超级精品| 一级片免费在线观看视频| 亚洲永久在线| 成人免费毛片播放| 久久国产三级精品| 欧美人与性动交α欧美精品| 日韩精品一级二级| 老司机午夜性大片| 国产ts人妖一区二区| 亚洲蜜桃精久久久久久久久久久久| 91社区在线播放| 国产精品无码自拍| www国产成人| 久久成人小视频| 久久久久99精品国产片| 青青青视频在线播放| 亚洲精品高清视频在线观看| 日本天堂网在线观看| 亚洲女与黑人做爰| 日本天堂在线视频| 欧美日韩日日夜夜| 中文字幕av影视| 精品少妇一区二区三区日产乱码 | 色老头在线视频| 欧美一区二区二区| 男人的天堂在线| 久久中文久久字幕| 日本韩国欧美| 91中文字精品一区二区| 欧美日韩中文一区二区| 亚洲熟妇无码av在线播放| 亚洲一区二区三区无吗| 亚洲精品中文字幕乱码三区不卡| 欧美午夜a级限制福利片| 四季av一区二区| 丁香六月综合激情| 色悠悠在线视频| 国产欧美日本一区视频| 国产性生活网站| 亚洲午夜一区二区三区| 波多野结衣午夜| 亚洲精品xxxx| 1769免费视频在线观看| 国产激情视频一区| 久久久久97| 妞干网这里只有精品| 自拍偷拍欧美专区| 高清一区二区视频| 91亚洲精品久久久蜜桃网站 | 乱亲女秽乱长久久久| 成人精品电影在线| 国产精品高潮呻吟久久av黑人| 亚洲欧美日本国产| 亚洲最新免费视频| 99精品综合| 一级黄色香蕉视频| 91色综合久久久久婷婷| 日本一二三区视频| 欧美大片免费久久精品三p| 免费观看国产视频| 精品亚洲va在线va天堂资源站| 菠萝蜜视频国产在线播放| 国产精品久久久久久久久免费| 欧美变态网站| 青娱乐一区二区| 99热精品在线观看| 欧美做受高潮中文字幕| 久久先锋资源网| 国产又粗又猛又爽又黄的视频四季 | 91麻豆精品国产91久久久资源速度| 欧美黄色小说| 欧美在线视频一区| 伊人久久大香线蕉| 女性隐私黄www网站视频| 久久色.com| 久久久久久无码午夜精品直播| 亚洲欧美激情另类校园| 超级碰碰久久| 日本在线一区| 青青草97国产精品免费观看 | 欧美肥婆姓交大片| 精品国产乱码一区二区三区| 91香蕉视频网址| 国产麻豆一精品一av一免费| 午夜精品福利在线视频| 88在线观看91蜜桃国自产| 久草资源在线观看| 亚洲字幕一区二区| 黄色综合网站| 污版视频在线观看| jiyouzz国产精品久久| 精品国产免费观看| 亚洲香蕉在线观看| 亚洲色图美国十次| 国产区一区二区| 中文一区二区| 国产又粗又黄又猛| 欧美一区二区三区影视| 国产丝袜精品丝袜| 欧美另类视频在线| 亚洲天堂黄色| www.88av| 欧美日韩国产高清一区| 中文字幕在线播放网址| 国产综合av一区二区三区| 久久狠狠婷婷| 97精品在线播放| 亚洲a视频在线| 在线免费看av不卡| 日韩大陆av| 国产免费裸体视频| 91免费看片在线观看| 探花视频在线观看| 日韩在线免费高清视频| 亚洲1区在线| 99久久99久久| 1024成人| 中文字幕在线观看视频www| 亚洲国产精品久久久久婷婷884| 三级在线观看网站| 国产精品91久久久| 欧美.日韩.国产.一区.二区| 国产精品入口免费软件| 亚洲三级久久久| 五月婷婷狠狠干| 国产欧美在线看| 中文精品视频| 69夜色精品国产69乱| 日韩成人xxxx| 伊人久久大香| 免费毛片小视频| 亚洲黄色在线视频| 成年人在线观看网站| 国产精品亚洲不卡a| 麻豆久久久久久久| 国产www在线| 欧美日韩不卡合集视频|