微信公衆號:[中間件興趣圈]
做者簡介:《RocketMQ技術內幕》做者node
索引的配置項按是否能夠更改分爲static屬性與動態配置,所謂的靜態配置即索引建立後不能修改。mysql
分析模塊相關配置參數,將在後續分析模塊部分介紹。算法
索引分片分配相關參數。這部份內容將在Cluster(集羣模塊詳細介紹)。sql
字段映射相關參數,詳情請參考:Elasticsearch Mapping parameters(主要參數一覽)數據庫
後臺分片合併進程相關配置參數。微信
類似性相關配置,這個後續可能會以專題介紹,暫不深究。多線程
慢查詢日誌相關配置。併發
首先ES提供在查詢階段(query)和數據獲取階段(fetch)設置闊值,超過該闊值則記錄日誌。
支持以下參數:app
1index.search.slowlog.threshold.query.warn: 10s 2index.search.slowlog.threshold.query.info: 5s 3index.search.slowlog.threshold.query.debug: 2s 4index.search.slowlog.threshold.query.trace: 500ms
上述參數定義查詢階段的闊值,分別表示,若是執行時間超過10s,打出警告日誌,超過5s輸出info級別日誌。運維
1index.search.slowlog.threshold.fetch.warn: 1s 2index.search.slowlog.threshold.fetch.info: 800ms 3index.search.slowlog.threshold.fetch.debug: 500ms 4index.search.slowlog.threshold.fetch.trace: 200ms
上述參數定義查詢獲取數據(fetch)的闊值,分別表示,若是執行時間超過1s,打出警告日誌,超過800ms輸出info級別日誌。
index.search.slowlog.level: info
定義日誌輸出級別爲info,也就是hdebug,trace級別的日誌不輸出。
注意:上述日誌級別爲分片級日誌。
上述參數定義了日誌輸出級別,那接下來還須要在log4j文件中定義日誌輸出器,日誌輸出文件路徑等,其相關配置以下:
1appender.index_search_slowlog_rolling.type = RollingFile 2appender.index_search_slowlog_rolling.name = index_search_slowlog_rolling 3appender.index_search_slowlog_rolling.fileName = ${sys:es.logs}_index_search_slowlog.log 4appender.index_search_slowlog_rolling.layout.type = PatternLayout 5appender.index_search_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] [%node_name]%marker %.10000m%n 6appender.index_search_slowlog_rolling.filePattern = ${sys:es.logs}_index_search_slowlog-%d{yyyy-MM-dd}.log 7appender.index_search_slowlog_rolling.policies.type = Policies // 文件切割方案,屬於log4j的語法 8appender.index_search_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy // 基於時間切割,log4j還支持按大小切割,其類爲SizeBasedTriggeringPolicy。 9appender.index_search_slowlog_rolling.policies.time.interval = 1 // 1小時切割成一個文件 10appender.index_search_slowlog_rolling.policies.time.modulate = true // 是否修正時間範圍, 若是設置爲true,則從0時開始計數 11 12logger.index_search_slowlog_rolling.name = index.search.slowlog 13logger.index_search_slowlog_rolling.level = trace 14logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref = index_search_slowlog_rolling 15logger.index_search_slowlog_rolling.additivity = false
索引慢日誌。
1index.indexing.slowlog.threshold.index.warn: 10s 2index.indexing.slowlog.threshold.index.info: 5s 3index.indexing.slowlog.threshold.index.debug: 2s 4index.indexing.slowlog.threshold.index.trace: 500ms 5index.indexing.slowlog.level: info 6index.indexing.slowlog.source: 1000
index.indexing.slowlog.source參數用來控制記錄文檔_souce字段字符的個數,默認爲1000,表示只記錄_souce字段的前1000個字符,能夠設置true,表示輸出_souce字段所有內容,設置爲false,表示不記錄_souce字段的內容。
默認狀況下,會對_souce字段的輸出進行格式化,一般使用一行輸出,若是想阻止格式化,能夠經過index.indexing.slowlog.reformat設置爲false來避免。
一樣經過上述屬性定義好闊值,接下來將在logg4j配置文件中定義日誌的輸出。
1appender.index_indexing_slowlog_rolling.type = RollingFile 2appender.index_indexing_slowlog_rolling.name = index_indexing_slowlog_rolling 3appender.index_indexing_slowlog_rolling.fileName = ${sys:es.logs}_index_indexing_slowlog.log 4appender.index_indexing_slowlog_rolling.layout.type = PatternLayout 5appender.index_indexing_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] [%node_name]%marker %.-10000m%n 6appender.index_indexing_slowlog_rolling.filePattern = ${sys:es.logs}_index_indexing_slowlog-%d{yyyy-MM-dd}.log 7appender.index_indexing_slowlog_rolling.policies.type = Policies 8appender.index_indexing_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy 9appender.index_indexing_slowlog_rolling.policies.time.interval = 1 10appender.index_indexing_slowlog_rolling.policies.time.modulate = true 11 12logger.index_indexing_slowlog.name = index.indexing.slowlog.index 13logger.index_indexing_slowlog.level = trace 14logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref = index_indexing_slowlog_rolling 15logger.index_indexing_slowlog.additivity = false
存儲模塊,其主要參數爲:index.store.type,表示存儲類型,該參數爲靜態參數,在索引建立時指定,沒法更改。
其可選值:
因爲Lucene提交的開銷太大,不能每一個單獨變動就提交(刷寫到磁盤),因此每一個分片複製都有一個事務日誌,稱爲translog。全部索引(index)和刪除(delete)操做都是在被內部Lucene索引處理以後(但在它們被確認以前[返回客戶端])寫入translog的。在發生崩潰的狀況下,當分片恢復時,能夠從translog中恢復最近已確認但還沒有包含在上一次Lucene提交中的事務。
Translog日誌有點相似於關係型數據庫mysql的redo日誌。
Translog相關配置參數(索引級別):
關於ES的配置屬性就先介紹到這裏,後續還會對Analysis、Index Shard Allocation、Similarities這三個模塊進行更加詳細的說明。
更多文章請關注微信公衆號:
廣告:做者的新書《RocketMQ技術內幕》已上市《RocketMQ技術內幕》已出版上市,目前可在主流購物平臺(京東、天貓等)購買,本書從源碼角度深度分析了RocketMQ NameServer、消息發送、消息存儲、消息消費、消息過濾、主從同步HA、事務消息;在實戰篇重點介紹了RocketMQ運維管理界面與當前支持的39個運維命令;並在附錄部分羅列了RocketMQ幾乎全部的配置參數。本書獲得了RocketMQ創始人、阿里巴巴Messaging開源技術負責人、Linux OpenMessaging 主席的高度承認並做序推薦。目前是國內第一本成體系剖析RocketMQ的書籍。