原创 Go channel 的使用注意項記錄

Golang的定義了goroutine間通信的規範,其中對channel的操作有若干注意項: channel: 若使用 channel之前沒有 make,會出現fatal error: all goroutines are as

原创 關於golang http 中間件的記錄

關於golang 的http中間件與java, python等有區別, 特別是自go 引入了context概念之後,在實際開發中也遇到過不少問題, 以下作記錄: 不同的開發框架如net/http, chi, iris, 其中間

原创 ORM在實際生產中遇到的若干問題

就golang而言, 有若干常用orm 庫, 如gorm, sqlx等, 在這裏總結一下在生產中遇到的問題: sqlx: 1)對於一些經過中間件處理的mysql數據庫,即直接訪問的實體不是mysql本身, 對於這類數據庫實體,

原创 關於golang接入Kafka消息隊列的總結

總結一下用golang 寫的服務中接入kafka消息隊列的關鍵和有用鏈接: golang 有兩個主流接入kafka的lib, sarama和confluent-kafka-go, 在編譯運行時均需要用到gcc。構建鏡像需要加入a

原创 關於golang寫grpc 服務的總結

總結一下用grpc協議寫服務的若干心得,並記錄一些有用鏈接。 下載grpc依賴及安裝grpc代碼生成工具, 也可參見該鏈接創建簡單可行的helloworld服務。 grpc服務端及客戶端均需要保留protoc生成的.pb.

原创 Kubernetes環境使用Let's Encrypt證書的部署方法

在k8s中將內部service暴露到集羣外一般採用ingress,而比較常用的ingress controller是nginx。 而一般證書會存於nginx, 用於tls的認證。採用Let’s Encrypt證書生成瀏覽器信任的免

原创 Golang context 實現服務端超時控制

golang 官方博文對context的主要設計目的和實踐作闡述, 本文結合該博文對服務器端實現超時的方法再作彙總。 1 通過設置nginx或後端web server配置實現請求超時 router.HandleFunc("/lazy"

原创 Kubernetes實驗環境安裝部署及容錯測試

生產環境的kubernetes環境不適合各類測試,因此用臺式機的vmware創建了7臺虛擬機,用於kubernetes各類配置實驗。 kubernetes版本:1.3.4 ubuntu版本:16.04 HA方案:選用與master節

原创 Golang slice 分析及總結

關於go 的slice分析博客較多,本文作一次集中彙總,並注重用benckmark作爲佐證。 創建Slice : 方式 A: make([]int, 50, 100) or 方式 B: new([100]int)[0:50] or

原创 Kubernetes調度之Requests和Limits的注意項

使用Kubernetes去創建Deployment, StatefulSet和DaemonSet等controller,或直接創建pod時,可設置相關的Requests和Limits,這裏有不少地方需要注意,以下作記錄和總結。 R

原创 基於Kubernetes編排的容器化分佈式Tensorflow設計

爲提供更靈活的分佈式Tensorflow運行環境供租戶使用,計劃在現有工作的基礎上,即: 通過Web UI點擊提交容器節點配置表單數據到後臺服務,後臺服務轉發至Kubernetes集羣實現容器編排,在本場景中通過一鍵點擊生成若干容

原创 基於Golang和Redis的API服務開發

開發背景: 本API服務原是由Spring boot爲架構的項目,主要通過API訪問形式提供網上購物資料讀寫。在商品發售期間, API瞬間訪問量達每秒300次以上。爲提高資料讀取時的併發控制, 簡化項目配置, 因此採用Golang對項

原创 Dockerfile的ENTRYPOINT與Kubernetes的Command和Args的關係

Docker 的入口程序與Kubernetes的入口程序: Dockerfile 用於製作鏡像,可以在文件最後指定ENTRYPOINT作爲鏡像的入口程序,即pid爲1的進程。 在Kubernetes用於啓動pod的yaml中,也可指

原创 Golang 的string, byte和rune常見問題

Golang 的string, byte和rune往往讓有其他語言使用習慣的人不適應,下文總結其注意事項 1. string 標準庫builtin解釋: type string string is the set of all st

原创 Docker 入口程序錯誤問題

Docker 入口程序錯誤問題 問題報錯: standard_init_linux.go:190: exec user process caused "no such file or directory" 引起錯誤的前提: 在Do