原创 說說我創業踩過的幾個坑

之前的文章都是技術相關的,我這個人的性格不喜歡分析太多自己的個人經歷上的東西。 不過有感於現在的環境,今天想給大家分享幾個自己曾經創業踩過的坑。希望能對有創業想法或者已經在創業的道路上折騰的小夥伴有所幫助。 坑一、合夥人的目標要

原创 spring data操作ES簡直不能再香

引言 Elasticsearch(以下簡稱ES)並不像mysql這麼容易上手,很多java程序員會覺得ES的java客戶端比較難以掌握,儘管ES 7.x官方推薦的high level client已經相對於早期的Transport

原创 一文說透訪問者模式

基本介紹 究竟什麼是訪問者模式呢? 訪問者模式(Visitor Pattern)模式是行爲型(Behavioral)設計模式,提供一個作用於某種對象結構上的各元素的操作方式,可以使我們在不改變元素結構的前提下,定義作用於元素的新操

原创 帶你瞭解控制線程執行順序的幾種方法

通常情況下,線程的執行順序都是隨機的,哪個獲取到CPU的時間片,哪個就獲得執行的機會。不過實際的項目中有時我們會有需要不同的線程順序執行的需求。藉助一些java中的線程阻塞和同步機制,我們往往也可以控制多個線程的執行順序。 方法有

原创 從一個生產上的錯誤看kafka的消費再均衡問題

文章目錄問題描述問題的分析kafka的topic分區心跳機制kafka的分區再均衡解決問題 問題描述 項目在生產上的一段錯誤日誌如下, [commitSync] processed message to kafka failed,

原创 什麼鬼,java線上內存溢出了?試試這個神器

MAT工具介紹 工欲善其事必先利其器,學會使用工具也是一種本領。本篇文章就把自己之前工作中用到的一個內存分析工具給大家介紹下。 內存分析工具MAT(Memory Analyzer Tool)是一款 JVM 的內存分析工具,在實際的

原创 map和object相互轉換的幾種方法和對比

工作中經常遇到這樣的場景,需要在object和map直接相互轉換,這裏總結一下。 我先定義一個實體類,後面介紹的幾種轉換方法都以這個實體類爲例進行說明。 public class PersonBean { private

原创 阿里雲Elasticsearch性能優化實踐

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

原创 ES系列之原來ES的聚合統計不準確啊

本篇文章不是講ElasticSearch(下面簡稱ES)聚合分析的基本概念和用法的,這些網上的資料很多,不清楚的可以自行查閱。 我下面聚合分析使用的數據都是kibana自帶的,這樣方便有些讀者實際測試文中的示例。 基本概念 ES爲

原创 Elasticsearch對比TiDB

筆者做過的一個項目中,同時用到了Elasticsearch和Tidb兩種存儲相關的產品。這兩者適用的場景有些差異,但其實又有交集。前者偏向搜索,後者則主打分佈式存儲。下面根據自己的理解從不同維度分析下二者的相同點和不同點。

原创 這可能是講雪花算法最全的文章

文章目錄雪花算法的起源雪花算法原理雪花算法java實現一些細節討論調整比特位分佈workerid一般如何生成 雪花算法的起源 snowflake中文的意思是 雪花,雪片,所以翻譯成雪花算法。它最早是twitter內部使用的分佈式環

原创 一文帶你徹底弄懂ES中的doc_values和fielddata

基本概念 這兩個概念比較像,所以大部分時候會放在一起說。 這兩個概念源於Elasticsearch(後面簡稱ES)除了強大的搜索功能外,還可以支持排序,聚合之類的操作。搜索需要用到倒排索引,而排序和聚合則需要使用 “正排索引”。說

原创 從一個問題來加深對mysql可重複讀的理解

引入問題 這個問題來源於一個網絡課程的課後思考題,題目是這樣的: 我用下面的表結構和初始化語句作爲試驗環境,事務隔離級別是可重複讀。現在,我要把所有“字段 c 和 id 值相等的行”的 c 值清零,但是卻發現了一 個“詭異”的、

原创 fastjson遠程代碼執行漏洞問題分析

背景 fastjson遠程代碼執行安全漏洞(以下簡稱RCE漏洞),最早是官方在2017年3月份發出的聲明, security_update_20170315 沒錯,強如阿里這樣的公司也會有漏洞。代碼是人寫的,有漏洞是難免的。關鍵是

原创 springboot整合kafka自動提交的問題

文章目錄環境準備問題描述源碼分析 最近遇到一個springboot整合kafka設置手動提交不生效的問題,後來發現是自己的方法不對,走了一些彎路,這裏記錄一下。 環境準備 spring boot 2.1.6.RELEASE 本地