阿里云短信接口: https://github.com/KenmyZhang/aliyun-communicate
分布式ID雪花算法-解析 | 分布式唯一id:snowflake算法思考
zap是uber用Go語言編寫的開源日志
一個類型聲明語句創建了一個新的類型名稱,和現有類型具有相同的底層結構。
新命名的類型提供了一個方法,用來分隔不同概念的類型,這樣即使它們底層類型相同也是不兼容的。
type Celsius float64 // 攝氏溫度
type Fahrenheit float64 // 華氏溫度
Go實戰--golang中使用JWT(JSON Web Token):https://blog.csdn.net/wangshubo1989/article/details/74529333
JWT(json web token)http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
gorm : github.com/jinzhu/gorm
mysql第三方集群庫
redis第三方集群庫
Zookeeper 分布式鎖
當用戶A修改訂單前,會根據訂單號到Zookeeper找對應的值,如果找到了,說明有用戶在操作相同訂單號的數據,
這時用戶A需要等待,如果沒有獲取到則在Zookeeper中創建訂單號為5的節點,
然后在去操作數據庫A,把訂單5的價格改為20,然后把數據庫數據同步到數據庫B,
此時如果用戶B想操作訂單為5的數據,它先去zookeeper判斷是否有值,這是肯定有,所有用戶B等待,等A操作結束后,
本次會話結束,Zookeeper自動刪除此節點,此時B在去操作數據庫,這樣就實現了分布式鎖問題。
修改數據時, 判斷有沒有改節點,如果沒有,就創建一個當前類型的節點,修改數據, 刪除節點,結束
如果創建節點失敗,就需要等待節點的釋放
分布式鎖,如果你有多個機器在訪問同一個共享資源,
那么這個時候,如果你需要加個鎖,讓多個分布式的機器在訪問共享資源的時候串行起來
那么這個時候,那個鎖,多個不同機器上的服務共享的鎖,就是分布式鎖
分布式鎖當然有很多種不同的實現方案,redis分布式鎖,zookeeper分布式鎖
二階段提交
分布式鎖服務:DistributedLock,根據各自的業務創建分布式鎖;
價格精度問題
Price Int64 沒有小數,通過專門字段表示小數位數
Decimal Int 小數位數
rpc 負載均衡方案 https://www.cnblogs.com/yjmyzz/p/rpc-load-balance-design.html
易百教程 : https://www.yiibai.com/go/golang-sha1-hashes.html
Kafka入門教程 Golang實現Kafka消息發送、接收 : https://blog.csdn.net/tflasd1157/article/details/81985722
go專門提供了一個神器,go tool trace
DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,
用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合
分布式是按功能加機器,集群是按瓶頸加機器
微服務是分布式系統的一種
分布式鎖比較復雜,分階段提交相對來說比較容易
這種自旋的機制不適合client服務器較多的情況
比如上千臺,一次只有一臺服務器搶到鎖,其他都在不停重試,這種行為跟DDoS沒區別
標準的無鎖隊列是沒有鎖的,因此無法等待就緒,隊列滿插不進去,數據就丟了
阻塞隊列使用鎖解決了上面的問題,但是又犧牲了性能
自旋鎖(spinlock)和互斥鎖(mutex)
大端 小端和網絡字節序說明
網絡版貪吃蛇 : https://github.com/maq128/gosnake
可以考慮以后把zookeeper換成etcd,zk的寫延遲過高,qps上不去
淺談數據庫并發控制 - 鎖和 MVCC : https://draveness.me/database-concurrency-control
- 111
- 日記
- 工具11
- 20200723
- 20200724
- 20201019
- 更多閱讀
- 回收站
- kafka 消費失敗和重復消費問題
- ABC
- 20200127
- MySQL從刪庫到跑路
- PHP從放棄到入門
- help
- 我的日志
- 博客驗證碼
- 項目版本管理
- C++ Json序列化
- 20190425
- 圖片
- 關鍵字
- 鏈接
- 分布式, 分庫, 分表
- 游戲開發
- goLand 編輯器
- 區塊鏈
- A-計劃
- B-計劃
- gin框架
- 鎖
- 力扣-答題
- 數據庫
- mysql 索引優化
- 挖礦
- 分布式鎖
- 跨域問題
- kafka
- 長連接
- 面向對象 面向過程 函數式編程
- websocket
- 其它問題
- zeroMq
- 工具
- linux - systemctl
- gitbook 部署
- Ubantu 基礎配置
- 備注服務
- 更換身份證(身份證到期了)
- 資源05
- 備注服務2
- 分布式
- TODO
- 資料準備
- 文章閱讀
- mysql 高可用
- 日志1
- 日記2 - 區塊鏈
- centos7 系統服務腳本
- copy_service 服務替換
- go kafka 孤人自嘲 - 偏移量 - kafka
- go vendor
- golang 顯示git工具欄
- 圖片資源
- 資訊01
- 資源01
- 資源02
- 資源03-數據庫
- 資源04
- php歷史數據
- golang 數據
- 文件1
- 文件2
- 文件3
- 文件4
- 文件5
- 文件6
- 文件7
- 文件8
- 文件9
- 文件10
- Flutter
- 管理后臺系統
- 重裝系統