原创 k8s 入門到實戰--部署應用到 k8s

背景 最近這這段時間更新了一些 k8s 相關的博客和視頻,也收到了一些反饋;大概分爲這幾類: 公司已經經歷過服務化改造了,但還未接觸過雲原生。 公司部分應用進行了雲原生改造,但大部分工作是由基礎架構和運維部門推動的,自己只是作爲開發並不

原创 使用 SQL 的方式查詢消息隊列數據以及踩坑指南

背景 爲了讓業務團隊可以更好的跟蹤自己消息的生產和消費狀態,需要一個類似於表格視圖的消息列表,用戶可以直觀的看到發送的消息;同時點擊詳情後也能查到消息的整個軌跡。 消息列表 點擊詳情後查看軌跡 原理介紹 由於 Pulsar 並

原创 VictoriaLogs:一款超低佔用的 ElasticSearch 替代方案

背景 前段時間我們想實現 Pulsar 消息的追蹤流程,追蹤實現的效果圖如下: 實現其實比較簡單,其中最重要的就是如何存儲消息。 消息的讀取我們是通過 Pulsar 自帶的 BrokerInterceptor 實現的,對這個感興趣的朋

原创 在這個大環境下我是如何找工作的

蠻久沒更新了,本次我想聊聊找工作的事情,相信大家都能感受到從去年開始到現在市場是一天比一天差,特別是在我們互聯網 IT 行業。 已經過了 18 年之前的高速發展的紅利期,能做的互聯網應用幾乎已經被各大公司做了個遍,現在已經進入穩定的存量市

原创 通過 Pulsar 源碼徹底解決重複消費問題

背景 最近真是和 Pulsar 槓上了,業務團隊反饋說是線上有個應用消息重複消費。 而且在測試環境是可以穩定復現的,根據經驗來看一般能穩定復現的都比較好解決。 定位問題 接着便是定位問題了,根據之前的經驗讓業務按照這幾種情況先排查一下:

原创 一個詭異的 Pulsar InterruptedException 異常

背景 今天收到業務團隊反饋線上有個應用往 Pulsar 中發送消息失敗了,經過日誌查看得知是發送消息時候拋出了 java.lang.InterruptedException 異常。 和業務溝通後得知是在一個 gRPC 接口中觸發的消息發

原创 Pulsar負載均衡原理及優化

前言 前段時間我們在升級 Pulsar 版本的時候發現升級後最後一個節點始終沒有流量。 雖然對業務使用沒有任何影響,但負載不均會導致資源的浪費。 和同事溝通後得知之前的升級也會出現這樣的情況,最終還是人工調用 Pulsar 的 ad

原创 對 Pulsar 集羣的壓測與優化

前言 這段時間在做 MQ(Pulsar)相關的治理工作,其中一個部分內容關於消息隊列的升級,比如: 一鍵創建一個測試集羣。 運行一批測試用例,覆蓋我們線上使用到的功能,並輸出測試報告。 模擬壓測,輸出測試結果。 本質目的就是想直到新版

原创 徹底理解閉包實現原理

前言 閉包對於一個長期寫 Java 的開發者來說估計鮮有耳聞,我在寫 Python 和 Go 之前也是沒怎麼了解,光這名字感覺就有點"神祕莫測",這篇文章的主要目的就是從編譯器的角度來分析閉包,徹底搞懂閉包的實現原理。 函數一等公民 一門

原创 手寫編程語言-如何爲 GScript 編寫標準庫

版本更新 最近 GScript 更新了 v0.0.11 版本,重點更新了: Docker 運行環境 新增了 byte 原始類型 新增了一些字符串標準庫 Strings/StringBuilder 數組切片語法:int[] b = a[1

原创 用自己的編程語言實現了一個網站(增強版)

前言 前段時間在《用自己的編程語言實現了一個網站》用介紹了用 GScript 寫的一個簡單“網站”,雖然是打上引號的;頁面長這樣: 看起來確實非常的挫,其實之前一直也想做一個 GScript 的在線 playground ,於是國慶期間

原创 手寫編程語言-遞歸函數是如何實現的?

前言 本篇文章主要是記錄一下在 GScript 中實現遞歸調用時所遇到的坑,類似的問題在中文互聯網上我幾乎沒有找到相關的內容,所以還是很有必要記錄一下。 在開始之前還是簡單介紹下本次更新的 GScript v0.0.9 所包含的內容:

原创 手寫編程語言-實現運算符重載

前言 先帶來日常的 GScript 更新:新增了可變參數的特性,語法如下: int add(string s, int ...num){ println(s); int sum = 0; for(int i=0;i<len(num)

原创 里程碑!用自己的編程語言實現了一個網站

前言 在上一篇《終於實現了一門屬於自己的編程語言》 介紹了自己寫的編程語言 GScript ,在文中提到希望最終可以使用 GScript 開發一個網站。 到目前爲止確實是做到了,首頁地址: https://gscript.crossove

原创 終於實現了一門屬於自己的編程語言

前言 都說程序員的三大浪漫是:操作系統、編譯原理、圖形學;最後的圖形學確實是特定的專業領域,我們幾乎接觸不到,所以對我來說換成網絡更合適一些,最後再加上一個數據庫。 這四項技術如果都能掌握的話那豈不是在 IT 行業橫着走了,加上這幾年互聯