原创 golang-引用傳遞

dbTags := make([]*Tag, 0) for _, value := range idMap { dbTags = append(dbTags, &value)

原创 設計思路-消費MQ

消費端收到消息 持久化到redis或者數據庫,狀態爲待處理。然後ack確認 再處理通過線程池異步消費消息,提高吞吐量(但是需要考慮應用線程異步有序性的問題  如線程池裏面加鎖保證原子性) 1.如redis 先通過zset放入redis  

原创 k8s-資源調度

滾動更新 注:是滾動更新 不是擴容 只有修改了deployment配置文件中的template中的屬性後,纔會分觸發更新操作如使用 kubctl edit deploy {name} 查看滾動更新情況 1.查看狀態 kubectl roll

原创 redis-redissearch臨時筆記

官方文檔 https://redis.io/docs/interact/search-and-query/ 底層數據結構支持 HASH FT.CREATE books-idx ON HASH PREFIX 1 book

原创 java陷阱之關於數據同步

需求 需要查詢設備列表。使用redissearch,需要從cannal->kafka->redis 問題 保證數據有序性和一致性(運維那邊不能根據設備id進行分區,到時消息消費時面臨消費的有序性問題)採用的是不使用binlog日誌修改信息,

原创 k8s-label和selector

說明 k8s通過lable來爲資源打上標籤,通過selector來查找。而不是像傳統mysql對象之間關聯使用強關聯外鍵屬性 比如deployment需要關聯RS 則通過RS打上標籤,deployment通過配置select選擇器去查找

原创 數據結構與算法-基本概念

什麼是數據結構與算法 從廣義上講數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。 從狹義上講,是指某些著名的數據結構和算法,比如隊列、棧、堆、二分查找、動態規劃等。這些都是前人智慧的結晶,我們可以直接拿來用。 數據結構和算法是

原创 k8s-pod的生命週期

生命週期圖 pod退出流程 1.entpoint 刪除pod的ip地址 2.變更爲刪除中,會給pod一個寬限期讓pod去執行一些清理動作 preStop 應用場景 註冊中心下線 數據清理 數據消費

原创 k8s-探針

在Kubernetes中,有三種類型的探針(Probes)用於檢查容器的健康狀況和確定是否應該將請求路由到容器。這些探針可以配置在 Pod 的規範中。   存活探針(Liveness Probe) livenessProbe: htt

原创 k8s-常用命令

更多命令 https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands 查看yam配置 1.獲取deploy列表 kubectl get deploy -n

原创 golang-channel

什麼是 channel 管道 channel 是 goroutine 與 goroutine 之間通信的重要橋樑 channel 是一個通道,用於端到端的數據傳輸,這有點像我們平常使用的消息隊列,只不過 channel 的發送方和接受方是 

原创 golang-select

select的作用 golang 中的 select 就是用來監聽和 channel 有關的 IO 操作,當 IO 操作發生時,觸發相應的動作。select 只能應用於 channel 的操作,既可以用於 channel 的數據接收,也可以

原创 golang-waitgroup

說明 golang通過waitgroup來實現併發控制,用法跟java的CountDownLatch 效果一樣   WaitGroup 的使用場景和方法 我們通過goroutine運行一個或者一組任務,需要關心這組任務執行完了進行通知 Wa

原创 go-kafka

https://zhuanlan.zhihu.com/p/424381035?utm_id=0

原创 設計思路-關於樹節點結構設計

增加path字段存儲樹的路徑 1.可以通過當前節點追溯到上級所有父節點 2.可以通過當前節點查詢所有子節點 比如滿足以下需求 參考sql ------------------------------所有設備權限-------------