【YashanDB知识库】YCP高可用部署离线升级-rpc升级详细步骤

简介: YCP高可用部署离线升级-rpc升级详细步骤

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7686586.html?templateId=1718516

以23.2.4.100版本升级到23.2.11.100版本为例

升级前先对YCP主备节点执行备份

1、主节点执行

/opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

[dugg@localhost upgrade]$ /opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

backup ycm, tag: 20240926-153611...

[backup db] exec yasbak deploy

 hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path

-------------------------------------------------------------------------------------------------------------------------------------------------

 host0001 | db | 1-1:1 | 739908 | open | normal | primary | 192.168.3.102:3688 | /data1/dugg/yasdb_data/db-1-1

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0002 | db | 1-2:2 | 658538 | open | normal | standby | 192.168.3.105:3688 | /data1/dugg/yasdb_data/db-1-2

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0003 | db | 1-3:3 | 647339 | open | normal | standby | 192.168.3.106:3688 | /data1/dugg/yasdb_data/db-1-3

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

cluster:yashandb deploy yasbak succeed

[backup db] exec yasbak run backup database

connecting to yasdb node: 192.168.3.106:3688

backup 192.168.3.106:3688 succeed

[backup db] backup yashandb success

[backup dir] cp data/cert

[backup dir] cp data/yasdbpasswd.ini

[backup dir] cp etc

[backup dir] cp loki/loki-local-config.yaml

[backup dir] cp loki/loki-rules.yaml.bak

[backup dir] cp loki/rules

[backup dir] cp loki/tmp_rules

[backup dir] cp monit/conf

[backup dir] cp monit/data/conf

[backup dir] cp monit/data/monitrc

[backup dir] cp prometheus-2.28.1/prometheus.yml

[backup dir] cp prometheus-2.28.1/rules.yml

[backup dir] cp promtail/positions.yaml

[backup dir] cp promtail/promtail-local-config.yaml

[backup dir] cp static

[backup dir] cp yashandb_exporter/yashandb-metrics.yml

[backup dir] cp yashandb_exporter/yashandb-targets.yml

[backup dir] cp yas-hcs-api/conf

[backup dir] tar /opt/ycm/ycm/bak/ycm-20240926-153611.tar.gz

[backup dir] backup ycm success

[clear old backup] back up file is less than three, skip remove

back up success, backup set in /opt/ycm/ycm/bak/ycm-20240926-153611.tar.gz

2、第一个备节点执行

/opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

[dugg@controller upgrade]$ /opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

backup ycm, tag: 20240926-153650...

[backup db] exec yasbak deploy

 hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path

-------------------------------------------------------------------------------------------------------------------------------------------------

 host0001 | db | 1-1:1 | 739908 | open | normal | primary | 192.168.3.102:3688 | /data1/dugg/yasdb_data/db-1-1

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0002 | db | 1-2:2 | 658538 | open | normal | standby | 192.168.3.105:3688 | /data1/dugg/yasdb_data/db-1-2

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0003 | db | 1-3:3 | 647339 | open | normal | standby | 192.168.3.106:3688 | /data1/dugg/yasdb_data/db-1-3

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

cluster:yashandb deploy yasbak succeed

[backup db] exec yasbak run backup database

connecting to yasdb node: 192.168.3.106:3688

backup 192.168.3.106:3688 succeed

[backup db] backup yashandb success

[backup dir] cp data/cert

[backup dir] cp data/yasdbpasswd.ini

[backup dir] cp etc

[backup dir] cp loki/loki-local-config.yaml

[backup dir] cp loki/loki-rules.yaml.bak

[backup dir] cp loki/rules

[backup dir] cp loki/tmp_rules

[backup dir] cp monit/conf

[backup dir] cp monit/data/conf

[backup dir] cp monit/data/monitrc

[backup dir] cp prometheus-2.28.1/prometheus.yml

[backup dir] cp prometheus-2.28.1/rules.yml

[backup dir] cp promtail/positions.yaml

[backup dir] cp promtail/promtail-local-config.yaml

[backup dir] cp static

[backup dir] cp yashandb_exporter/yashandb-metrics.yml

[backup dir] cp yashandb_exporter/yashandb-targets.yml

[backup dir] cp yas-hcs-api/conf

[backup dir] tar /opt/ycm/ycm/bak/ycm-20240926-153650.tar.gz

[backup dir] backup ycm success

[clear old backup] back up file is less than three, skip remove

back up success, backup set in /opt/ycm/ycm/bak/ycm-20240926-153650.tar.gz

3、第二个备节点执行

/opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

[dugg@host106 upgrade]$ /opt/ycm/ycm/scripts/backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /data1/dugg/yasdb_home/yashandb/23.2.2.100 --cata-log /data1/dugg/yasdb_home/yashandb/23.2.2.100/catalog --addr 192.168.3.102:3675 -k 0d09e5d01100dc76 -u sys -p Cod-2022

backup ycm, tag: 20240926-153703...

[backup db] exec yasbak deploy

 hostid | node_type | nodeid | pid | instance_status | database_status | database_role | listen_address | data_path

-------------------------------------------------------------------------------------------------------------------------------------------------

 host0001 | db | 1-1:1 | 739908 | open | normal | primary | 192.168.3.102:3688 | /data1/dugg/yasdb_data/db-1-1

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0002 | db | 1-2:2 | 658538 | open | normal | standby | 192.168.3.105:3688 | /data1/dugg/yasdb_data/db-1-2

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

 host0003 | db | 1-3:3 | 647339 | open | normal | standby | 192.168.3.106:3688 | /data1/dugg/yasdb_data/db-1-3

----------+-----------+--------+--------+-----------------+-----------------+---------------+--------------------+-------------------------------

cluster:yashandb deploy yasbak succeed

[backup db] exec yasbak run backup database

connecting to yasdb node: 192.168.3.106:3688

backup 192.168.3.106:3688 succeed

[backup db] backup yashandb success

[backup dir] cp data/cert

[backup dir] cp data/yasdbpasswd.ini

[backup dir] cp etc

[backup dir] cp loki/loki-local-config.yaml

[backup dir] cp loki/loki-rules.yaml.bak

[backup dir] cp loki/rules

[backup dir] cp loki/tmp_rules

[backup dir] cp monit/conf

[backup dir] cp monit/data/conf

[backup dir] cp monit/data/monitrc

[backup dir] cp prometheus-2.28.1/prometheus.yml

[backup dir] cp prometheus-2.28.1/rules.yml

[backup dir] cp promtail/positions.yaml

[backup dir] cp promtail/promtail-local-config.yaml

[backup dir] cp static

[backup dir] cp yashandb_exporter/yashandb-metrics.yml

[backup dir] cp yashandb_exporter/yashandb-targets.yml

[backup dir] cp yas-hcs-api/conf

[backup dir] tar /opt/ycm/ycm/bak/ycm-20240926-153703.tar.gz

[backup dir] backup ycm success

[clear old backup] back up file is less than three, skip remove

back up success, backup set in /opt/ycm/ycm/bak/ycm-20240926-153703.tar.gz

升级主节点

1、解压安装包、三个节点都解压

[dugg@localhost upgrade]$ tar -zxvf yashandb-cloud-platform-23.2.11.100-linux-x86_64.tar.gz

2、生成被托管服务器的配置文件

sudo ./scripts/yasadm host gen -i /opt/ycm --rpc-port 9072

sudo ./scripts/yasadm host gen -i /opt/ycm --rpc-port 9072



-i, --install-dir 管理平台的安装路径

--rpc-port 管理平台服务器的升级RPC端口,用于RPC升级方式,默认为9072



[dugg@localhost upgrade]$ cd ycm

[dugg@localhost ycm]$ sudo ./scripts/yasadm host gen -i /opt/ycm --rpc-port 9072

command executed successfully

[dugg@localhost ycm]$ ll

total 24308

drwxrwxr-x. 3 dugg dugg 79 Sep 18 17:19 etc

drwxrwxr-x. 2 dugg dugg 10 Sep 18 17:19 log

drwxrwxr-x. 2 dugg dugg 4096 Sep 18 17:19 packages

drwxrwxr-x. 3 dugg dugg 67 Sep 18 17:19 scripts

drwxrwxr-x. 5 dugg dugg 4096 Sep 18 17:19 static

-rw-r--r--. 1 root root 1123 Sep 26 15:38 ycm_host.toml

-rwxrwxr-x. 1 dugg dugg 24875776 Sep 18 17:19 ycm-init

3、执行升级命令

sudo ./scripts/yasadm upgrade -i /opt/ycm -t ycm_host.toml --imp-exp-install-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100 --rpc --role primary

sudo ./scripts/yasadm upgrade -i /opt/ycm -t ycm_host.toml --imp-exp-install-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100 --rpc --role primary



-i, --install-dir 管理平台的安装路径

-t, --toml 被托管服务器信息的配置文件

--imp-exp-install-dir 安装有imp和exp的yashandb客户端路径,用于备份平台后端yashandb的数据

--role primary 升级主YCP

--plugin-package 可选,其它CPU架构的系统安装包,如果平台同时管理了x86_64和aarch64主机,该参数必填



[dugg@localhost ycm]$ ./scripts/yasadm upgrade -i /opt/ycm -t ycm_host.toml --imp-exp-install-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100 --rpc --role primary --plugin-package /home/dugg/install/yashandb-cloud-platform-23.2.11.100-linux-aarch64.tar.gz

2024/09/26 16:21:56 upgrade check success

2024/09/26 16:21:56 [HOST INFO]:

HostId: host-750a9921, ManageIp: 192.168.3.105, HostName: controller

HostId: host-be7ed325, ManageIp: 192.168.3.106, HostName: host106

HostId: host-8db9f906, ManageIp: 192.168.3.102, HostName: localhost.localdomain

HostId: host-4f679140, ManageIp: 192.168.8.4, HostName: localhost.localdomain

HostId: host-5a28f120, ManageIp: 192.168.24.59, HostName: k8s-24.59

HostId: host-caaa2e41, ManageIp: 192.168.24.49, HostName: k8s-24.49

HostId: host-c42d7e89, ManageIp: 192.168.24.48, HostName: k8s-24.48

Are you sure to upgrade YCP? [yes/no]

yes

yes

2024/09/26 16:22:00 genertate upgrade backup config success

2024/09/26 16:22:04 deploy host host-750a9921 upgrade agent success

2024/09/26 16:22:05 deploy host host-be7ed325 upgrade agent success

2024/09/26 16:22:07 deploy host host-8db9f906 upgrade agent success

2024/09/26 16:22:08 deploy host host-4f679140 upgrade agent success

2024/09/26 16:22:10 deploy host host-5a28f120 upgrade agent success

2024/09/26 16:22:11 deploy host host-caaa2e41 upgrade agent success

2024/09/26 16:22:12 deploy host host-c42d7e89 upgrade agent success

2024/09/26 16:22:13 deploy upgrade agent success

2024/09/26 16:22:13 upgrade 23.2.4.100 to 23.2.11.100 begin

2024/09/26 16:22:13 create upgrade record in yashandb success

2024/09/26 16:22:14 [host-4f679140] stop ycm-agent process success

2024/09/26 16:22:14 [host-c42d7e89] stop ycm-agent process success

2024/09/26 16:22:14 [host-caaa2e41] stop ycm-agent process success

2024/09/26 16:22:14 [host-be7ed325] stop ycm-agent process success

2024/09/26 16:22:14 [host-8db9f906] stop ycm-agent process success

2024/09/26 16:22:14 [host-750a9921] stop ycm-agent process success

2024/09/26 16:22:14 [host-5a28f120] stop ycm-agent process success

[WARN]: /opt/ycm/ycm/scripts/yas-hc-api.sh does not exist, skip operate

2024/09/26 16:22:30 stop ycm process success

2024/09/26 16:22:30 stop all ycm/ycm-agent process success

2024/09/26 16:22:33 backup ycm success

2024/09/26 16:22:33 backup ycm-agent host-750a9921 success

2024/09/26 16:22:34 backup ycm-agent host-be7ed325 success

2024/09/26 16:22:35 backup ycm-agent host-8db9f906 success

2024/09/26 16:22:35 backup ycm-agent host-4f679140 success

2024/09/26 16:22:35 backup ycm-agent host-5a28f120 success

2024/09/26 16:22:36 backup ycm-agent host-caaa2e41 success

2024/09/26 16:22:36 backup ycm-agent host-c42d7e89 success

2024/09/26 16:22:36 backup all ycm/ycm-agent success

2024/09/26 16:22:44 install ycm upgrade package success

2024/09/26 16:22:47 install ycm-agent host-750a9921 upgrade package success

2024/09/26 16:22:51 install ycm-agent host-be7ed325 upgrade package success

2024/09/26 16:22:55 install ycm-agent host-8db9f906 upgrade package success

2024/09/26 16:23:00 install ycm-agent host-4f679140 upgrade package success

2024/09/26 16:23:02 install ycm-agent host-5a28f120 upgrade package success

2024/09/26 16:23:05 install ycm-agent host-caaa2e41 upgrade package success

2024/09/26 16:23:09 install ycm-agent host-c42d7e89 upgrade package success

2024/09/26 16:23:09 install all ycm/ycm-agent upgrade package success

2024/09/26 16:23:10 replace ycm/ycm-agent dir and file success

2024/09/26 16:23:10 exec upgrade sql success

2024/09/26 16:23:10 add default data success

2024/09/26 16:23:10 update config file ycm.yaml success

2024/09/26 16:23:10 update backup strategy in db success

2024/09/26 16:23:10 upgrade metadata success

2024/09/26 16:23:21 [host-c42d7e89] start ycm-agent process success

2024/09/26 16:23:21 [host-caaa2e41] start ycm-agent process success

2024/09/26 16:23:21 [host-4f679140] start ycm-agent process success

2024/09/26 16:23:21 [host-8db9f906] start ycm-agent process success

2024/09/26 16:23:21 [host-be7ed325] start ycm-agent process success

2024/09/26 16:23:21 [host-5a28f120] start ycm-agent process success

2024/09/26 16:23:21 [host-750a9921] start ycm-agent process success

2024/09/26 16:23:21 start ycm process success

2024/09/26 16:23:21 update host kernel arch success

2024/09/26 16:23:21 update upgrade status in yashandb success

2024/09/26 16:23:21 update upgrade stauts in config success

2024/09/26 16:23:21 upgrade success

2024/09/26 16:23:30 uncompleted upgrade instances:

instId: ycp0002; ListenIp: 0.0.0.0; electionIp: 192.168.3.105; port: 9010

instId: ycp0003; ListenIp: 0.0.0.0; electionIp: 192.168.3.106; port: 9010

command executed successfully

升级备节点

1、第一个备节点

sudo ./scripts/yasadm upgrade -i /opt/ycm --lib-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100/lib --role standy

[dugg@controller ycm]$ sudo ./scripts/yasadm upgrade -i /opt/ycm --lib-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100/lib --role standby

2024/09/26 16:51:37 [HOST INFO]:

Are you sure to upgrade YCP? [yes/no]

yes

yes

2024/09/26 16:51:40 genertate upgrade backup config success

2024/09/26 16:51:40 upgrade 23.2.4.100 to 23.2.11.100 begin

2024/09/26 16:51:40 create upgrade record in yashandb success

[WARN]: /opt/ycm/ycm/scripts/yas-hc-api.sh does not exist, skip operate

2024/09/26 16:51:41 stop ycm process success

2024/09/26 16:51:41 backup ycm success

2024/09/26 16:51:46 install ycm upgrade package success

2024/09/26 16:51:46 replace ycm dir and file success

2024/09/26 16:51:46 update config file ycm.yaml success

2024/09/26 16:51:54 start ycm process success

2024/09/26 16:51:54 update upgrade status in yashandb success

2024/09/26 16:51:54 update upgrade stauts in config success

2024/09/26 16:51:54 upgrade success

2024/09/26 16:51:54 uncompleted upgrade instances:

instId: ycp0003; ListenIp: 0.0.0.0; electionIp: 192.168.3.106; port: 9010

command executed successfully

2、第二个备节点

sudo ./scripts/yasadm upgrade -i /opt/ycm --lib-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100 --role standy

[dugg@host106 ycm]$ sudo ./scripts/yasadm upgrade -i /opt/ycm --lib-dir /data1/dugg/yasdb_home/yashandb/23.2.2.100/lib --role standby

2024/09/26 16:52:19 [HOST INFO]:

Are you sure to upgrade YCP? [yes/no]

yes

yes

2024/09/26 16:52:21 genertate upgrade backup config success

2024/09/26 16:52:21 upgrade 23.2.4.100 to 23.2.11.100 begin

2024/09/26 16:52:21 create upgrade record in yashandb success

[WARN]: /opt/ycm/ycm/scripts/yas-hc-api.sh does not exist, skip operate

2024/09/26 16:52:22 stop ycm process success

2024/09/26 16:52:22 backup ycm success

2024/09/26 16:52:27 install ycm upgrade package success

2024/09/26 16:52:27 replace ycm dir and file success

2024/09/26 16:52:27 update config file ycm.yaml success

2024/09/26 16:52:35 start ycm process success

2024/09/26 16:52:35 update upgrade status in yashandb success

2024/09/26 16:52:35 update upgrade stauts in config success

2024/09/26 16:52:35 upgrade success

command executed successfully

3、查看升级后版本

cat /opt/ycm/ycm/etc/upgrade/version.toml

[dugg@host106 upgrade]$ cat /opt/ycm/ycm/etc/upgrade/version.toml

version = "23.2.11.100"



[[upgrade]]

source_version = ["23.1.2.100"]

path = "23.1.2.100"



[[upgrade]]

source_version = ["23.1.3.100", "23.1.4.1"]

path = "23.1.3.100"



[[upgrade]]

source_version = ["23.1.4.2", "23.1.4.3", "23.2.1.100", "23.2.1.103", "23.2.1.104", "23.2.1.105", "23.2.2.100", "23.2.3.100", "23.2.4.100", "23.2.5.100", "23.2.6.100", "23.2.7.100", "23.2.8.100", "23.2.8.101", "23.2.9.100", "23.2.10.100"]
相关文章
|
11月前
|
数据库
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
|
5月前
|
人工智能 自然语言处理 API
利用Zyplayer-doc知识库部署企微智能客服
Zyplayer-doc 是一款支持私有化部署的 WIKI 知识库系统,适合个人和企业使用,支持在线文档管理,易上手且成本低。最新版本新增飞书、钉钉、企业微信等平台的 AI 问答接入功能,尤其可与企业微信客服对接,实现智能客服部署。
|
7月前
|
存储 自然语言处理 监控
民航机场大模型私有知识库搭建步骤:技术选型 + 实施路径全解析!
近年来,民航机场面临知识管理难题,大模型技术为构建高效、安全的企业知识库提供了新思路。本文介绍知识库发展历程、大模型应用挑战,并详述私有化部署策略与八大实施步骤,助力民航提升运营效率与服务质量。
|
11月前
|
数据库
【YashanDB知识库】数据库升级后用yasboot在线扩充备节点出现报错
本文来自YashanDB官网,讨论从22.2.4.1升级至23.2.2.100过程中遇到的在线扩容问题。使用yasboot增加备节点时出现“no replication addr in node 1-1”错误,尽管数据库中存在相关配置。原因是早期托管功能未支持扩容,导致OM无法获取新库配置。提供两种规避方法:一是手动修改`cod_domor.db`信息并调整配置文件;二是手动安装YashanDB并配置备机。最终已向研发反馈,将在扩容时优化配置检查逻辑。
|
11月前
【YashanDB知识库】yashandb升级后,yasboot restart出现版本回退、报错control file version incompatible
【YashanDB知识库】yashandb升级后,yasboot restart出现版本回退、报错control file version incompatible
|
负载均衡 Dubbo Java
Dubbo 3.x:探索阿里巴巴的开源RPC框架新技术
随着微服务架构的兴起,远程过程调用(RPC)框架成为了关键组件。Dubbo,作为阿里巴巴的开源RPC框架,已经演进到了3.x版本,带来了许多新特性和技术改进。本文将探讨Dubbo 3.x中的一些最新技术,包括服务注册与发现、负载均衡、服务治理等,并通过代码示例展示其使用方式。
862 9
|
设计模式 负载均衡 网络协议
【分布式技术专题】「分布式技术架构」实践见真知,手把手教你如何实现一个属于自己的RPC框架(架构技术引导篇)
【分布式技术专题】「分布式技术架构」实践见真知,手把手教你如何实现一个属于自己的RPC框架(架构技术引导篇)
894 0
|
存储 缓存 Linux
【实战指南】嵌入式RPC框架设计实践:六大核心类构建高效RPC框架
在先前的文章基础上,本文讨论如何通过分层封装提升一个针对嵌入式Linux的RPC框架的易用性。设计包括自动服务注册、高性能通信、泛型序列化和简洁API。框架分为6个关键类:BindingHub、SharedRingBuffer、Parcel、Binder、IBinder和BindInterface。BindingHub负责服务注册,SharedRingBuffer实现高效数据传输,Parcel处理序列化,而Binder和IBinder分别用于服务端和客户端交互。BindInterface提供简单的初始化接口,简化应用集成。测试案例展示了客户端和服务端的交互,验证了RPC功能的有效性。
824 87
|
自然语言处理 负载均衡 API
gRPC 一种现代、开源、高性能的远程过程调用 (RPC) 可以在任何地方运行的框架
gRPC 是一种现代开源高性能远程过程调用(RPC)框架,支持多种编程语言,可在任何环境中运行。它通过高效的连接方式,支持负载平衡、跟踪、健康检查和身份验证,适用于微服务架构、移动设备和浏览器客户端连接后端服务等场景。gRPC 使用 Protocol Buffers 作为接口定义语言,支持四种服务方法:一元 RPC、服务器流式处理、客户端流式处理和双向流式处理。
|
Dubbo 网络协议 Java
RPC框架:一文带你搞懂RPC
这篇文章全面介绍了RPC(远程过程调用)的概念、原理和应用场景,解释了RPC如何工作以及为什么在分布式系统中广泛使用,并探讨了几种常用的RPC框架如Thrift、gRPC、Dubbo和Spring Cloud,同时详细阐述了RPC调用流程和实现透明化远程服务调用的关键技术,包括动态代理和消息的编码解码过程。
RPC框架:一文带你搞懂RPC