原创 基於Gitlab的CICD流程

本片文章主要初步介紹什麼是CICD流程,並且把整個流程進行拆分理解整個流程的跑通過程。 1.CICD概述 什麼是CICD呢? 簡單的說CICD就是持續集成自動構建自動測試自動部署. 從概念上就可以看出,CICD主要由四個部分組成

原创 服務爲什麼會崩潰

1.概述 最近看了一篇關於熱key導致redis服務集羣掛掉的文章, 非常的精彩導致我在想當流量非常大時爲什麼redis服務會掛掉,於是我就找了大量的資料研究服務爲什麼會掛掉及其原理,服務器爲什麼會宕機等等就有了如下內容。 其實服務崩潰總結

原创 Flask-SqlAchemy源碼之session詳解解決連接gone away問題

線上連接gone away問題 我們業務中需要執行一個時間超過8小時的腳本,然後發生了連接gone away的問題,然後開始找原因,首先我們的僞代碼如下: app = create_app() def prod_script():

原创 redis存json數據時選擇string還是hash

我們在緩存json數據到redis時經常會面臨是選擇string類型還是選擇hash類型去存儲。接下來我從佔用空間和IO兩方面來分析這兩種類型的優勢。 1、佔用空間 根據數據結構的共識我們知道hashtable類型是要比string類型更佔

原创 python自帶緩存lru_cache用法及擴展(詳細)

​ 本篇博客將結合python官方文檔和源碼詳細講述lru_cache緩存方法是怎麼實現, 它與redis緩存的區別是什麼, 在使用時碰上functiontools.wrap裝飾器時會發生怎樣的變化,以及瞭解它給我們提供了哪些功能然後在其基

原创 解決gunicorn部署flask程序日誌丟失問題

  衆所周知日誌是我們排查問題和跟隔壁團隊撕逼的最佳利器, 真的很重要防止被甩鍋(血淚教訓), 在一次撕扯中我去線上查看日誌發現很多重要證據都沒有記錄在文件中, 經過對比發現肯定了發生了日誌丟失問題, 直接導致本該10分鐘解決的戰鬥,愣是持

原创 flask項目集成swagger

   此次主要介紹介紹在flask框架中如何集成swagger文檔, 我們知道以前給同事提供接口文檔主要是寫一個文檔, 當遇到頻繁修改時,就需要更新文檔非常麻煩, 這時swagger文檔就出現了,一個在線得接口文檔,同事可以在線上查看接口文

原创 windows局域網搭建本地git代碼版本管理倉庫

一、 需求: 我們團隊給客戶做數據處理,然後給我們提供幾臺電腦windows系統,我們通過雲桌面進行平時的辦公,並且連接不了網絡,然後我們幾個同事進行項目開發需要代碼版本管理沒法上傳帶gitlab或者github的代碼管理平臺,然後想搭建基

原创 docker部署的經驗

1. docker是什麼 官網原話時:Docker is an open platform for developing, shipping, and running applications. Docker enables you to

原创 python thrift教程

本文主要簡單記錄rpc框架thrift的使用,詳細可查thrift官網 第一步:安裝thrift    命令行輸入 brew install thrift    (此方法僅適用於mac,其他安裝方法查看教程)   第二步:編寫一個.th

原创 kafka的特性初探

本篇文章將從kafka的存儲特性、生產者特性、消費者特性和消費確認這四個方面初探kafka的設計特性, 詳細內容可查看官方文檔第四章節kafka設計動機。   一、存儲特性 根據kafka官網描述,kafka的消息存儲是基於磁盤文件系統存儲

原创 弄懂一致性哈希後我打通了redis分區集羣的原理

上午剛寫完一篇關於一致性hash思想的舉一反三,下午就去看redis的官方文檔,就在我看到redis分區集羣的原理的時候,哇那真是茅塞頓開把我多年對redis的疑惑都解開了,它分區的思想不就是我上篇文章的思想嗎?接下來我用故事的形式來講解r

原创 關於一致性哈希思想的舉一反三

  關於一致性hash算法的解釋和應用場景,博客中以已經出現了許多非常優秀的文章解釋,這裏放一個解釋比較清楚的博客文章如果不太瞭解一致性hash算法是什麼可以點擊瞭解一下,本文主要融合一致性hash算法思想去簡單解決我們工作中遇到的問題。

原创 RabbitMq之消息確認

  最近閱讀了rabbitmq的官方文檔,然後結合之前面試時被問到關於消息隊列的問題來探索一下關於消息隊列的消息確認機制。   其實消息確認就是消費者確認消息被消費了, 生產者確認消息已經發送到了消息隊列中了。   我們知道rabbitmq

原创 Django序列化組件Serializers詳解

    本文主要系統性的講解django rest framwork 序列化組件的使用,基本看完可以解決工作中序列化90%的問題,寫作參考官方文檔https://www.django-rest-framework.org/api-guide