原创 手把手教你爲開源項目貢獻代碼

背景 前段時間無意間看到一篇公衆號 招賢令:一起來搞一個新開源項目,作者介紹他想要做一個開源項目:cprobe 用於整合目前市面上散落在各地的 Exporter,統一進行管理。 比如我們常用的 blackbox_exporter/mysql

原创 白話 Pulsar Bookkeeper 的存儲模型

最近我們的 Pulsar 存儲有很長一段時間數據一直得不到回收,但消息確實已經是 ACK 了,理論上應該是會被回收的,隨着時間流逝不但沒回收還一直再漲,最後在沒找到原因的情況下就只有一直不停的擴容。 最後磁盤是得到了回收,過程先不表,之

原创 請注意,你的 Pulsar 集羣可能有刪除數據的風險

在上一篇 Pulsar3.0新功能介紹中提到,在升級到 3.0 的過程中碰到一個致命的問題,就是升級之後 topic 被刪除了。 正好最近社區也補充了相關細節,本次也接着這個機會再次覆盤一下,畢竟這是一個非常致命的 Bug。 現象 先來回

原创 Pulsar3.0新功能介紹

在上一篇文章 Pulsar3.0 升級指北講了關於升級 Pulsar 集羣的關鍵步驟與災難恢復,本次主要分享一些 Pulsar3.0 的新功能與可能帶來的一些問題。 升級後所遇到的問題 先來個欲揚先抑,聊聊升級後所碰到的問題吧。 其中有兩

原创 如何給開源項目發起提案

背景 前段時間在使用 Pulsar 的 admin API 時,發現其中的一個接口響應非常慢: admin.topics().getPartitionedStats(topic); 使用 curl 拿到的響應結果非常大,同時也非常耗時:

原创 如何編寫一個 Pulsar Broker Interceptor 插件

背景 之前寫過一篇文章 VictoriaLogs:一款超低佔用的 ElasticSearch 替代方案講到了我們使用 Victorialogs 來存儲 Pulsar 消息隊列的消息 trace 信息。 而其中的關鍵的埋點信息是通過 Pul

原创 五分鐘 k8s 實戰-應用探針

今天進入 kubernetes 的運維部分(並不是運維 kubernetes,而是運維應用),其實日常我們大部分使用 kubernetes 的功能就是以往運維的工作,現在雲原生將運維和研發關係變得更緊密了。 今天主要講解 Probe 探針

原创 升級到 Pulsar3.0 後深入瞭解 JWT 鑑權

背景 最近在測試將 Pulsar 2.11.2 升級到 3.0.1的過程中碰到一個鑑權問題,正好藉着這個問題充分了解下 Pulsar 的鑑權機制是如何運轉的。 Pulsar 支持 Namespace/Topic 級別的鑑權,在生產環境中往

原创 五分鐘k8s實戰-Istio 網關

在上一期 k8s-服務網格實戰-配置 Mesh 中講解了如何配置集羣內的 Mesh 請求,Istio 同樣也可以處理集羣外部流量,也就是我們常見的網關。 其實和之前講到的k8s入門到實戰-使用Ingress Ingress 作用類似,都

原创 k8s-服務網格實戰-配置 Mesh(灰度發佈)

在上一篇 k8s-服務網格實戰-入門Istio中分享瞭如何安裝部署 Istio,同時可以利用 Istio 實現 gRPC 的負載均衡。 今天我們更進一步,深入瞭解使用 Istio 的功能。 從 Istio 的流量模型中可以看出:Isti

原创 使用 Helm 管理應用的一些 Tips

背景 Helm 是一個 Kubernetes 的包管理工具,有點類似於 Mac 上的 brew,Python 中的 PIP;可以很方便的幫我們直接在 kubernetes 中安裝某個應用。 比如我們可以直接使用以下命令方便的在 k8s 集

原创 五分鐘k8s入門到實戰-應用配置

背景 在前面三節中已經講到如何將我們的應用部署到 k8s 集羣並提供對外訪問的能力,x現在可以滿足基本的應用開發需求了。 現在我們需要更進一步,使用 k8s 提供的一些其他對象來標準化我的應用開發。 首先就是 ConfigMap,從它的名

原创 Github的一個奇技淫巧

背景 前段時間給 VictoriaLogs 提交了一個 PR: https://github.com/VictoriaMetrics/VictoriaMetrics/pull/4934 本來一切都很順利,只等合併了,但在臨門一腳的時候社區

原创 五分鐘k8s實戰-使用Ingress

背景 前兩章中我們將應用部署到了 k8s 中,同時不同的服務之間也可以通過 service 進行調用,現在還有一個步驟就是將我們的應用暴露到公網,並提供域名的訪問。 這一步類似於我們以前配置 Nginx 和綁定域名,提供這個能力的服務在

原创 五分鐘 k8s入門到實戰--跨服務調用

背景 在做傳統業務開發的時候,當我們的服務提供方有多個實例時,往往我們需要將對方的服務列表保存在本地,然後採用一定的算法進行調用;當服務提供方的列表變化時還得及時通知調用方。 student: url: - 19