色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ETCD集群的工作原理和高可用技術(shù)細(xì)節(jié)介紹

Linux愛好者 ? 來源:csdn ? 作者:fanren224 ? 2021-02-23 10:54 ? 次閱讀

【導(dǎo)讀】新年快樂!本文介紹了etcd集群的工作原理和高可用技術(shù)細(xì)節(jié)。

etcd 簡介

coreos 開發(fā)的分布式服務(wù)系統(tǒng),內(nèi)部采用 raft 協(xié)議作為一致性算法。作為服務(wù)發(fā)現(xiàn)系統(tǒng),有以下的特點:

簡單:安裝配置簡單,而且提供了 HTTP API 進行交互,使用也很簡單

安全:支持 SSL 證書驗證

快速:根據(jù)官方提供的 benchmark 數(shù)據(jù),單實例支持每秒 2k+ 讀操作

可靠:采用 raft 算法,實現(xiàn)分布式系統(tǒng)數(shù)據(jù)的可用性和一致性

etcd 目前默認(rèn)使用 2379 端口提供 HTTP API 服務(wù),2380 端口和 peers(集群內(nèi)其他節(jié)點)通信

雖然 etcd 也支持單點部署,但是在生產(chǎn)環(huán)境中推薦集群方式部署,一般 etcd 節(jié)點數(shù)會選擇 3、5、7。etcd 會保證所有的節(jié)點都會保存數(shù)據(jù),并保證數(shù)據(jù)的一致性和正確性。

工作原理

每個 etcd cluster 都是有若干個 member 組成的,每個 member 是一個獨立運行的 etcd 實例,單臺機器上可以運行多個 member。

在正常運行的狀態(tài)下,集群中會有一個 leader,其余的 member 都是 followers。leader 向 followers 同步日志,保證數(shù)據(jù)在各個 member 都有副本。leader 還會定時向所有的 member 發(fā)送心跳報文,如果在規(guī)定的時間里 follower 沒有收到心跳,就會重新進行選舉。

客戶端所有的請求都會先發(fā)送給 leader,leader 向所有的 followers 同步日志,等收到超過半數(shù)的確認(rèn)后就把該日志存儲到磁盤,并返回響應(yīng)客戶端。

每個 etcd 服務(wù)有三大主要部分組成:raft 實現(xiàn)、WAL 日志存儲、數(shù)據(jù)的存儲和索引。WAL 會在本地磁盤(就是之前提到的 --data-dir)上存儲日志內(nèi)容(wal file)和快照(snapshot)。

集群規(guī)劃

nameIPHOSTNAME

etcd01192.168.255.131master1

etcd02192.168.255.132master2

etcd03192.168.255.133master3

安裝

在安裝和啟動 etcd 服務(wù)的時候,各個節(jié)點需要知道集群中其他節(jié)點的信息(一般是 ip 和 port 信息)。根據(jù)你是否可以提前知道每個節(jié)點的 ip,有幾種不同的啟動方案:

靜態(tài)配置:在啟動 etcd server 的時候,通過 --initial-cluster 參數(shù)配置好所有的節(jié)點信息

etcd動態(tài)發(fā)現(xiàn):通過已有的etcd集群作為數(shù)據(jù)交互點,然后在擴展新的集群時實現(xiàn)通過已有集群進行服務(wù)發(fā)現(xiàn)的機制。比如官方提供的:discovery.etcd.io

DNS動態(tài)發(fā)現(xiàn): 通過DNS查詢方式獲取其他節(jié)點地址信息。

一般生產(chǎn)環(huán)境都是使用靜態(tài)配置,我們這里也采用這種方法。并配置 SSL來保證通信安全。

1、安裝cfssl

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

chmod +x cfssl_linux-amd64 cfssljson_linux-amd64

mv cfssl_linux-amd64 /usr/local/bin/cfssl

mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

2、創(chuàng)建ca證書,客戶端,服務(wù)端,節(jié)點之間的證書

Etcd屬于server ,etcdctl 屬于client,二者之間通過http協(xié)議進行通信。

ca證書 自己給自己簽名的權(quán)威證書,用來給其他證書簽名

server證書 etcd的證書

client證書 客戶端,比如etcdctl的證書

peer證書 節(jié)點與節(jié)點之間通信的證書

1) 創(chuàng)建目錄

mkdir -p /etc/etcd/pki

cd /etc/etcd/pki

cfssl print-defaults config 》 ca-config.json

cfssl print-defaults csr 》 ca-csr.json

2) 創(chuàng)建ca證書

修改ca-config.json

server auth表示client可以用該ca對server提供的證書進行驗證

client auth表示server可以用該ca對client提供的證書進行驗證

{

“signing”: {

“default”: {

“expiry”: “43800h”

},

“profiles”: {

“server”: {

“expiry”: “43800h”,

“usages”: [

“signing”,

“key encipherment”,

“server auth”,

“client auth”

},

“client”: {

“expiry”: “43800h”,

“usages”: [

“signing”,

“key encipherment”,

“client auth”

},

“peer”: {

“expiry”: “43800h”,

“usages”: [

“signing”,

“key encipherment”,

“server auth”,

“client auth”

}

}

}

}

創(chuàng)建證書簽名請求ca-csr.json

{

“CN”: “etcd”,

“key”: {

“algo”: “rsa”,

“size”: 2048

}

}

生成CA證書和私鑰

# cfssl gencert -initca ca-csr.json | cfssljson -bare ca

# ls ca*

ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem

3) 生成客戶端證書

vim client.json

{

“CN”: “client”,

“key”: {

“algo”: “ecdsa”,

“size”: 256

}

}

生成

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client.json | cfssljson -bare client -

# ls ca*

ca-config.json ca.csr ca-csr.json ca-key.pem ca.pem client-key.pem client.pem

4) 生成server,peer證書

vim etcd.json

{

“CN”: “etcd”,

“hosts”: [

“127.0.0.1”,

“192.168.255.131”,

“192.168.255.132”,

“192.168.255.133”

],

“key”: {

“algo”: “ecdsa”,

“size”: 256

},

“names”: [

{

“C”: “CN”,

“L”: “SH”,

“ST”: “SH”

}

}

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server etcd.json | cfssljson -bare server

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer etcd.json | cfssljson -bare peer

3、安裝etcd二進制文件

wget https://github.com/coreos/etcd/releases/download/v3.1.5/etcd-v3.1.5-linux-amd64.tar.gz

tar -xvf etcd-v3.1.5-linux-amd64.tar.gz

mv etcd-v3.1.5-linux-amd64/etcd* /usr/local/bin

4、service配置文件

vim /usr/lib/systemd/system/etcd.service, 三臺機器配置不一樣,需要替換為相應(yīng)的IP和name。

[Unit]

Description=Etcd Server

After=network.target

After=network-online.target

Wants=network-online.target

Documentation=https://github.com/coreos

[Service]

Type=notify

WorkingDirectory=/var/lib/etcd

ExecStart=/usr/local/bin/etcd

--data-dir=/var/lib/etcd

--name=master1

--cert-file=/etc/etcd/pki/server.pem

--key-file=/etc/etcd/pki/server-key.pem

--trusted-ca-file=/etc/etcd/pki/ca.pem

--peer-cert-file=/etc/etcd/pki/peer.pem

--peer-key-file=/etc/etcd/pki/peer-key.pem

--peer-trusted-ca-file=/etc/etcd/pki/ca.pem

--listen-peer-urls=https://192.168.255.131:2380

--initial-advertise-peer-urls=https://192.168.255.131:2380

--listen-client-urls=https://192.168.255.131:2379,http://127.0.0.1:2379

--advertise-client-urls=https://192.168.255.131:2379

--initial-cluster-token=etcd-cluster-0

--initial-cluster=master1=https://192.168.255.131:2380,master2=https://192.168.255.132:2380,master3=https://192.168.255.133:2380

--initial-cluster-state=new

--heartbeat-interval=250

--election-timeout=2000

Restart=on-failure

RestartSec=5

LimitNOFILE=65536

[Install]

WantedBy=multi-user.target

配置參數(shù)的含義

--name:方便理解的節(jié)點名稱,默認(rèn)為 default,在集群中應(yīng)該保持唯一,可以使用 hostname

--data-dir:服務(wù)運行數(shù)據(jù)保存的路徑,默認(rèn)為 ${name}.etcd

--snapshot-count:指定有多少事務(wù)(transaction)被提交時,觸發(fā)截取快照保存到磁盤

--heartbeat-interval:leader 多久發(fā)送一次心跳到 followers。默認(rèn)值是 100ms

--eletion-timeout:重新投票的超時時間,如果 follow 在該時間間隔沒有收到心跳包,會觸發(fā)重新投票,默認(rèn)為 1000 ms

--listen-peer-urls:和集群內(nèi)其他節(jié)點通信的地址, http://ip:2380,如果有多個,使用逗號分隔。需要所有節(jié)點都能夠訪問,所以不要使用 localhost!

--listen-client-urls:節(jié)點與客戶端通信的地址,比如 http://ip:2379,http://127.0.0.1:2379,客戶端會連接到這里和 etcd 交互

--advertise-client-urls:對外通告的該節(jié)點客戶端監(jiān)聽地址,http://ip:2379,這個值會通知集群中其他節(jié)點

--initial-advertise-peer-urls:節(jié)點與其他節(jié)點通信的地址,會通告給集群的其他成員。這個地址用來傳輸集群數(shù)據(jù)。因此這個地址必須是可以被集群中所有的成員訪問http://ip:2380

--initial-cluster:集群中所有節(jié)點的信息,格式為 node1=http://ip1:2380,node2=http://ip2:2380,…。注意:這里的 node1 是節(jié)點的 --name 指定的名字;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值

--initial-cluster-state:新建集群的時候,這個值為 new;假如已經(jīng)存在的集群,這個值為 existing

--initial-cluster-token:創(chuàng)建集群的 token,這個值每個集群保持唯一。這樣的話,如果你要重新創(chuàng)建集群,即使配置和之前一樣,也會再次生成新的集群和節(jié)點 uuid;否則會導(dǎo)致多個集群之間的沖突,造成未知的錯誤

所有以--initial 開頭的配置都是在 bootstrap(引導(dǎo)) 集群的時候才會用到,后續(xù)節(jié)點重啟時會被忽略。

5、創(chuàng)建存放etcd數(shù)據(jù)的目錄,啟動 etcd

mkdir /var/lib/etcd

systemctl daemon-reload && systemctl enable etcd && systemctl start etcd && systemctl status etcd

6、驗證是否成功

在任意一臺機器(無論是不是集群節(jié)點,前提是需要有etcdctl工具和ca證書,server證書)上執(zhí)行如下命令:

[root@master1] /etc/etcd/pki$ etcdctl --ca-file=/etc/etcd/pki/ca.pem --cert-file=/etc/etcd/pki/server.pem --key-file=/etc/etcd/pki/server-key.pem --endpoints=https://192.168.255.131:2379 cluster-health

2019-01-27 2026.909601 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated

2019-01-27 2026.910165 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated

member 5d7a44f5c39446c1 is healthy: got healthy result from https://192.168.255.132:2379

member e281e4e43dceb752 is healthy: got healthy result from https://192.168.255.133:2379

member ea5e4f12ed162d4b is healthy: got healthy result from https://192.168.255.131:2379

cluster is healthy

如果你沒有指定證書,會報如下錯誤

client: etcd cluster is unavailable or misconfigured; error #0: x509: certificate signed by unknown authority

查看集群成員

[root@master1] /etc/etcd/pki$ etcdctl --ca-file=/etc/etcd/pki/ca.pem --cert-file=/etc/etcd/pki/server.pem --key-file=/etc/etcd/pki/server-key.pem --endpoints=https://192.168.255.131:2379 member list

2019-01-27 2246.914338 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated

5d7a44f5c39446c1: name=master2 peerURLs=https://192.168.255.132:2380 clientURLs=https://192.168.255.132:2379 isLeader=false

e281e4e43dceb752: name=master3 peerURLs=https://192.168.255.133:2380 clientURLs=https://192.168.255.133:2379 isLeader=false

ea5e4f12ed162d4b: name=master1 peerURLs=https://192.168.255.131:2380 clientURLs=https://192.168.255.131:2379 isLeader=true

etcd的使用

HTTP API

etcd 對外通過 HTTP API 對外提供服務(wù),這種方式方便測試(通過 curl 或者其他工具就能和 etcd 交互),也很容易集成到各種語言中(每個語言封裝 HTTP API 實現(xiàn)自己的 client 就行)。

etcdctl 命令行工具

除了 HTTP API 外,etcd 還提供了 etcdctl 命令行工具和 etcd 服務(wù)交互。這個命令行用 go 語言編寫,也是對 HTTP API 的封裝,日常使用起來也更容易。

總結(jié)

etcd 默認(rèn)只保存 1000 個歷史事件,所以不適合有大量更新操作的場景,這樣會導(dǎo)致數(shù)據(jù)的丟失。etcd 典型的應(yīng)用場景是配置管理和服務(wù)發(fā)現(xiàn),這些場景都是讀多寫少的。

相比于 zookeeper,etcd 使用起來要簡單很多。不過要實現(xiàn)真正的服務(wù)發(fā)現(xiàn)功能,etcd 還需要和其他工具(比如 registrator、confd 等)一起使用來實現(xiàn)服務(wù)的自動注冊和更新。一般etcd大多用于配置管理的場景,比如kubernetes。

目前 etcd 還沒有圖形化的工具。

原文標(biāo)題:快速搭建高可用 ETCD 集群

文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209331

原文標(biāo)題:快速搭建高可用 ETCD 集群

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    確保網(wǎng)站無縫運行:Keepalived可用與Nginx集成實戰(zhàn)

    目錄 keepalived可用(nginx) keepalived簡介 keepalived的重要功能 keepalived可用架構(gòu)圖 keepalived
    的頭像 發(fā)表于 11-27 09:08 ?246次閱讀
    確保網(wǎng)站無縫運行:Keepalived<b class='flag-5'>高</b><b class='flag-5'>可用</b>與Nginx集成實戰(zhàn)

    ESD保護器件的工作原理

    損壞。以下是ESD保護器件工作原理介紹: 一、基本工作原理 正常狀態(tài) :當(dāng)電路正常工作時,ESD保護器件處于截止?fàn)顟B(tài)(阻態(tài)),此時它對電
    的頭像 發(fā)表于 11-14 11:16 ?492次閱讀

    深入解析Zephyr RTOS的技術(shù)細(xì)節(jié)

    ,Zephyr OS在嵌入式開發(fā)中的知名度逐漸增加,新的微控制器和開發(fā)板都支持Zephyr。本文將深入討論Zephyr RTOS的技術(shù)細(xì)節(jié)
    的頭像 發(fā)表于 10-22 16:47 ?498次閱讀
    深入解析Zephyr RTOS的<b class='flag-5'>技術(shù)細(xì)節(jié)</b>

    CMOS型LDO的工作原理和特點

    差線性穩(wěn)壓器。它結(jié)合了CMOS技術(shù)集成度、低功耗和低壓差穩(wěn)壓器的穩(wěn)定電壓輸出特性,成為現(xiàn)代電子設(shè)備中廣泛應(yīng)用的電源管理組件。以下將詳細(xì)介紹CMOS型LDO的工作原理、特點、優(yōu)勢、應(yīng)
    的頭像 發(fā)表于 09-11 10:11 ?686次閱讀

    什么是PNP型和NPN型LDO

    PNP型和NPN型LDO(Low Dropout Regulator,低壓差線性穩(wěn)壓器)是兩種常見的穩(wěn)壓器類型,它們各自具有獨特的設(shè)計架構(gòu)和工作特性。以下將分別詳細(xì)介紹這兩種LDO的工作原理、特點、應(yīng)用以及相關(guān)的
    的頭像 發(fā)表于 09-11 10:02 ?557次閱讀

    射頻識別技術(shù)工作原理

    射頻卡)進行讀寫,從而達到識別目標(biāo)和數(shù)據(jù)交換的目的。其工作原理相對復(fù)雜但高效,以下是對RFID技術(shù)工作原理的詳細(xì)闡述。
    的頭像 發(fā)表于 08-13 10:36 ?980次閱讀

    探究雙路或四路可選可編程晶體振蕩器SG-8503CA/SG-8504CA的技術(shù)細(xì)節(jié)及其應(yīng)用

    探究雙路或四路可選可編程晶體振蕩器SG-8503CA/SG-8504CA的技術(shù)細(xì)節(jié)及其應(yīng)用
    的頭像 發(fā)表于 07-23 17:08 ?358次閱讀

    K8S學(xué)習(xí)教程(二):在 PetaExpress KubeSphere容器平臺部署可用 Redis 集群

    前言 Redis 是在開發(fā)過程中經(jīng)常用到的緩存中間件,為了考慮在生產(chǎn)環(huán)境中穩(wěn)定性和可用,Redis通常采用集群模式的部署方式。 在制定Redis集群的部署策略時,常規(guī)部署在虛擬機上的
    的頭像 發(fā)表于 07-03 15:30 ?736次閱讀
    K8S學(xué)習(xí)教程(二):在 PetaExpress KubeSphere容器平臺部署<b class='flag-5'>高</b><b class='flag-5'>可用</b> Redis <b class='flag-5'>集群</b>

    阻無源探頭的工作原理和用途及其使用技巧

    阻無源探頭是電子測量中常用的一種被動探頭,它具有輸入阻抗和無源放大器的特點。本文將介紹阻無源探頭的工作原理、常見用途以及正確的使用技巧
    的頭像 發(fā)表于 06-27 10:37 ?428次閱讀
    <b class='flag-5'>高</b>阻無源探頭的<b class='flag-5'>工作原理</b>和用途及其使用技巧

    LED顯示屏的換幀頻率與刷新頻率:技術(shù)細(xì)節(jié)與市場發(fā)展

    在當(dāng)今數(shù)字化時代,LED顯示屏已成為信息傳遞和廣告宣傳的重要工具。然而,對于普通消費者來說,LED顯示屏背后的技術(shù)細(xì)節(jié)可能仍然是一個謎。今天,我們將深入探討LED顯示屏中的兩個關(guān)鍵概念:換幀頻率和刷新頻率,以及它們之間的關(guān)系,帶領(lǐng)大家了解這些技術(shù)如何影響我們的視覺體驗。
    的頭像 發(fā)表于 06-23 02:22 ?691次閱讀
    LED顯示屏的換幀頻率與刷新頻率:<b class='flag-5'>技術(shù)細(xì)節(jié)</b>與市場發(fā)展

    防美國云服務(wù)器的工作原理是什么?

    防美國云服務(wù)器的工作原理主要基于強化的網(wǎng)絡(luò)防護措施和先進的安全技術(shù)。那么防美國云服務(wù)器的工作原理是什么?Rak部落小編為您整理發(fā)布
    的頭像 發(fā)表于 05-17 10:13 ?295次閱讀

    深入了解目標(biāo)檢測深度學(xué)習(xí)算法的技術(shù)細(xì)節(jié)

    本文將討論目標(biāo)檢測的基本方法(窮盡搜索、R-CNN、FastR-CNN和FasterR-CNN),并嘗試?yán)斫饷總€模型的技術(shù)細(xì)節(jié)。為了讓經(jīng)驗水平各不相同的讀者都能夠理解,文章不會使用任何公式來進行講解
    的頭像 發(fā)表于 04-30 08:27 ?336次閱讀
    深入了解目標(biāo)檢測深度學(xué)習(xí)算法的<b class='flag-5'>技術(shù)細(xì)節(jié)</b>

    聊聊50G PON的技術(shù)細(xì)節(jié)

    今天給大家詳細(xì)說說50GPON的一些技術(shù)細(xì)節(jié)。我盡量用通俗易懂的方式解釋,相信大家看了一定會有收獲。█50GPON的技術(shù)指標(biāo)PON(無源光網(wǎng)絡(luò))是一個接入網(wǎng)技術(shù)。它的核心作用,就類似一個“有線”基站
    的頭像 發(fā)表于 04-30 08:05 ?223次閱讀
    聊聊50G PON的<b class='flag-5'>技術(shù)細(xì)節(jié)</b>

    buck-boost電路工作原理

    將詳細(xì)介紹Buck-boost電路的工作原理。 拓?fù)浣Y(jié)構(gòu) Buck-boost電路采用可變工作周期的控制方式,由一個開/關(guān)MOSFET開關(guān)、一個電感和一個濾波電容組成。這個拓?fù)浣Y(jié)構(gòu)使得Buck-boost電路能夠?qū)?/div>
    的頭像 發(fā)表于 01-10 13:40 ?2606次閱讀

    集群車寶申請破產(chǎn),集群回應(yīng)

     據(jù)悉,由集群創(chuàng)立與領(lǐng)導(dǎo)的集群車寶公司,自2013年開始在廣州扎根,旨在成為汽車后市場產(chǎn)業(yè)互聯(lián)網(wǎng)領(lǐng)域的領(lǐng)導(dǎo)者。集群車寶著眼于數(shù)字化基礎(chǔ)設(shè)施建設(shè),借助S2B2C模式推動汽服門店升級換代
    的頭像 發(fā)表于 01-10 09:40 ?894次閱讀
    主站蜘蛛池模板: 亚洲国产成人爱AV在线播放丿 | 乱淫67194| 久久天天婷婷五月俺也去| 老师的玉足高跟鞋满足我| 男人边吃奶边摸边做刺激情话| 人人射人人插| 午夜免费无码福利视频麻豆| 亚洲欧美中文日韩视频| 在线播放av欧美无码碰| 99精品免费久久久久久久久蜜桃| 刺激一区仑乱| 国产亚洲精品福利视频| 久久中文字幕人妻AV熟女| 亲嘴扒胸摸屁股视频免费网站| 同居了嫂子在线观看| 亚洲免费网站在线观看| 20岁αsrian男同志免费| xx69欧美| 国产亚洲精品免费视频| 伦理片92伦理午夜| 日韩无码在线| 亚洲中久无码永久在线| qvod激情图片| 国外色幼网| 女仆乖H调教跪趴| 亚欧免费观看在线观看更新| 在线亚洲中文精品第1页| 成人1000部免费观看视频| 狠狠爱亚洲五月婷婷av| 欧美久久无码AV麻豆| 亚洲大片免费观看| 99热久这里都是精品小草| 国产精品人妻99一区二| 美女扣逼软件| 午夜理论电影在线观看亚洲| 76人遣返航班上71人呈阳性| 国产对白精品刺激一区二区| 开心片色99xxxx| 小妇人电影免费完整观看2021| 2019午夜75福利不卡片在线| 国产精品嫩草久久久久|