日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

elasticsearch实现读写分离

發布時間:2023/12/4 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch实现读写分离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

今天我們不講三國,我們講一講elasticsearch(以下簡稱ES)讀寫分離,這是個好東西,全文索引的時候使用它賊得勁,對elasticsearch索引原理不太清楚的,請自行查找相關的文章

這里不做闡述,最近我在網上找了好多,可是關于elasticsearch讀寫分離的文章確實少之又少,因為es不想MySQL那樣的數據庫有主從復制的機制,使用mycat等第三方的插件

也可以實現讀寫分離的效果;所以我們要根據es的分片的機制去實現讀寫分離,具體的原理如下圖所示:

圖畫的比較丑,我這里再詳細說明一下

1、首先我們需要配置es集群的配置文件,讓es集群分為hot和cool兩個區

2、然后我們在導入數據到es集群之前,首先需要創建settings,在創建settings的時候,我們需要指定分片全部分到hot區、副本數為0(增加導入數據的速度),

3、導入數據到es,這樣我們導入數據的時候就是在hot區進行的

4、調整副本數為1,這樣是為了后面的操作

5、修改settings,指定分區為cool區,這樣數據就會復制到cool區

6、讀取數據,這樣我們讀取數據的時候就會從cool區去讀取了

ES集群環境

IP地址

端口

Es版本號

分區

10.122.33.103

9202/9302

6.4.2

Hot

10.122.33.104

9202/9302

6.4.2

hot

10.122.33.96

9202/9302

6.4.2

Cool

10.122.33.97

9202/9302

6.4.2

Cool

10.122.33.97

9202/9302

6.4.2

Cool

#######################################

配置流程

Elasticsearch配置文件:

首先我們需要配置es集群的配置文件(以下只列出了讀寫分離所需要的配置):

#指定node的屬性標簽名(也就是上面說的分區名)

node.attr.rack: hot

#強制使分片與副本分離。若只有hot標簽的節點,索引只有分片可以寫入,副本無法分配;若有hot、cool兩種標簽節點,相同分片與其副本絕不在相同標簽節點上

cluster.routing.allocation.awareness.force.rack.values: hot,cool

cluster.routing.allocation.awareness.attributes: rack

指定分片分到hot區

#創建索引setting,指定分片在那個分區上(index_test1為索引名)

curl -H "Content-Type: application/json" -XPUT 'http://10.122.33.103:9202/ dm_transaction_service_sum /' -d '{

"settings" : {

"index.routing.allocation.require.rack": "hot",

"number_of_replicas" : 0

}

}'

#查看分片的情況(從查看分片的信息我們可以看到,默認的五個分片都在hot區)

導入數據到hot區

#插入數據到es

按照上面分片的結果,可以知道所有的寫操作都在103和104兩臺機器上

更改副本數

#更改副本數為1

curl -H "Content-Type: application/json" -XPUT 'http://10.122.33.103:9202/ dm_transaction_service_sum_v20190114_new /_settings' -d '{

"number_of_replicas" : 1

}'

指定分片分區為cool

#把分片都挪到cool分區上,供后續索引查詢使用

curl -H "Content-Type: application/json" -XPUT 'http://10.122.33.103:9202/ dm_transaction_service_sum_v20190114_new /_settings' -d '{

"index.routing.allocation.require.rack": "cool",

"number_of_replicas" : 0

}'

#查看集群分片的情況(現在所有的分片都在cool分區上)

怎么樣,看到這里,應該明白了es讀寫分離了吧!!!!

如果您覺得我的文章對你有一定的幫助,幫我點個贊偶

總結

以上是生活随笔為你收集整理的elasticsearch实现读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。