精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲区国产区| 欧美福利在线播放网址导航| 亚洲人成亚洲人成在线观看图片| 国产综合福利在线| 国产小视频在线观看免费| 欧美激情99| 欧美性色黄大片| 免费成人进口网站| 四虎国产精品永远| 精品一区二区精品| 69久久夜色精品国产69| 中文字幕在线观看免费高清| 日韩精品一区二区三区中文字幕| 欧美午夜影院在线视频| 国产福利片一区二区| 日本人妻熟妇久久久久久| 久久国产日本精品| 欧美另类极品videosbestfree| av直播在线观看| 成人综合日日夜夜| 色视频欧美一区二区三区| 一本二本三本亚洲码| 日本成人一区| 成人精品亚洲人成在线| 国产精品永久免费观看| 日韩精品一区二区三区国语自制| 婷婷综合五月| 一区二区欧美日韩视频| 中文字幕精品久久久| 警花av一区二区三区| 91九色02白丝porn| av免费观看网| 青草在线视频| 综合分类小说区另类春色亚洲小说欧美 | 香蕉久久久久久久| 欧美激情影院| 精品欧美乱码久久久久久| 国产美女视频免费看| julia一区二区三区中文字幕| 亚洲成人免费在线观看| 日韩精品福利片午夜免费观看| 成人av电影观看| 久久亚洲精品小早川怜子| 国产欧美精品一区二区三区| www香蕉视频| 韩国成人福利片在线播放| 国产精品久久久久久久天堂| 亚洲综合久久网| 一区二区三区精品视频在线观看| 欧美日韩高清在线观看| av成人免费网站| 91精品国产视频| 爱福利视频一区| 午夜三级在线观看| 亚洲精品电影| 美女扒开尿口让男人操亚洲视频网站| 国产成人在线网址| 久久一区91| 日韩在线观看免费高清完整版| 99国产精品免费| 成人在线免费观看91| 亚洲性线免费观看视频成熟| 久久久久久久久久久久| 国产成人1区| 亚洲少妇中文在线| 成年人在线免费看片| 不卡在线一区| 久久精品中文字幕一区| 国产大学生自拍| 亚洲成人中文| 欧美在线xxx| 蜜臀99久久精品久久久久小说| 日韩精品免费视频人成| 国产精品视频一区二区三区四| 亚洲天堂777| 国产伦精品一区二区三区免费| 亚洲伊人一本大道中文字幕| 亚洲精品久久久久久久久久久久久久 | 国产高清视频网站| 宅男噜噜噜66国产精品免费| 91精品国产一区二区三区| 精品人妻人人做人人爽夜夜爽| 亚洲一区二区免费在线观看| 亚洲国产精品va在线看黑人| 久久99久久99| 国产欧美一区在线| 神马影院午夜我不卡影院| 最新97超碰在线| 亚洲美女淫视频| 国产精品久久久久久久乖乖| 日韩av影片| 欧美视频三区在线播放| 亚洲制服在线观看| 久久久精品国产**网站| 一区二区三区视频观看| 日本少妇高清视频| 一区二区三区高清视频在线观看| 国产精品美女免费视频| www天堂在线| 国产午夜精品久久久久久免费视| 波多野结衣三级在线| 2021天堂中文幕一二区在线观| 色噜噜久久综合| 久久久久无码精品| 欧美热在线视频精品999| 久久国产精品久久久久久久久久| 国产午夜精品无码一区二区| 奇米一区二区三区| 国产精品视频免费观看| 香蕉视频网站在线观看| 婷婷激情综合网| 亚洲欧美日本一区二区三区| 欧美爱爱网站| 欧美人交a欧美精品| 在线免费一区二区| 成人av午夜影院| 三级网在线观看| 在线观看欧美日韩电影| 日韩午夜在线观看| 国产午夜精品久久久久久久久| 亚洲国内自拍| 亚洲伊人第一页| 992tv免费直播在线观看| 午夜a成v人精品| 久久精品一二三四| 日韩在线第七页| 国产97人人超碰caoprom| 超碰人人人人人人| 亚洲日本成人在线观看| 午夜免费一区二区| 亚洲欧洲免费| 性色av一区二区三区| 国产v片在线观看| 国产精品久久久久aaaa| 999精品视频在线| 亚洲精品aaaaa| 国自在线精品视频| www.日韩在线观看| 亚洲色图欧美激情| 在线能看的av网站| 久久视频在线| 国产精品视频白浆免费视频| 国产日韩精品在线看| 黑人狂躁日本妞一区二区三区| 美女被艹视频网站| 久久久久久美女精品| 国产美女高潮久久白浆| 黄色在线网站| 色噜噜偷拍精品综合在线| 无码人妻精品一区二区三应用大全| 狠狠入ady亚洲精品经典电影| 国产欧美一区二区三区久久人妖 | 久久99精品久久久久久久久久久久| 久久亚洲高清| 中文字幕不卡三区视频| 日韩精品极品在线观看| 日本中文字幕在线免费观看| 9人人澡人人爽人人精品| 麻豆tv在线播放| 狼人天天伊人久久| 欧美一区三区三区高中清蜜桃| 五月激情婷婷网| 精品国产91乱高清在线观看| 国产伦精品一区二区三区妓女| 99精品视频免费| 欧美成ee人免费视频| 亚洲成人一区在线观看| 色999日韩欧美国产| 国产区精品在线| 亚洲国产一区视频| 超碰男人的天堂| 性色一区二区三区| 三级三级久久三级久久18| 欧美成人免费全部网站| 美日韩精品视频免费看| 日本高清视频www| 色综合久久久久网| 熟女少妇a性色生活片毛片| 国产一区二区女| 人人妻人人做人人爽| 精品国产a一区二区三区v免费| 国产精品中文字幕久久久| 羞羞的视频在线观看| 亚洲激情电影中文字幕| 中文字幕一二区| 一区二区在线观看免费 | 91丨porny丨在线中文 | 久久国产黄色片| 国产精品―色哟哟| 日本中文字幕在线不卡| 亚洲一区网站| 亚洲一区三区| 国产精品高潮呻吟久久久久 | 巨胸喷奶水www久久久| 久热99视频在线观看| 日韩在线视频免费| 欧美午夜理伦三级在线观看| 18精品爽视频在线观看| 国产女人18水真多18精品一级做 | 成人高清在线视频| 亚洲成人福利在线| 亚洲三级色网| 伊人精品久久久久7777| 精品淫伦v久久水蜜桃| 成人黄色av网站| 欧美一区国产| 色综合久久中文字幕综合网小说| 免费观看成年在线视频网站| 欧美一卡二卡在线观看| 无码人妻精品一区二区蜜桃色欲| 亚洲天堂成人在线观看| 精品成人av一区二区三区| 国产精品99久久久久久宅男| 日韩免费毛片视频| 黄色免费成人| 在线视频亚洲自拍| 神马影视一区二区| 国产一区精品在线| 日本一区二区乱| 国产精品欧美激情在线播放| 美女高潮在线观看| 久久99精品国产99久久6尤物| 国产二区在线播放| 亚洲美女又黄又爽在线观看| 99热这里只有精品在线| 欧美日精品一区视频| 精品免费囯产一区二区三区| 亚洲永久精品国产| 紧身裙女教师波多野结衣| 国产欧美日韩不卡| 双性尿奴穿贞c带憋尿| 成人高清免费观看| 亚洲最大视频网| 国内不卡的二区三区中文字幕 | 国产精品久久久久av电视剧| 91超碰中文字幕久久精品| 日本天码aⅴ片在线电影网站| 久久精品视频网站| 9i精品一二三区| 一区二区欧美激情| 成年人在线观看网站| 亚洲人成在线电影| 毛片免费在线观看| 亚洲老司机av| 日本又骚又刺激的视频在线观看| 亚洲国产精彩中文乱码av| 囯产精品久久久久久| 欧美一级精品在线| 精品国产av一区二区| 日韩欧美在线网站| 国产wwwxxx| 日韩欧美亚洲另类制服综合在线| 国产精品无码天天爽视频| 91精品久久久久久蜜臀| 国产精品一区二区三区在线免费观看 | 国产超碰在线一区| 国产高潮失禁喷水爽到抽搐| 成人毛片视频在线观看| 人体私拍套图hdxxxx| 91蜜桃网址入口| a天堂中文字幕| 国产拍揄自揄精品视频麻豆| 超碰人人人人人人人| 中文字幕视频一区| 久久久久久久久久网站| 亚洲第一搞黄网站| 伊人中文字幕在线观看 | 欧美精品激情视频| av色在线观看| 日本久久久久亚洲中字幕| 日韩高清成人| 国产乱肥老妇国产一区二| 国产精品亚洲欧美一级在线| 99久久伊人精品影院| 农村少妇一区二区三区四区五区| 欧美伦理一区二区| 婷婷综合久久| 欧美久久久久久久久久久久久| 性感少妇一区| 国产欧美精品一二三| 成人免费视频国产在线观看| 国产三级国产精品| 国产精品视频一区二区三区不卡| 唐朝av高清盛宴| 日韩欧美中文第一页| 国产一区二区波多野结衣 | 日本午夜精品理论片a级appf发布| 日韩免费小视频| 亚洲自拍偷拍区| 视频小说一区二区| 亚洲欧美电影在线观看| 国产一区清纯| 一区二区xxx| 成人激情文学综合网| 国产视频三区四区| 亚洲精品国久久99热| 99久久久无码国产精品免费蜜柚| 欧美一区二区三区视频在线观看| 人妻偷人精品一区二区三区| 国产亚洲精品久久久久久牛牛 | 中文字幕一区二区视频| 日韩网红少妇无码视频香港| 欧美三级电影一区| 色婷婷av一区二区三区之e本道| 亚洲色图50p| 黑人玩欧美人三根一起进| 国产精品高潮呻吟久久av黑人| 成人福利一区| 永久久久久久| 久久免费高清| 亚洲日本久久久| 国产精品久久久久久久久久免费看| 日本中文字幕免费| 欧美一区二区三级| 都市激情一区| 538国产精品视频一区二区| 日韩在线亚洲| 精品少妇人妻av一区二区| 久久狠狠一本精品综合网| xxxx国产视频| 亚洲人成精品久久久久久| 中文字幕一区二区三区四区欧美| 精品精品国产高清a毛片牛牛 | 国产日韩影视精品| 99热国产在线观看| 欧美大片免费久久精品三p| 天天影视久久综合| 国产成人免费av电影| 偷拍亚洲色图| 国产超级av在线| www.成人网.com| 久久久91视频| 日韩一区二区在线免费观看| 久久日韩视频| 成人黄色免费网站在线观看| 色综合久久一区二区三区| 欧美黄色一级片视频| 91蝌蚪porny成人天涯| 国产无精乱码一区二区三区| 欧美哺乳videos| 日韩三级免费| 超碰97在线资源| 亚洲网址在线| 亚洲天堂美女视频| 精品久久久久久国产91| 日本精品久久久久久| 韩国19禁主播vip福利视频| 国产精东传媒成人av电影| 国产免费内射又粗又爽密桃视频| 国产在线不卡一区| 欧美人禽zoz0强交| 日韩一区二区免费电影| 在线观看午夜av| 国产91视觉| 亚洲美女啪啪| 法国伦理少妇愉情| 色狠狠av一区二区三区| 成人在线高清视频| 国产精品亚洲自拍| 91成人精品| 亚洲成人福利视频| 亚洲一区二区美女| 天天av天天翘| 国产精品高潮呻吟视频| 欧美黄色大片在线观看| 三级网站免费看| 一区二区不卡在线播放| 亚洲AV无码精品自拍| 97国产suv精品一区二区62| 免费久久久久久久久| 国产又大又黄又猛| 亚洲免费资源在线播放| 亚洲乱码精品久久久久..| 亚州欧美日韩中文视频| 国产毛片一区二区三区| 欧美激情第3页| 亚洲一区二三区| 色网站在线免费观看| 国产精国产精品| 久久久久蜜桃| 国产中文字幕一区二区| 欧美性猛交xxxx乱大交退制版| 国产在线激情| 精品日产一区2区三区黄免费| 蜜臀va亚洲va欧美va天堂| 唐朝av高清盛宴| 亚洲欧美制服中文字幕| 999精品嫩草久久久久久99| 国产精品www在线观看| 国产视频一区在线播放| 国产麻豆免费观看| 国产69久久精品成人看| 97精品视频在线看| 国产精品无码在线| 欧美精品在线视频| 国产调教在线| 公共露出暴露狂另类av| 91美女片黄在线观看| av 一区二区三区| 热re91久久精品国99热蜜臀|