原创 記一次python消費kafka進程持續消耗內存問題

前提:python寫了一個kafka消費的腳本,腳本中消費kafka消息並將消費到的數據放在一個線程池中進行業務代碼處理,使用supervisor管理這個腳本進程 遇到問題:這個進程佔用的內存會越來越大,知道將機器內存消耗完 排查:網上找了

原创 django使用gunicorn框架,客戶端請求耗時接口被中斷問題

  項目使用的是django,使用了gunicorn作爲動態web服務,使用的是supervisor作爲進程管理工具。   由於特殊原因,最近上線了一個非常耗時的http接口,一段時間後開始有用戶陸續反饋他們的代碼調用這個接口會返回502錯

原创 go語言使用redis實現異步任務

目前go語言有一些比較可靠的異步隊列的開源組件比如asynq、Machinery等,但是組件一個有學習成本,二是出現問題的時候比較頭疼,排查起來比較費時間還要分析源碼,所以自己比較傾向於寫一個輕量級。 此過程使用的是redis的list,左

原创 golang中根據字符串執行制定的方法

golang中根據字符串執行制定的方法: 1、建立一個字典表 func func1(a string) string { fmt.Println("func1", a) return "f1" } func func2(a strin

原创 go語言接口的實現

接口可以很好的封裝有同一類功能的方法 首先在具體實現裏面定義自己的實現,這邊定義了2個 type Cat struct{} func (c *Cat) Call() { fmt.Println("miao,miao...") } f

原创 go開發自己的module模塊

1、創建一個go項目,名字叫```gopkg``` 2、執行go mod init gopkg& go mod tidy 3、將go.mod文件第一行的module gopkg,gopkg改成git倉庫的全路徑去掉前面https:// 4、

原创 gorm查詢時間去掉時區問題

gorm查詢的時間格式是2022-03-03T14:32:05+08:00,這種格式不符合我們日常使用習慣,尤其是前端展示會額外佔用單元格寬度 gorm不提供時間格式的配置,只能自定義個一個類型,繼承time.Time,上代碼,這個是網上一

原创 帶有特殊符號的文件刪除

有的時候我們會創建一些包含特殊符號的文件,比如:-test 這種,這種文件按照正常的刪除命令是無法刪除的,因爲命令的參數一般都以-開頭 這個時候我們可以用  rm -- -test 命令刪除

原创 go Model模塊管理使用小記

使用gomodel功能管理go模塊,已開啓GO111MODULE=on,但是總是提示main.go:4:2: package gangdou/config is not in GOROOT (/usr/local/go/src/gangdo

原创 grafana API小記

首先需要管理員生成api key 文件夾 方法 uri 說明 參數 GET /api/folders  查看所有文件夾 limit(默認值爲1000) GET /api/folders/:uid 根據文件夾id查看文件夾詳情

原创 python代碼調用ansible

使用ansible_runner模塊,需要安裝2個模塊pip install ansible_runner ansible extravars = {'ansible_user': 'test'} # 設置執行參數 inventory =

原创 MacOS下安裝使用pip方式安裝mysqlclient

  brew install openssl brew install mysql brew install mysql-client brew install mysql-connector-c pip install mysqlcli

原创 python實現AES加密

pip install pycryptodomex 需要安裝pycryptodomex模塊 aes加密 from Cryptodome.Cipher import AES from binascii import b2a_hex,

原创 python實現ldap接入

需要提前安裝python-ldap模塊 python接入ldap其實分了幾個步驟: 1、使用一個管理員賬戶登陸到ldap 2、使用一個字段值是唯一的字段,去搜索到要驗證用戶的DN值(ldap搜索到的單個用戶信息是一個元祖數據,DN值就是元祖

原创 使用linux/macos 自帶的shell實現證書方式的快速登陸

一般登陸機器都是需要使用證書安全登陸到跳板機上然後在跳板機去登陸到各個機器。 我們建立一個統一的文件夾mykey,將登陸的pem證書放上去,然後創建一個空白的文件,vim jump.sh #!/usr/bin/expect -f set