2019-07-09 《Kibana》安裝 -《Elasticsearch 》總結(jié)

精彩回顧

mongo

1. sql和nosql區(qū)別
2. 應(yīng)用常見

  • 用戶評論
  • 游戲裝備
  • 問卷調(diào)查
  • 日志

3. mongo特點(diǎn)
4. 安裝部署
5. 配置文件
6. CURD增刪改查
7. 用戶授權(quán)

  • agmin root 角色
  • 自定義 read write 角色

8. 副本集

  • 創(chuàng)建目錄
  • 修改配置
  • 啟動所有節(jié)點(diǎn)
  • 初始化副本集配置參數(shù)
  • 測試主從復(fù)制是否正常
  • 模擬故障轉(zhuǎn)移
  • 擴(kuò)容和收縮
  • 權(quán)重調(diào)整和主庫降級
  • 仲裁節(jié)點(diǎn)

9. 備份恢復(fù)

  • 全備
  • oplog備份
  • mysql導(dǎo)出csv含潘,導(dǎo)入到mongo

10. 模擬誤刪除操作

  • 全備
  • 模擬誤刪除
  • 備份oplog
  • 切換到local下,查找誤刪除語句的時(shí)間點(diǎn)
  • 處理備份文件
  • 恢復(fù)到誤操作時(shí)間點(diǎn)以前
  • 檢驗(yàn)數(shù)據(jù)是否恢復(fù)成功

《Elasticsearch》

1. 什么是搜索
  • 百度
  • 淘寶、京東
2. 如果用數(shù)據(jù)庫做搜索會怎么樣
  • 天氣
  • 關(guān)鍵詞
  • 全表掃描(掃描) 例:老男孩教育 ---> 老%%教育 、 老教育%
3. 什么是全文檢索藻烤,倒排索引和Lucene
  • 根據(jù)匹配的優(yōu)先級順序推送搜索的數(shù)據(jù)信息
4. 什么是Elasticsearch
  • 分布式搜索分析引擎,它被用作全文檢索、結(jié)構(gòu)化搜索窄绒、分析以及這三個(gè)功能的組合
  • Java 開發(fā)語言
  • 底層是 Lucene 引擎
5. Elasticsearch 功能

(1)分布式的搜索引擎和數(shù)據(jù)分析引擎
搜索:站內(nèi)搜索,商城商品的檢索
數(shù)據(jù)分析:電商網(wǎng)站崔兴,最近7天牙膏這種商品銷量排名前10的商家有哪些彰导;新聞網(wǎng)站:最近1個(gè)月訪問量排名前3的新聞板塊

(2)全文檢索,結(jié)構(gòu)化檢索敲茄,數(shù)據(jù)分析
全文檢索:


image.png

(3)對海量數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理

6. Elasticsearch應(yīng)用場景
  • 網(wǎng)頁搜索
  • 新聞搜索
  • 商品標(biāo)簽
  • 日志收集分析展示

高亮位谋、推薦搜索

Stack Overflow(國外的程序員常討論論壇),IT問題堰燎,程序的報(bào)錯(cuò)掏父,提交上去,有人會給你討論和回答秆剪,全文檢索赊淑,搜索相關(guān)問題和答案,程序報(bào)錯(cuò)了鸟款,就會將報(bào)錯(cuò)信息粘貼到里面去膏燃,搜索有沒有對應(yīng)的答案

GitHub(開源代碼管理)茂卦,搜索上千億行代碼

7. Elasticsearch特點(diǎn)
image.png
  • 適合搜索
  • 全文檢索
  • 分析數(shù)據(jù)
  • 處理海量數(shù)據(jù)PB
  • 高可用性能分布式搜索引擎數(shù)據(jù)庫
8. Elasticsearch數(shù)據(jù)格式
image.png

9. 安裝部署

image.png
9.1 下載安裝軟件
# mkdir  -p /data/es_soft/
# cd /data/es_soft/
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
yum install elasticsearch-6.6.0.rpm -y
# rpm -ivh elasticsearch-6.6.0.rpm

9.2 配置啟動
[root@db01 /data/soft]# systemctl daemon-reload

[root@db01 /data/soft]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

[root@db01 /data/soft]# systemctl start elasticsearch.service

[root@db01 /data/soft]# systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-07-09 10:07:45 CST; 6s ago
     Docs: http://www.elastic.co
 Main PID: 2172 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─2172 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSIn...
           └─2227 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux...

Jul 09 10:07:45 db01 systemd[1]: Started Elasticsearch.
Jul 09 10:07:45 db01 systemd[1]: Starting Elasticsearch...
Jul 09 10:07:45 db01 elasticsearch[2172]: OpenJDK 64-Bit Server VM warning...N
Hint: Some lines were ellipsized, use -l to show in full.

[root@db01 /data/soft]# systemctl is-active elasticsearch.service
active

9.3 檢查是否啟動成功
ps -ef|grep elastic

[root@db01 /data/soft]# lsof -i:9200
COMMAND  PID          USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    2172 elasticsearch  190u  IPv6  32647      0t0  TCP localhost:wap-wsp (LISTEN)
java    2172 elasticsearch  191u  IPv6  32648      0t0  TCP localhost:wap-wsp (LISTEN)

[root@db01 /data/soft]# curl localhost:9200
{
  "name" : "Hb7dC06",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "G-HeEmHjTw6i--lH_qPJhA",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"

9.4 查看配置文件位置
[root@db01 /data/soft]# rpm -qc elasticsearch
/etc/elasticsearch/elasticsearch.yml      # 主配置文件
/etc/elasticsearch/jvm.options            # java虛擬機(jī)配置
/etc/init.d/elasticsearch                 # init.d啟動腳本
/etc/sysconfig/elasticsearch              # 環(huán)境變量相關(guān)信息何什,不需要?jiǎng)?/usr/lib/sysctl.d/elasticsearch.conf      # 環(huán)境變量相關(guān)
/usr/lib/systemd/system/elasticsearch.service    # systemd啟動腳本

9.5 調(diào)整配置
[root@db01 ~]# vim /etc/elasticsearch/jvm.options

-Xms1g
-Xmx1g


1.不要超過30G
官網(wǎng)  https://www.elastic.co/cn/

9.6 調(diào)整elasticsearch 配置
> 配置文件調(diào)整后參數(shù)信息
[root@db01 ~]# grep "^[a-z]" /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 10.0.0.51 
http.port: 9200

> 創(chuàng)建目錄并授權(quán)
mkdir /data/elasticsearch/ -p 
chown -R elasticsearch:elasticsearch /data/elasticsearch/

> 重新啟動
systemctl stop elasticsearch
systemctl start elasticsearch

> 連接報(bào)錯(cuò)
[root@db01 ~]# curl 10.0.0.51:9200
curl: (7) Failed connect to 10.0.0.51:9200; Connection refused

> 查看日志報(bào)錯(cuò)信息:(內(nèi)存鎖定)
[root@db01 ~]# tail -f /var//log/elasticsearch/elasticsearch.log
[2019-07-09T11:26:31,187][ERROR][o.e.b.Bootstrap          ] [node-1] node validation exception
[1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked

> 解決辦法:(參考 https://www.elastic.co/guide/en/elasticsearch/reference/6.6/setting-system-settings.html#systemd)
systemctl edit elasticsearch
[Service]
LimitMEMLOCK=infinity

systemctl daemon-reload
systemctl stop elasticsearch
systemctl start elasticsearch

> 重新檢查:OK
[root@db01 ~]# curl 10.0.0.51:9200
{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "jH94pzHNTSqbFdOYFSDvgw",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}


============= 啟動報(bào)錯(cuò)總結(jié):============= 

1.配置文件沒有任何修改
2.配置文件沒有修改IP地址
3.系統(tǒng)內(nèi)存只有1個(gè)G,啟動失敗
4.配置文件參數(shù)拼寫錯(cuò)誤等龙,啟動失敗
5.忘記修改內(nèi)存鎖定处渣,啟動失敗

9.7 es-head安裝部署
[root@db01 ~]# yum install nodejs npm openssl screen -y

[root@db01 ~]# node -v
v6.17.1

[root@db01 ~]# npm -v
3.10.10

# npm install -g cnpm --registry=https://registry.npm.taobao.org
[root@db01 ~]# tar zxvf elasticsearch-head.tar.gz -C /opt/
cd /opt/elasticsearch-head
npm run start & 


修改es配置文件
vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true 
http.cors.allow-origin: "*"

重啟es
systemctl stop elasticsearch
systemctl start elasticsearch

網(wǎng)頁打開
10.0.0.51:9100
輸入
http://10.0.0.51:9200

image.png
image.png
image.png

![Q51M@S$7)LPPK8[([QCN.png

副本 補(bǔ)齊

分片 補(bǔ)齊


《Kibana 安裝》

1. 配置啟動文件
[root@db01 ~]# grep "^[a-Z]" /etc/kibana/kibana.yml 
server.port: 5601
server.host: "10.0.0.51"
server.name: "db01"
elasticsearch.hosts: ["http://localhost:9200"]

2.啟動
[root@db01 ~]# systemctl start kibana

檢查端口
[root@db01 ~]# netstat -lnp|grep 5601
tcp        0      0 10.0.0.51:5601          0.0.0.0:*               LISTEN      2362/node

3. 連接
image.png

《中文分詞器安裝》

1.版本要對應(yīng)
2.所有的ES節(jié)點(diǎn)都需要安裝
3.所有es節(jié)點(diǎn)都需要重啟

安裝(有幾個(gè)els節(jié)點(diǎn)安裝幾個(gè))
[root@db01 ~]# cd /usr/share/elasticsearch/bin

[root@db01 /usr/share/elasticsearch/bin]# ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y    #按 y 確認(rèn)
-> Installed analysis-ik

重啟 elasticsearch
[root@db01 ~]# systemctl restart elasticsearch

image.png
分詞器測試
創(chuàng)建索引:
curl -XPUT http://localhost:9200/index

創(chuàng)建映射:
curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d'
{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word"
            }
        }
}'

創(chuàng)建一些文檔:
curl -XPOST http://localhost:9200/index/fulltext/1 -H 'Content-Type:application/json' -d'
{"content":"美國留給伊拉克的是個(gè)爛攤子嗎"}
'
curl -XPOST http://localhost:9200/index/fulltext/2 -H 'Content-Type:application/json' -d'
{"content":"公安部:各地校車將享最高路權(quán)"}
'
curl -XPOST http://localhost:9200/index/fulltext/3 -H 'Content-Type:application/json' -d'
{"content":"中韓漁警沖突調(diào)查:韓警平均每天扣1艘中國漁船"}
'
curl -XPOST http://localhost:9200/index/fulltext/4 -H 'Content-Type:application/json' -d'
{"content":"中國駐洛杉磯領(lǐng)事館遭亞裔男子槍擊 嫌犯已自首"}
'

查詢:
curl -XPOST http://localhost:9200/index/fulltext/_search?pretty  -H 'Content-Type:application/json' -d'
{
    "query" : { "match" : { "content" : "中國" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}
'

《elasticsearch》學(xué)習(xí)回顧

1. 什么叫搜索

2. 為什么mysql不適合全文檢索

3. 什么是全文檢索倒排索引打分

4. es的應(yīng)用場景

5. es特點(diǎn)

  • 分布式、高可用蛛砰、搜索分析

6. es安裝部署

  • java環(huán)境
  • 內(nèi)存不能小于1G
  • 磁盤空間充足
  • 配置文件開啟內(nèi)存鎖定
  • jvm虛擬機(jī)最大最小內(nèi)存都一樣
  • 綁定內(nèi)網(wǎng)IP和本地IP(工作場景只需要綁定內(nèi)網(wǎng)IP)

7. 解決內(nèi)存鎖定

  • 配置文件增加允許內(nèi)存鎖定參數(shù)
  • 重啟es

8. 測試

  • ps -ef | grep elasticearch
  • ss -lnp | grep 9200
  • netstat -lnp | grep 9200

9. 開放防火墻端口

  • 9200
  • 9300(通信端口)

10. 安裝 es-head 插件

  • 安裝包 npm
  • chrome 瀏覽器插件
  • 先壓縮罐栈,再解壓

11. 概念

  • index ---> 庫
  • type ---> 表
  • doc ---> 行數(shù)據(jù)
  • fields ---> 字段
  • shards ---> 分片,分庫分表

12. 操作命令 CRUD

  • put get post delete

13. 集群配置(生產(chǎn)環(huán)境的標(biāo)配)

cluster.name: linux58           / 集群模式泥畅,必須打開荠诬,同一個(gè)進(jìn)群要全部一樣
node.name: node-1               / 節(jié)點(diǎn)名稱,每個(gè)節(jié)點(diǎn)都不一樣
path.data: /data/elasticsearch          / 如果你更換了目錄,要授權(quán)給es用戶和組
path.logs: /var/log/elasticsearch       / 如果是集群模式柑贞,日志名為{集群名.log}
bootstrap.memory_lock: true             / 內(nèi)存鎖定方椎,一定要打開,然后修改system配置
network.host: 10.0.0.51,127.0.0.1       / 綁定內(nèi)網(wǎng)IP钧嘶,本地IP可以選擇不做
http.port: 9200                 / 默認(rèn)9200棠众,還有一個(gè)隱藏的通信端口 9300
discovery.zen.ping.unicast.hosts: ["10.0.0.51", "10.0.0.52","10.0.0.53"]         / 集群發(fā)現(xiàn)地址,只要包含自己和集群內(nèi)任意一個(gè)節(jié)點(diǎn)就可以
discovery.zen.minimum_master_nodes: 1         / 選舉相關(guān)參數(shù)有决,多數(shù)節(jié)點(diǎn)數(shù)量 node/2 + 1
http.cors.enabled: true         / 為了讓es-head 可以訪問es闸拿,同下
http.cors.allow-origin: "*"     / 為了讓es-head 可以訪問es,同上

14. 介紹集群的相關(guān)重要信息

  • 分片數(shù)和副本數(shù)
  • 默認(rèn)創(chuàng)建索引為5分片书幕,1副本
  • 分片一旦創(chuàng)建好就不能更改了
  • 副本數(shù)可以隨時(shí)動態(tài)調(diào)整
  • 集群健康狀態(tài)
    -- red ---> 有數(shù)據(jù)不完整了
    -- yellow ---> 數(shù)據(jù)都完整新荤,但是有索引的副本或者分片狀態(tài)不正常
    -- green ---> 數(shù)據(jù)都完整,副本也符合條件
  • 監(jiān)控節(jié)點(diǎn)數(shù)量

15.模擬故障現(xiàn)象

  • 停掉服務(wù)器台汇,觀察集群狀態(tài)
  • 要注意迟隅,不能短時(shí)間內(nèi)連續(xù)壞多臺
  • 要注意,不餓能短時(shí)間關(guān)閉重啟多個(gè)回合
  • 如果是0副本励七,數(shù)據(jù)所在的哪臺機(jī)器智袭,不能壞掉,不然數(shù)據(jù)會丟失

16. kibana 管理 es 集群

  • 打開監(jiān)控功能
  • DevTools 可以方便執(zhí)行命令

17. 中文分詞器

  • 所有es節(jié)點(diǎn)都安裝
  • 所有es節(jié)點(diǎn)安裝完成后要重啟才能生效
  • 先創(chuàng)建索引
  • 在創(chuàng)建映射關(guān)系(類似于mysql建表語句)
  • 然后指定使用中文分詞器
  • 搜索測試
錯(cuò)誤記錄1
[2019-07-10T11:03:08,175][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node
[2019-07-10T11:03:38,181][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node
[2019-07-10T11:04:08,192][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node

解決方法:
磁盤空間不足掠抬,刪除一部分?jǐn)?shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吼野,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子两波,更是在濱河造成了極大的恐慌瞳步,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腰奋,死亡現(xiàn)場離奇詭異单起,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)劣坊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門嘀倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人局冰,你說我怎么就攤上這事测蘑。” “怎么了康二?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵碳胳,是天一觀的道長。 經(jīng)常有香客問我沫勿,道長挨约,這世上最難降的妖魔是什么味混? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诫惭,結(jié)果婚禮上惜傲,老公的妹妹穿的比我還像新娘。我一直安慰自己贝攒,他們只是感情好盗誊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隘弊,像睡著了一般哈踱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梨熙,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天开镣,我揣著相機(jī)與錄音,去河邊找鬼咽扇。 笑死邪财,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的质欲。 我是一名探鬼主播树埠,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘶伟!你這毒婦竟也來了怎憋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤九昧,失蹤者是張志新(化名)和其女友劉穎绊袋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铸鹰,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡癌别,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹋笼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片展姐。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖姓建,靈堂內(nèi)的尸體忽然破棺而出诞仓,到底是詐尸還是另有隱情,我是刑警寧澤速兔,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站活玲,受9級特大地震影響涣狗,放射性物質(zhì)發(fā)生泄漏谍婉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一镀钓、第九天 我趴在偏房一處隱蔽的房頂上張望穗熬。 院中可真熱鬧,春花似錦丁溅、人聲如沸唤蔗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妓柜。三九已至,卻和暖如春涯穷,著一層夾襖步出監(jiān)牢的瞬間棍掐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工拷况, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留作煌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓赚瘦,卻偏偏與公主長得像粟誓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子起意,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容