原创 IO模型--同步/異步 阻塞/非阻塞

    到底什麼是IO,我們之前經常說的IO就是指進行文件的寫入和讀取操作所做的操作, 但是在操作系統層面的IO並不是這麼狹義。從鍵盤獲取數據從socket都可以稱作IO。   在正式介紹IO之前我們需要先弄清楚幾個概念。 用戶空間和內

原创 Raft協議介紹

   Raft是一個分佈式協議,現在隨着用戶的增多一臺機器來運算後臺數據已經不足及支撐當前軟件後端的運算量,所以就有了分佈式的概念,可是分佈式中有一個最大的問題就是他的高可用性,或者說高一致性,比如說我現在有一張銀行卡卡里有餘額一千元,然

原创 WebSocket 介紹

WebSocket 介紹  今天想給大家介紹一下WebSocket技術,在說他之前就不得不先說一下我們當前的HTTP協議,WebSocket和我們現在的HTTP幾乎是沒有關係的,但是他們兩個還是有一部分交集的 WebSocket是在HT

原创 Redis

 最近接觸了Redis數據庫,這裏對Redis進行一個簡單的介紹。  Redis是一個廣泛被使用的高性能的存儲系統,它具有一下特點: 1.存儲在內存中,所以讀寫性能非常高 2.由C編寫而成,所以跨平臺支持的性能非常高 3.使用kv存儲,同

原创 http 網關 熔斷和限流

公司內部很多rpc調用都需要經過gateway 是爲了保護後端 這裏有兩個常見的操作 一個是熔斷一個是限流。gateway還能實現很多比如服務的黑名單白名單 防止攻擊 灰度控制等等。這裏主要就是介紹熔斷和限流。 什麼是熔斷? 其實熔斷這個

原创 gorm

今天接觸了orm的概念。orm 全程 object relation mapping 對象映射關係,這到底是做什麼的呢?orm是爲了解決面向對象和關係數據庫之間存在的互不匹配的現象的技術,c++裏邊我們經常說面向對象,也就是說我的操作都是

原创 go語言學習 四

  1 package main                                                                        2                              

原创 go語言學習 五

第一個就是 還是重啓電腦 然後在輸入密碼的時候不要輸入 按住shift和關機那的重啓按鈕 會進入安全操作界面,裏邊有一個疑難解答進去,然後在裏邊找到高級選項 裏邊有一個啓動設置,然後點重啓,剛剛讓你按的是4或者f4選的是安全模式 ,你現在

原创 go語言學習 二

Go語言裏和c語言一樣也有指針的概念   var i int = 1 var pInt *int = &i //輸出:i=1     pInt=0xf8400371b0       *pInt=1 fmt.Printf("i=%d\tpI

原创 go語言學習 三

  昨天我們講到了切片,切片可以用內奸函數make來創建,同樣也是創建動態數組的方式,make函數會分配一個元素爲零值的數組並返回一個引用了它的切片,一般來說make有兩個參數,第一個是你要切片的數據,第二個是要切片的長度,如果需要指定它

原创 go語言學習 一

Go語言學習 1.包 每個go語言程序都是由包來構成的,程序從main包開始運行, package main import (     "fmt"     "math/rand" ) func main() {     fm

原创 rpc im機制和網絡優化

什麼是rpc?  remote procedure call 遠程過程調用 ,簡單的來說,我們現在實現了一個計算器的程序,通常我們會把這個計算器封裝成一個函數,當我們想要計算的時候只需要把我們的參數傳給計算器函數,把我們要處理的兩個數據和

原创 數據庫--內置函數

在數據庫中有很多內置的函數。 比如獲得當前時間,甚至還可以在數據庫內進行時間的加減操作。 可以通過date_add 和date_sub來完成堆某個時間的加減天數操作。 還可以求兩個日期之間的差值。 可以在進行插入的時候直接調用內置

原创 數據庫--表的約束

   之前我們介紹了數據的類型,今天我們主要介紹數據庫中表的約束,雖然數據類型對我們的數據進行了一定程度的約束,但是那些約束很單一,很多情況還是難以處理,所以就有了表的約束。對於表的約束主要有:null、not null、default、

原创 數據庫--基本查詢

      對於數據庫的查詢操作是數據庫裏邊最重要的部分。 創建一個goods商品類,插入兩條數據。如果查看錶中所有數據的話,可以通過select * from表名來查看某一個表中的所有數據。 如果說想要批量修改數據庫中某個表中某個字段