原创 分佈式事務
1.數據不一致性產生原因 1.1.數據分散在多處: 多個DB; DB和緩存 案例:二手交易平臺案例:用戶、商品、交易等功能 電商平臺購買商品:下單(訂單庫)-》減庫存(商品庫)-》支付(交易庫) 2.
原创 分佈式鎖設計
1.分佈式鎖定義: 分佈式環境下,鎖定全局唯一資源, 請求處理串行化,實際表現互斥鎖 2.分佈式鎖目的 2.1.交易訂單鎖定 防止重複下單 解決業務層冪等問題 2.2.MQ消息消費冪等性 發送消息重複 消息消費端去重 比如手機提現
原创 電商秒殺系統
1.電商秒殺系統特點: 1.1.大量併發,在某一時間99%的用戶涌入 1.2.有效請求數很低,可以認爲有效請求數和庫存數一致,可能99%以上的流量都是無效的 1.3.庫存數據的一致性要求嚴格,不能超賣 2.秒殺系統架構思路 2.1.數據分
原创 完整的故障處理恢復機制
一、完整的故障處理恢復機制 服務的發現依賴註冊在zk上的服務節點 一般網關層與業務邏輯層都是使用長連接,一般不使用http協議(原因:IO不高,都包含頭信息,http經常是短連接),一般使用rpc通信 1.故障自動發現 1.1. 一般業務
原创 冪等設計
1.請求的冪等(請求重試) 定義:一個請求執行一次,讀請求不需要做冪等,寫請求需要,因爲寫請求可能對數據發生改變,原則:誰對數據發生改變就需要做冪等。 如:一個寫請求網關層發到業務邏輯層1上進行寫數據,但由於寫操作比較慢,返回網關狀態是寫
原创 高併發服務性能優化
一、性能優化手段 1.空間換時間 特點:系統時間是瓶頸 如:緩存複用計算結果,降低時間開銷,因爲CPU時間較內存容量更加昂貴。 2.時間換空間 特點:數據大小是瓶頸 如:網絡傳輸是瓶頸 使用系統時間換取傳輸的空間,使用http的gzip壓
原创 jvm參數優化
-Xms20m -Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC 1.堆的初始值與堆內存最大值一定要保持一致,這樣可以減少垃圾回收次數。 -
原创 Linux系統知識點
1.process:一個獨立運行單位 系統資源:cpu時間,存儲空間 2.OS: VM CPU: 時間:切片 緩存:緩存當前進程數據
原创 Hive常用操作命令
show databases; use hive; show tables; create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED
原创 Spark常見問題處理
1.shuffle reduce端緩衝大小以避免OOM map端的task是不斷的輸出數據的,數據量可能是很大的。但是,其實reduce端的task,並不是等到map端task將屬於自己的那份數據全部寫入磁盤文件之後,再去拉取的。map端
原创 Spark數據傾斜解決方案
1.聚合源數據 咱們現在,做一些聚合的操作,groupByKey、reduceByKey;groupByKey,說白了,就是拿到每個key對應的values;reduceByKey,說白了,就是對每個key對應的values
原创 Spark性能優化點(一)
1.分配更多的資源 1.1.增加executor 1.2.增加每個executor的cpu core 增加executor的並行能力,一個cpu core運行一個task 1.3.增加每個exec
原创 Spark性能調優(三) 算子調優
1.Map到MapPartitions的使用 如果是普通的map,比如一個partition中有1萬條數據;ok,那麼你的function要執行和計算1萬次。 但是,使用MapPartitions操作之後,一個task僅僅會執行一次fun
原创 k8s之Deployments
1.利用deployment創建pods 創建deployment_nginx.yml文件 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment
原创 使用Replicaset創建pods集羣
1.創建yaml配置文件 apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx labels: tier: frontend spec: replicas