【必須收藏】別再亂找TiDB 集群部署教程了,這篇保姆級教程來幫你!!| 博學谷狂野架構師

来源:https://www.cnblogs.com/jiagooushi/archive/2023/03/27/17262030.html
-Advertisement-
Play Games

TiDB 基礎使用 TiDB dashboard使用 TiDB Dashboard 是 TiDB 自 4.0 版本起提供的圖形化界面,可用於監控及診斷 TiDB 集群。TiDB Dashboard 內置於 TiDB 的 PD 組件中,無需獨立部署。 集群概況 查看集群整體 QPS 數值、執行耗時、消 ...


TiDB 基礎使用

Database of Databases - TiDB

TiDB dashboard使用

TiDB Dashboard 是 TiDB 自 4.0 版本起提供的圖形化界面,可用於監控及診斷 TiDB 集群。TiDB Dashboard 內置於 TiDB 的 PD 組件中,無需獨立部署。

image-20210309181206197

集群概況

查看集群整體 QPS 數值、執行耗時、消耗資源最多的幾類 SQL 語句等概況信息。

該頁面顯示了整個集群的概況,包含以下信息:

  • 整個集群的 QPS
  • 整個集群的查詢延遲
  • 最近一段時間內累計耗時最多的若幹 SQL 語句
  • 最近一段時間內運行時間超過一定閾值的慢查詢
  • 各個實例的節點數和狀態
  • 監控及告警信息
QPS

該區域顯示最近一小時整個集群的每秒成功和失敗查詢數量

image-20210310134900484

註意:該功能僅在部署了 Prometheus 監控組件的集群上可用,未部署監控組件的情況下會顯示為失敗。

延遲

該區域顯示最近一小時整個集群中 99.9%、99% 和 90% 查詢的延遲:

image-20210310134921004

註意:該功能僅在部署了 Prometheus 監控組件的集群上可用,未部署監控組件的情況下會顯示為失敗。

Top SQL 語句

該區域顯示最近一段時間內整個群集中累計耗時最長的 10 類 SQL 語句。查詢參數不一樣但結構一樣的 SQL 會歸為同一類 SQL 語句,在同一行中顯示

image-20210310135140342

註意:該功能僅在開啟了 SQL 語句分析功能的集群上可用。

最近的慢查詢

該區域預設顯示最近 30 分鐘內整個集群中最新的 10 條慢查詢

image-20210310135240284

預設情況下運行時間超過 300ms 的SQL 查詢即會被計為慢查詢並顯示在該表格中。

集群信息

該頁面上允許用戶查看整個集群中 TiDB、TiKV、PD、TiFlash 組件的運行狀態及其所在主機的運行狀態。

實例列表

實例列表列出了該集群中 TiDB、TiKV、PD 和 TiFlash 組件所有實例的概況信息。

image-20210310135617023

表格列解釋

表格包含以下列:

  • 地址:實例地址
  • 狀態:實例的運行狀態
  • 啟動時間:實例的啟動時間
  • 版本:實例版本號
  • 部署路徑:實例二進位文件所在目錄路徑
  • Git 哈希值:實例二進位對應的 Git 哈希值
實例狀態解釋

實例的運行狀態有:

  • 線上 (Up):實例正常運行。
  • 離線 (Down) 或無法訪問 (Unreachable):實例未啟動或對應主機存在網路問題。
  • 已縮容下線 (Tombstone):實例上的數據已被完整遷出並縮容完畢。僅 TiKV 或 TiFlash 實例存在該狀態。
  • 下線中 (Offline):實例上的數據正在被遷出並縮容。僅 TiKV 或 TiFlash 實例存在該狀態。
  • 未知 (Unknown):未知的實例運行狀態。
主機列表

主機列表列出了該集群中 TiDB、TiKV、PD 和 TiFlash 組件所有實例對應主機的運行情況。

image-20210310135820510

表格列解釋

表格包含以下列:

  • 地址:主機 IP 地址
  • CPU:主機 CPU 邏輯核心數
  • CPU 使用率:主機當前 1 秒的用戶態和內核態 CPU 使用率
  • 物理記憶體:主機總計的物理記憶體大小
  • 記憶體使用率:主機當前記憶體使用率
  • 部署磁碟:主機上運行實例所在磁碟的文件系統和磁碟掛載路徑
  • 磁碟使用率:主機上運行實例所在磁碟的空間使用率
SQL語句分析

該頁面可以查看所有 SQL 語句在集群上執行情況,常用於分析總耗時或單次耗時執行耗時較長的 SQL 語句。

執行列表頁

在該頁面中,結構一致的 SQL 查詢(即使查詢參數不一致)都會被歸為同一個 SQL 語句,例如 SELECT * FROM employee WHERE id IN (1, 2, 3)select * from EMPLOYEE where ID in (4, 5) 都屬於同一 SQL 語句 select * from employee where id in (...)

image-20210310140600074

執行詳情頁面

在列表中點擊任意一行可以進入該 SQL 語句的詳情頁查看更詳細的信息,這此信息包括三大部分:

  • SQL 語句概況:包括 SQL 模板,SQL 模板 ID,當前查看的時間範圍,執行計劃個數以及執行所在的資料庫(下圖區域 1)
  • 執行計劃列表:如果該 SQL 語句有多個執行計劃,則顯示該列表,可以選擇不同的執行計劃,在列表下方會顯示選中的執行計劃詳情;如果只有一個執行計劃,則該列表不顯示(下圖區域 2)
  • 執行計劃詳情:顯示選中的執行計劃的詳細信息,具體見下一小節(下圖區域 3)

image-20210310140919328

慢查詢

該頁面上能檢索和查看集群中所有慢查詢。

預設情況下,執行時間超過 300ms 的 SQL 查詢就會被視為慢查詢,被記錄到慢查詢日誌中,並可通過本功能對記錄到的慢查詢進行查詢。可調整 tidb_slow_log_threshold SESSION 變數或 TiDB slow-threshold 參數調整慢查詢閾值。

若關閉了慢查詢日誌,則本功能不可用。慢查詢日誌預設開啟,可通過修改 TiDB 配置 enable-slow-log 開啟或禁用。

慢查詢列表頁

可按時間範圍、慢查詢語句關聯的資料庫、SQL 關鍵字、SQL 類型、顯示的慢查詢語句數量等條件過濾,篩選慢查詢句。如下所示,預設顯示 30 分鐘內最近 100 條慢查詢。

image-20210310141242904

查看執行詳情

在列表中點擊任意一行可以顯示該慢查詢的詳細執行信息,包含:

  • SQL:慢查詢 SQL 文本(
  • 執行計劃:慢查詢的執行計劃
  • 其他分類好的 SQL 執行信息

image-20210310141345490

點擊展開 (Expand) 鏈接可以展開相應項的完整內容,點擊複製 (Copy) 鏈接可以複製完整內容到剪貼板。

集群診斷頁面

集群診斷是在指定的時間範圍內,對集群可能存在的問題進行診斷,並將診斷結果和一些集群相關的負載監控信息彙總成一個診斷報告。診斷報告是網頁形式,通過瀏覽器保存後可離線瀏覽和傳閱。

生成診斷報告

如果想對一個時間範圍內的集群進行診斷,查看集群的負載等情況,可以使用以下步驟來生成一段時間範圍的診斷報告:

  1. 設置區間的開始時間
  2. 設置區間長度,例如 10 min 。
  3. 點擊開始。

建議生成報告的時間範圍在 1 min ~ 60 min 內,目前不建議生成超過 1 小時範圍的報告。

image-20210310141645985

點擊開始 (start) 後,會看到以下界面,生成進度 (progress) 是生成報告的進度條,生成報告完成後,點擊查看報告 (View Full Report) 即可。

image-20210310141816552

TIDB集群部署

環境要求

操作系統建議配置

TiDB 作為一款開源分散式 NewSQL 資料庫,可以很好的部署和運行在 Intel 架構伺服器環境、ARM 架構的伺服器環境及主流虛擬化環境,並支持絕大多數的主流硬體網路。作為一款高性能資料庫系統,TiDB 支持主流的 Linux 操作系統環境。

Linux 操作系統平臺 版本
Red Hat Enterprise Linux 7.3 及以上
CentOS 7.3 及以上
Oracle Enterprise Linux 7.3 及以上
Ubuntu LTS 16.04 及以上

伺服器建議配置

TiDB 支持部署和運行在 Intel x86-64 架構的 64 位通用硬體伺服器平臺或者 ARM 架構的硬體伺服器平臺。對於開發,測試,及生產環境的伺服器硬體配置(不包含操作系統 OS 本身的占用)有以下要求和建議:

開發及測試環境
組件 CPU 記憶體 本地存儲 網路 實例數量(最低要求)
TiDB 8 核+ 16 GB+ 無特殊要求 千兆網卡 1(可與 PD 同機器)
PD 4 核+ 8 GB+ SAS, 200 GB+ 千兆網卡 1(可與 TiDB 同機器)
TiKV 8 核+ 32 GB+ SSD, 200 GB+ 千兆網卡 3
TiFlash 32 核+ 64 GB+ SSD, 200 GB+ 千兆網卡 1
TiCDC 8 核+ 16 GB+ SAS, 200 GB+ 千兆網卡 1
生產環境
組件 CPU 記憶體 硬碟類型 網路 實例數量(最低要求)
TiDB 16 核+ 32 GB+ SAS 萬兆網卡(2 塊最佳) 2
PD 4核+ 8 GB+ SSD 萬兆網卡(2 塊最佳) 3
TiKV 16 核+ 32 GB+ SSD 萬兆網卡(2 塊最佳) 3
TiFlash 48 核+ 128 GB+ 1 or more SSDs 萬兆網卡(2 塊最佳) 2
TiCDC 16 核+ 64 GB+ SSD 萬兆網卡(2 塊最佳) 2
監控 8 核+ 16 GB+ SAS 千兆網卡 1

環境準備

準備一臺部署主機,確保其軟體滿足需求:

  • 推薦安裝 CentOS 7.3 及以上版本
  • Linux 操作系統開放外網訪問,用於下載 TiDB 及相關軟體安裝包

最小規模的 TiDB 集群拓撲

實例 個數 IP 配置
TiKV 3 192.168.64.146 避免埠和目錄衝突
TiDB 1 192.168.64.146 預設埠 全局目錄配置
PD 1 192.168.64.146 預設埠 全局目錄配置
TiFlash 1 192.168.64.146 預設埠 全局目錄配置
Monitoring & Grafana 1 192.168.64.146 預設埠 全局目錄配置

安裝TiUP

什麼是TiUP

從 TiDB 4.0 版本開始,TiUP 作為新的工具,承擔著包管理器的角色,管理著 TiDB 生態下眾多的組件,如 TiDB、PD、TiKV 等。用戶想要運行 TiDB 生態中任何組件時,只需要執行 TiUP 一行命令即可,相比以前,極大地降低了管理難度。

安裝TiUP組件

使用普通用戶登錄中控機,以 tidb 用戶為例,後續安裝 TiUP 及集群管理操作均通過該用戶完成

TiUP 安裝過程十分簡潔,無論是 Darwin 還是 Linux 操作系統,執行一行命令即可安裝成功:

COPYcurl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

該命令將 TiUP 安裝在 $HOME/.tiup 文件夾下,之後安裝的組件以及組件運行產生的數據也會放在該文件夾下。同時,它還會自動將 $HOME/.tiup/bin 加入到 Shell Profile 文件的 PATH 環境變數中,這樣你就可以直接使用 TiUP 了。

image-20210308095820951

配置TiUP環境

重新聲明全局環境變數

COPYsource .bash_profile
檢查TiUP 工具是否安裝
COPYwhich tiup

image-20210308100108540

安裝 cluster 組件
COPYtiup cluster

image-20210308100218193

升級cluster組件

如果機器已經安裝 TiUP cluster,需要更新軟體版本

COPYtiup update --self && tiup update cluster

預期輸出 “Update successfully!” 字樣。

image-20210308100305454

編輯部署文件

請根據不同的集群拓撲,編輯 TiUP 所需的集群初始化配置文件。

常見的部署場景
最小拓撲架構

最基本的集群拓撲,包括 tidb-server、tikv-server、pd-server,適合 OLTP 業務。

增加 TiFlash 拓撲架構

包含最小拓撲的基礎上,同時部署 TiFlash。TiFlash 是列式的存儲引擎,已經逐步成為集群拓撲的標配。適合 Real-Time HTAP 業務。

增加 TiCDC 拓撲架構

包含最小拓撲的基礎上,同時部署 TiCDC。TiCDC 是 4.0 版本開始支持的 TiDB 增量數據同步工具,支持多種下游 (TiDB/MySQL/MQ)。相比於 TiDB Binlog,TiCDC 有延遲更低、天然高可用等優點。在部署完成後,需要啟動 TiCDC,通過 cdc cli 創建同步任務。

增加 TiDB Binlog 拓撲架構

包含最小拓撲的基礎上,同時部署 TiDB Binlog。TiDB Binlog 是目前廣泛使用的增量同步組件,可提供準實時備份和同步功能。

增加 TiSpark 拓撲架構

包含最小拓撲的基礎上,同時部署 TiSpark 組件。TiSpark 是 PingCAP 為解決用戶複雜 OLAP 需求而推出的產品。TiUP cluster 組件對 TiSpark 的支持目前為實驗性特性。

混合部署拓撲架構

適用於單台機器,混合部署多個實例的情況,也包括單機多實例,需要額外增加目錄、埠、資源配比、label 等配置。

單機極簡部署

部署主機軟體和環境要求:

  • 部署需要使用部署主機的 root 用戶及密碼
  • 部署主機關閉防火牆或者開放 TiDB 集群的節點間所需埠
單機極簡拓撲
實例 IP 開放埠
grafana 192.168.64.152 3000
pd 192.168.64.152 2379/2380
prometheus 192.168.64.152 9090
tidb 192.168.64.152 4000/10080
tiflash 192.168.64.152 9000/8123/3930/20170/20292/8234
tikv 192.168.64.152 20160/20180
tikv 192.168.64.152 20161/20181
tikv 192.168.64.152 20162/20182
編輯配置文件

按下麵的配置模板,編輯配置文件,命名為 topo.yaml

  • user: "tidb":表示通過 tidb 系統用戶(部署會自動創建)來做集群的內部管理,預設使用 22 埠通過 ssh 登錄目標機器
  • replication.enable-placement-rules:設置這個 PD 參數來確保 TiFlash 正常運行
  • host:設置為本部署主機的 IP
COPY# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb-deploy"
 data_dir: "/tidb-data"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   log.slow-threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 192.168.64.146

tidb_servers:
 - host: 192.168.64.146

tikv_servers:
 - host: 192.168.64.146
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }

 - host: 192.168.64.146
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }

 - host: 192.168.64.146
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }

tiflash_servers:
 - host: 192.168.64.146

monitoring_servers:
 - host: 192.168.64.146

grafana_servers:
 - host: 192.168.64.146

執行集群部署命令

命令格式

COPYtiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
參數解釋
  • 參數 <cluster-name> 表示設置集群名稱
  • 參數 <tidb-version> 表示設置集群版本,可以通過 tiup list tidb 命令來查看當前支持部署的 TiDB 版本
  • 參數: --user root通過 root 用戶登錄到目標主機完成集群部署,該用戶需要有 ssh 到目標機器的許可權,並且在目標機器有 sudo 許可權。也可以用其他有 ssh 和 sudo 許可權的用戶完成部署。

檢查TiDB最新版本

可以通過執行 tiup list tidb 來查看 TiUP 支持的版本

COPYtiup list tidb

經過執行發現 最新可用的TiDB版本是 v4.0.11

執行部署命令

COPYtiup cluster deploy tidb-cluster 4.0.11 ./topo.yaml --user root -p

下麵輸入y繼續後輸入密碼進行安裝界面

image-20210308140623236

進入安裝界面,等待安裝即可

image-20210308102532412

如果出現deployed successfully表示部署成功,集群名稱是tidb-cluster

image-20210308103047705

啟動集群

COPYtiup cluster start tidb-cluster

image-20210308103329722

查看節點狀態

COPYtiup cluster display tidb-cluster

所有節點都是Up狀態說明都已經啟動就緒了

image-20210309113426102

測試TiDB集群

Mysql連接集群

TiDB的連接埠預設是4000, 密碼是空,可用使用Mysql客戶端以及第三方工具進行連接

安裝MySql客戶端
COPYyum -y install mysql
MySql客戶端連接

訪問 TiDB 資料庫,密碼為空

COPYmysql -h 192.168.64.146 -P 4000 -u root

image-20210308104058321

第三方客戶端訪問Mysql

使用SQLyog訪問TiDB

創建TiDB連接

image-20210308104229510

連接後就可以操作資料庫了

image-20210308104434635

訪問Grafana監控

通過 http://{grafana-ip}:3000 訪問集群 Grafana 監控頁面,預設用戶名和密碼均為 admin。

image-20210308104706041

訪問Dashboard

通過 http://{pd-ip}:2379/dashboard 訪問集群 TiDB Dashboard監控頁面,預設用戶名為 root,密碼為空。

image-20210308104829297

查看集群列表

COPYtiup cluster list

image-20210308110936945

查看集群拓撲

COPYtiup cluster display tidb-cluster

image-20210308111048597

TiDB擴縮容

當前集群部署拓撲

實例 IP 存儲路徑 部署路徑
grafana 192.168.64.152 3000 /tidb-deploy/grafana-3000
pd 192.168.64.152 2379/2380 /tidb-data/pd-2379 /tidb-deploy/pd-2379
prometheus 192.168.64.152 9090 /tidb-data/prometheus-9090 /tidb-deploy/prometheus-9090
tidb 192.168.64.152 4000/10080 /tidb-deploy/tidb-4000
tiflash 192.168.64.152 9000/8123/3930/20170/20292/8234 /tidb-data/tiflash-9000 /tidb-deploy/tiflash-9000
tikv 192.168.64.152 20160/20180 /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
tikv 192.168.64.152 20161/20181 /tidb-data/tikv-20161 /tidb-deploy/tikv-20161
tikv 192.168.64.152 20162/20182 /tidb-data/tikv-20162 /tidb-deploy/tikv-20162

擴容TiKV節點

需要擴容一個TiKV節點

實例 IP 存儲路徑 部署路徑
tikv 192.168.64.152 20163/20183 /tidb-data/tikv-20163 /tidb-deploy/tikv-20163
編寫擴容腳本

在 scale-out.yaml 文件添加擴容拓撲配置

COPYvi scale-out.yaml
COPYtikv_servers:
  - host: 192.168.64.152
    ssh_port: 22
    port: 20163
    status_port: 20183
    deploy_dir: /tidb-deploy/tikv-20163
    data_dir: /tidb-data/tikv-20163
    config:
        server.labels:
            host: logic-host-4
執行擴容命令
命令格式
COPYtiup cluster scale-out <cluster-name> scale-out.yaml -p
  • cluster-name:TiDB集群名稱
  • p:使用密碼方式登錄當前機器
執行命令
COPYtiup cluster scale-out tidb-cluster scale-out.yaml -p

輸入命令後,確認輸入機器密碼

image-20210308152355455

出現successfully表示節點擴容成功

image-20210308152524912

驗證擴容信息
查看節點信息
COPYtiup cluster display tidb-cluster

我們看到Tikv已經增加了一個節點

image-20210308152647801

通過dashboard查看

也可以看到擴容的節點信息

image-20210308152905774

縮容TiKV節點

查看節點信息
COPYtiup cluster display tidb-cluster

當前TiKV是4個節點

image-20210308152647801

執行縮容操作
縮容命令
COPYtiup cluster scale-in <cluster-name> --node 192.168.64.152:20163

參數解釋

  • cluster-name:集群名稱
  • node:需要刪除的節點地址
執行命令
COPYtiup cluster scale-in tidb-cluster --node 192.168.64.152:20163

出現確認操作後,輸入y確認執行就可以執行縮容操作了

image-20210308153500262

驗證縮容信息
查看節點信息
COPYtiup cluster display tidb-cluster

我們看到需要縮容的節點狀態是Tombstone說明已經下線,下線需要一定時間,下線節點的狀態變為 Tombstone 就說明下線成功

image-20210308153639934

通過dashboard查看

也可以看到縮容的節點已經不存在了,說明縮容成功

image-20210308153901260

博客內容遵循 署名-非商業性使用-相同方式共用 4.0 國際 (CC BY-NC-SA 4.0) 協議

本文永久鏈接是:http://www.baiyp.ren/TIDB%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2.html

更新於:2021年5月27日

集群部署

TIDB

本文由傳智教育博學谷狂野架構師教研團隊發佈。

如果本文對您有幫助,歡迎關註點贊;如果您有任何建議也可留言評論私信,您的支持是我堅持創作的動力。

轉載請註明出處!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用 VLD 記憶體泄漏檢測工具輔助開發時整理的學習筆記。本篇介紹 VLD 配置文件中配置項 ForceIncludeModules 的使用方法。 ...
  • sychronized是java多線程非常關鍵的一個知識點,這篇博客將從synchronized幾個用法以及代碼來學習。 sychronized的作用是能夠保證同一時間只有一個線程來運行這塊代碼,達到併發效果,如果沒有保證併發的話,在多線程編碼中就會產生致命問題,比如經典的i++,這也是資料庫併發中 ...
  • 使用 VLD 記憶體泄漏檢測工具輔助開發時整理的學習筆記。本篇介紹 VLD 配置文件中配置項 AggregateDuplicates 的使用方法。 ...
  • 本篇將對 Yarn 調度器中的資源搶占方式進行探究。分析當集群資源不足時,占用量資源少的隊列,是如何從其他隊列中搶奪資源的。我們將深入源碼,一步步分析搶奪資源的具體邏輯。 ...
  • 什麼是 Spdlog 日誌庫 Spdlog 是一個 C++ 的日誌庫,它具有高效、易用、跨平臺等特點。它可以寫入到控制台、文件等輸出目標,支持多種日誌級別、多線程安全等功能,非常適合在 C++ 項目中使用。 Spdlog 日誌庫的歷史和背景 Spdlog 日誌庫最初由 Gabi Melman 開發, ...
  • Sass IT寶庫整理的SASS快速參考備忘單,列出了 SASS 最有用的功能Sass 基礎,為開發人員分享快速參考備忘單。 Sass 是 Syntactically Awesome Stylesheets 的簡寫,是一個最初由 Hampton Catlin 設計並由 Natalie Weizenb ...
  • 內容援引自JavaGuide、嗶哩嗶哩黑馬程式員資料庫從入門到精通,感謝各位大神原創分享 資料庫Mysql 常見的關係型資料庫包括mysql、SQL Server、Oracle、常見的非關係型資料庫Redis、MongDB等。 特點 Mysql開源免費,生態完善,支持事務、高可用(讀寫分離、分庫分表 ...
  • Spdlog 是一個快速、非同步的 C++ 日誌庫,被廣泛應用於 C++ 項目中。在這篇文章中,我們將探討 Spdlog 日誌庫的實現原理。 Spdlog 的結構 Spdlog 由五個主要組件構成:Loggers、Sinks、Formatters、Async Logger 和 Registry。每個組 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...