原创 ElasticSearch Snowball token filter

Snowball token filter 使用除梗器,對單詞進行除梗的過濾器。語言參數可以控制除梗器,有如下的語言可供選擇: Armenian, Basque, Catalan, Danish, Dutch, English,

原创 Elastic search N-gram tokenizer

N-gram tokenizer ngram 分詞器,首先將text文本切分,執行時採用N-gram切割算法。 N-grams 算法,就像一個穿越單詞的滑窗,是一個特定長度的持續的字符序列。這個適合於那些不太實用空格符的語言,或

原创 Elasticsearch中什麼是 tokenizer、analyzer、filter ?

Elastic search 是一個能快速幫忙建立起搜索功能的,最好之一的引擎。 搜索引擎的構建模塊 大都包含 tokenizers(分詞器), token-filter(分詞過濾器)以及 analyzers(分析器)。 這就是搜

原创 Idea 多線程斷點被跳過

多線程調試時候出現 解決 在,打斷點的時候,將ALL選爲Thread

原创 線上服務啓動卡死,堆棧分析

背景 服務啓動時候會從mysql加載數據到es中,測試環境正常,線上異常卡住,不動。 查看堆棧信息 關鍵點 "elasticsearch[_client_][generic][T#5]" #843 daemon prio=5 o

原创 Java 鎖相關 筆記整理

用戶態與內核態 JDK早期,synchronized 叫做重量級鎖, 因爲申請鎖資源必須通過kernel, 系統調用 ;hello.asm ;write(int fd, const void *buffer, size_t nby

原创 embedded.AnnotationConfigEmbeddedWeb ApplicationContext@1e67b872 has been closed already

nested exception is java.lang.IllegalStateException: org.springframework.boot.context.embedded.AnnotationConfigEmbe

原创 JVM 垃圾回收器 ZGC

JAVA內存模型 JVM線程 OSThread JVM 對不同系統的線程抽象 Thread Thread 是 C++ 定義的線程基類,除了 OSThread 類,作爲其他線程的基類,它包含了 OSThread 對象的指針 J

原创 guava cache 踩坑 ———— 初始化load方法,不能返回null

背景 在使用guava cache 的時候,get的時候,會觸發load加載。 但是如果此時load方法返回null,那麼就會報錯 報錯 Caused by: com.google.common.cache.CacheLoader

原创 ElasticJob Lite Console 處於分片待調整狀態,無法觸發解決方案

將對應job的觸發時間改成最近的,比如當前時間17:49:00,那就把Cron表達式改成下一分鐘:0 50 17 * * ? ,當自動觸發過一次後,狀態就會變成 因爲要觸發過,纔會讓你操作。 記得,改回來!

原创 數據庫僞哈希Hash索引的創建和使用(理論+實戰)

適用場景 適用於給一個varchar類型的字段建立索引。比如說類的全路徑,URL等長字符串的字段。 com.xxx.aaa.bbb.ccc.yyy.ZZZ 其中大寫的ZZZ就是類名。 像這種長字符串的,建立前綴索引區分度也不大,尤

原创 Apollo Persisted by DefaultConfig

apollo多個集羣中,有一個default集羣,如果default集羣中和其他的集羣中有個namespace是一樣的,這樣,apollo在使用的時候,會進行判斷。 而這個m_fileProperties是從本地緩存讀取的

原创 Java 1.8 hashMap 併發put 的問題 java.util.HashMap$Node cannot be cast to java.util.HashMap$TreeNode

報錯 Caused by: java.lang.ClassCastException: java.util.HashMap$Node cannot be cast to java.util.HashMap$TreeNode

原创 基於redis實現分佈式鎖遇到的一個坑

背景 之前舊代碼中使用redis的incr來實現分佈式鎖。 邏輯大概是線上諸多線程去獲取inrc一個key,第一個成功的則得到返回值1。其他線程如果inc這個變量則返回2,3,4,5… 成功返回的線程,然後再對這個key設值一個過

原创 Guava cache loadAll failed to return a value for key

報錯 loadAll failed to return a value for try { if (!keysToLoad.isEmpty()) { try { Map<K, V