分類: 🔧 後端開發

  • Kafka 實務坑筆記(三):Partition Key 設定不當導致重複處理

    問題現象

    用戶下訂單後要出貨,但系統竟然發動了兩次一模一樣的取號 Job,導致:

    (閱讀全文…)

  • Kafka 實務坑筆記(二):Consumer 被踢出 Group 的詭異現象

    問題現象

    某天早上塞入大量回滾的蝦皮 Queue,卻發現一個詭異現象

    (閱讀全文…)

  • Kafka 實務坑筆記(一):回滾資料導致 Queue 爆炸的慘痛教訓

    問題背景

    在電商系統中,我們經常需要回滾訂單資料讓用戶取得過去的訂單作為「鋪底」。原本的做法是每隔 5 分鐘往前打一次訂單 API,看似合理的設計卻埋下了災難的種子。

    (閱讀全文…)

  • git flow說明

    git flow

    網路版本

    我方版本

    gitGraph
           commit id: "main"
           branch develop
           commit id: "init"
           branch feature1
           commit id: "feature1"
           checkout develop
           branch feature2
           commit id: "feature2"
           checkout feature2
           branch mergeFeature
           merge  feature1
           commit id: "merge12ToDev"
           commit tag:"dev-0.0.1"
           branch ga
           commit id: "toPro"
           commit tag:"ga-0.0.1"
           checkout main
           merge  ga
           commit id: "mergeAllFeature"
           checkout develop
           merge  main
           commit id: "202301XX"
           checkout develop
           branch feature3
           commit id: "feature3"
           checkout develop
           branch feature4
           commit id: "feature4"
           checkout mergeFeature
           merge  feature3
           merge  feature4
           commit id: "merge34ToDev"
    
    

    主要的幾個分支

    main(有時候是master)

    基本上每一次上板後都要merge回這一個分支,此分支為主要基底,方向只有ga可以改回來他,平常不可改動他,任何情境下都不可以

    (閱讀全文…)

  • Elasticsearch 研究筆記:從 Solr Edismax 到 NEST 實戰

    研究目標

    1. Elastic 能否做到 Solr 的 Edismax
    2. 達到的情境:根據 List 的算法跟 String 算法是否一致
    3. 權重的分布情況

    Docker 單節點運行指令

    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -v es_data:/usr/share/elasticsearch/data elasticsearch:8.17.0

    Docker 集群配置 (docker-compose)

    version: '3'
    services:
      elasticsearch-node1:
        image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
        environment:
          - discovery.type=zen-disco
          - discovery.seed_hosts=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - cluster.initial_master_nodes=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - xpack.security.enabled=false
        volumes:
          - es_data1:/usr/share/elasticsearch/data
        networks:
          - elasticsearch-net
        ports:
          - "9200:9200"
          - "9300:9300"
    
      elasticsearch-node2:
        image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
        environment:
          - discovery.type=zen-disco
          - discovery.seed_hosts=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - cluster.initial_master_nodes=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - xpack.security.enabled=false
        volumes:
          - es_data2:/usr/share/elasticsearch/data
        networks:
          - elasticsearch-net
        ports:
          - "9201:9200"
          - "9301:9300"
    
      elasticsearch-node3:
        image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
        environment:
          - discovery.type=zen-disco
          - discovery.seed_hosts=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - cluster.initial_master_nodes=elasticsearch-node1,elasticsearch-node2,elasticsearch-node3
          - xpack.security.enabled=false
        volumes:
          - es_data3:/usr/share/elasticsearch/data
        networks:
          - elasticsearch-net
        ports:
          - "9202:9200"
          - "9302:9300"
    
    networks:
      elasticsearch-net:
        driver: bridge
    
    volumes:
      es_data1:
      es_data2:
      es_data3:

    啟動集群:

    (閱讀全文…)

  • DB備份還原

    pgsql 備份

    全備份全回朔

    資料備份

    “`bash~
    sudo mkdir -p /opt/backup/idempiere
    sudo chown postgres:postgres /opt/backup/idempiere
    sudo nano /opt/backup/backup_idempiere.sh
    sudo chmod +x /opt/backup/backup_idempiere.sh
    sudo chown postgres:postgres /opt/backup/backup_idempiere.sh

    (閱讀全文…)

  • 資料庫研習文件

    重要觀念

    • Page
    • 資料表的欄位長度
    • Delete的語法
    • IO的速度
    • filegroup跟相對應的disk
    • index的實作是怎麼樣的
    • 語法中的各種lock使用機制
    • 資料表的lock自動跳級
    • 執行計畫

    page

    從 sys.allocation_units 這個表裡面可以找到每個表的page狀態,有分total Page、used page、 data page
    通常 data< used < total

    (閱讀全文…)

  • 分散式資料庫訊息

    重要觀念

    分散式資料庫鎖

    https://www.gushiciku.cn/pl/gkKm/zh-tw

    (閱讀全文…)

  • schemaSpy

    結論

    這套工具可以掃描資料庫來產資料庫文件,But前提是你的DB 表欄位的關聯要做好,其次他產出後的文件並沒有BI需要後續整理,但是以第一步來說,沒問題

    (閱讀全文…)