原创 Elasticsearch性能優化實踐

1. 前言 Elasticsearch是一款流行的分佈式開源搜索和數據分析引擎,具備高性能、易擴展、容錯性強等特點。它強化了Apache Lucene的搜索能力,把掌控海量數據索引和查詢的方式提升到一個新的層次。本文結合開源社區和

原创 Nginx代理gRPC反向代理和負載均衡配置

1. 前言 根據nginx官網信息,nginx從1.13.10開始原生支持gRPC,所以必須使用1.13.10以上的版本進行NGINX+gRPC框架的部署。 nginx作爲老牌負載均衡軟件對gRPC進行了支持,之前已經可以代理gR

原创 Elasticsearch7.x版本_all與copy_to

1. copy_to _all在7.x版本已經被copy_to所代替,可用於滿足特定場景。copy_to將字段數值拷貝到目標字段,實現類似_all的作用。 注意: copy_to的目標字段不出現在_source中 2. 實例

原创 如何使用 Kerberos 確保您 Elasticsearch 集羣的安全

1. 希臘神話中的三頭猛犬保護您的數據 Elasticsearch 6.4 針對白金級訂閱新增了 Kerberos 身份驗證支持,在轉型爲完全 Kerberos 式 Elastic Stack 的道路上邁出了第一步。Kerbero

原创 Java獲取指定時區的時間戳

1. 前言 本文主要講,在Java中如何通過一個標準格式時間字符串("yyyy-MM-dd HH:mm:ss"),來獲取其對應的各個時區的時間戳信息。 2. 代碼示例 功能代碼: 獲取時間字符串對應的指定時區的時間戳 public

原创 Java8中List去掉重複對象方法

1. List中簡單元素去重(String等) public List<String> removeStringListDupli(List<String> stringList) { Set<String> set =

原创 Elasticsearch中的date與時區問題

1 前言 本文主要講解Elasticsearch中date類型數據的底層存儲原理,以及對帶時區日期字符串和不帶時區的日期字符串如何在ES底層存儲進行驗證。對於直接存儲Long類型時間戳,不作過多描述。 1.1 Date類型數據的存

原创 Java8 ParallelStream返回結果順序問題

1. 前言 之前一直以爲如果是並行流,那麼返回的結果一定是亂序的。其實這是錯誤的。 Stream s = Stream.of("1","2","3","4","5","6","7"); s.parallel().collect(C

原创 Guava 緩存Cache用法介紹

1. 前言 Guava Cache是在內存中緩存數據,相比較於數據庫或redis存儲,訪問內存中的數據會更加高效。Guava官網介紹,下面的這幾種情況可以考慮使用Guava Cache: 願意消耗一些內存空間來提升速度。 預料到

原创 HashMap底層實現原理(下)

1. 前言 上一篇文章我們介紹了HashMap的底層實現,但還遺留了一點內容,我們再回顧一下上一篇文章裏說的內容。 執行完紅框裏的代碼,personMap裏放入了8個元素,放置完成後在堆內存表現如下圖: 如果忽略底層實現細節,

原创 圖解 Kubernetes(k8s)

1. 前言 Kubernetes是Google開源的容器集羣管理系統,提供應用部署、維護、擴展機制等功能,利用Kubernetes能方便地管理跨機器運行容器化得應用。真實的生產環境應用會包含多個容器,而這些容器還很可能會跨越多個服

原创 ElasticSearch - function_score詳解

function_score內容較多,此篇主要是對function_score內容做系統性的講解,之後會出幾篇實際應用的方法,參考以下鏈接 1- ElasticSearch - function_score (field_va

原创 Elasitcsearch寫操作與讀操作底層原理

1. 寫操作(Write):針對文檔的CRUD操作 1.1 索引新文檔(Create) 當用戶向一個節點提交了一個索引新文檔的請求,節點會計算新文檔應該加入到哪個分片(shard)中。每個節點都存儲有每個分片存儲在哪個節點的信息,

原创 Java中new Date().getTime()時間戳問題

1. getTime()返回值 Java和JavaScript都支持時間類型Date,他們的getTime()方法返回的是毫秒數。默認返回的是13位數字,單位是毫秒。 2. 注意事項 /** * Returns the

原创 Java中 if-else if- else語句執行流程

突然間想到這個問題:在if-else if- else語句塊中,如果所有if中的條件都爲真,是每個if對應的語句都執行呢?還是隻執行第一個條件爲真的if對應的語句呢?答案是後者。下面是示例代碼: 由此總結if-else if-