RabbitMQ 消息中間件搭建詳解

来源:https://www.cnblogs.com/yjssjm/archive/2020/04/05/12639309.html
-Advertisement-
Play Games

1.RabbitMQ簡介 消息中間件也可以稱消息隊列,是指用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通信來進行分散式系統的集成。通過提供消息傳遞和消息隊列模型,可以在分散式環境下擴展進程的通信。 RabbitMQ是使用Erlang語言開發的開源消息隊列系統, 基於AMQP協議來實現 ...


1.RabbitMQ簡介

消息中間件也可以稱消息隊列,是指用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通信來進行分散式系統的集成。通過提供消息傳遞和消息隊列模型,可以在分散式環境下擴展進程的通信。
RabbitMQ是使用Erlang語言開發的開源消息隊列系統,基於AMQP協議來實現。AMQP的主要特征是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。AMQP協議更多用在企業系統內對數據一致性、穩定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。
Erlang是一種通用的面向併發的編程語言
特點

  • 可靠性
  • 擴展性
  • 高可用性
  • 多種協議
  • 多語言客戶端
  • 管理界面
  • 插件機制

2.集群部署

1.環境部署及軟體安裝
準備三台虛擬機
192.168.13.139 rabbitmq-1
192.168.13.142 rabbitmq-2
192.168.13.143 rabbitmq-3

配置hosts文件更改三台MQ節點的電腦名分別為rabbitmq-1、rabbitmq-2 和rabbitmq-3,然後修改hosts配置件,並關閉防火牆和selinux

192.168.13.139
[root@rabbitmq-1 ~]# hostnamectl set-hostname rabbitmq-1
[root@rabbitmq-1 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.139 rabbitmq-1
192.168.13.142 rabbitmq-2
192.168.13.143 rabbitmq-3
[root@rabbitmq-1 ~]# systemctl stop firewalld && setenforce 0
192.168.13.142
[root@rabbitmq-2 ~]# hostnamectl set-hostname rabbitmq-2
[root@rabbitmq-2 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.139 rabbitmq-1
192.168.13.142 rabbitmq-2
192.168.13.143 rabbitmq-3
[root@rabbitmq-2 ~]# systemctl stop firewalld && setenforce 0
192.168.13.143
[root@rabbitmq-3 ~]# hostnamectl set-hostname rabbitmq-3
[root@rabbitmq-3 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.139 rabbitmq-1
192.168.13.142 rabbitmq-2
192.168.13.143 rabbitmq-3
[root@rabbitmq-3 ~]# systemctl stop firewalld && setenforce 0

安裝rabbitmq軟體以及配置

192.168.13.139
[root@rabbitmq-1 ~]# yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel
1.yum安裝erlang
[root@rabbitmq-1 ~]# wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-20.3-1.el7.centos.x86_64.rpm/download.rpm   #Erlang環境包
[root@rabbitmq-1 ~]# yum install erlang-20.3-1.el7.centos.x86_64.rpm -y
測試;
[root@rabbitmq-1 ~]# erl
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3  (abort with ^G)
1>
2.安裝rabbitmq
[root@rabbitmq-1 ~]# wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.5/rabbitmq-server-3.7.5-1.el7.noarch.rpm
[root@rabbitmq-1 ~]# yum -y install rabbitmq-server-3.7.5-1.el7.noarch.rpm
3.啟動
[root@rabbitmq-1 ~]# systemctl daemon-reload
[root@rabbitmq-1 ~]# systemctl start rabbitmq-server
[root@rabbitmq-1 ~]# systemctl enable rabbitmq-server
[root@rabbitmq-1 ~]# systemctl status rabbitmq-server
[root@rabbitmq-1 ~]# rabbitmq-plugins enable rabbitmq_management   #管理界面
#如果報錯,重啟服務就好了

在這裡插入圖片描述

192.168.13.139
4.創建用戶
註意:在一臺機器操作
添加用戶和密碼
[root@rabbitmq-1 ~]# rabbitmqctl add_user yjssjm yjssjm
Adding user "yjssjm" ...
設置為管理員
[root@rabbitmq-1 ~]# rabbitmqctl set_user_tags yjssjm administrator
Setting tags for user "yjssjm" to [administrator] ...
查看用戶
[root@rabbitmq-1 ~]# rabbitmqctl list_users
Listing users ...
guest	[administrator]
yjssjm	[administrator]
...done.
[root@rabbitmq-1 ~]# rabbitmqctl set_permissions -p "/" yjssjm ".*" ".*" ".*"
Setting permissions for user "yjssjm" in vhost "/" ...
#此處設置許可權時註意'.*'之間需要有空格 三個'.*'分別代表了conf許可權,read許可權與write許可權 例如:當沒有給
5.開啟用戶遠程登錄
[root@rabbitmq-1 ~]# cd /etc/rabbitmq/   
[root@rabbitmq-1 rabbitmq]# cp /usr/share/doc/rabbitmq-server-3.7.5/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
[root@rabbitmq-1 rabbitmq]# ls
enabled_plugins  rabbitmq.config
[root@rabbitmq-1 rabbitmq]# vim rabbitmq.config
修改如下: 在61行左右
{loopback_users, []}
[root@rabbitmq-1 ~]# systemctl restart rabbitmq-server   #重啟服務

在這裡插入圖片描述

192.168.13.142
[root@rabbitmq-2 ~]# yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel
1.yum安裝erlang
[root@rabbitmq-2 ~]# wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-20.3-1.el7.centos.x86_64.rpm/download.rpm   #Erlang環境包
[root@rabbitmq-2 ~]# yum install erlang-20.3-1.el7.centos.x86_64.rpm -y
[root@rabbitmq-2 ~]# erl
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3  (abort with ^G)
1>
2.安裝rabbitmq
[root@rabbitmq-2 ~]# wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.5/rabbitmq-server-3.7.5-1.el7.noarch.rpm
[root@rabbitmq-2 ~]# yum -y install rabbitmq-server-3.7.5-1.el7.noarch.rpm
3.啟動
[root@rabbitmq-2 ~]# systemctl daemon-reload
[root@rabbitmq-2 ~]# systemctl start rabbitmq-server
[root@rabbitmq-2 ~]# systemctl enable rabbitmq-server
[root@rabbitmq-2 ~]# systemctl status rabbitmq-server
[root@rabbitmq-2 ~]# rabbitmq-plugins enable rabbitmq_management   #管理界面
#如果報錯,重啟服務就好了
4.開啟用戶遠程登錄
[root@rabbitmq-2 ~]# cd /etc/rabbitmq/   
[root@rabbitmq-2 rabbitmq]# cp /usr/share/doc/rabbitmq-server-3.7.5/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
[root@rabbitmq-2 rabbitmq]# ls
enabled_plugins  rabbitmq.config
[root@rabbitmq-2 rabbitmq]# vim rabbitmq.config
修改如下: 在61行左右
{loopback_users, []}
[root@rabbitmq-2 ~]# systemctl restart rabbitmq-server
192.168.13.143
[root@rabbitmq-3 ~]# yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel
1.yum安裝erlang
[root@rabbitmq-3 ~]# wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-20.3-1.el7.centos.x86_64.rpm/download.rpm   #Erlang環境包
[root@rabbitmq-3 ~]# yum install erlang-20.3-1.el7.centos.x86_64.rpm -y
[root@rabbitmq-3 ~]# erl
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3  (abort with ^G)
1>
2.安裝rabbitmq
[root@rabbitmq-3 ~]# wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.5/rabbitmq-server-3.7.5-1.el7.noarch.rpm
[root@rabbitmq-3 ~]# yum -y install rabbitmq-server-3.7.5-1.el7.noarch.rpm
3.啟動
[root@rabbitmq-3 ~]# systemctl daemon-reload
[root@rabbitmq-3 ~]# systemctl start rabbitmq-server
[root@rabbitmq-3 ~]# systemctl enable rabbitmq-server
[root@rabbitmq-3 ~]# systemctl status rabbitmq-server
[root@rabbitmq-3 ~]# rabbitmq-plugins enable rabbitmq_management   #管理界面
#如果報錯,重啟服務就好了
4.開啟用戶遠程登錄
[root@rabbitmq-3 ~]# cd /etc/rabbitmq/   
[root@rabbitmq-3 rabbitmq]# cp /usr/share/doc/rabbitmq-server-3.7.5/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
[root@rabbitmq-3 rabbitmq]# ls
enabled_plugins  rabbitmq.config
[root@rabbitmq-3 rabbitmq]# vim rabbitmq.config
修改如下: 在61行左右
{loopback_users, []}
[root@rabbitmq-3 ~]# systemctl restart rabbitmq-server
2.訪問網頁
查看埠
[root@rabbitmq-1 rabbitmq]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1205/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      985/sshd            
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      988/beam.smp        
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1285/master         
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      988/beam.smp        
tcp6       0      0 :::4369                 :::*                    LISTEN      1205/epmd           
tcp6       0      0 :::22                   :::*                    LISTEN      985/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1285/master         
tcp6       0      0 :::5672                 :::*                    LISTEN      988/beam.smp        
=========================================================================================
4369 -- erlang埠
5672 --程式連接埠
15672 -- 管理界面ui埠
25672 -- server間內部通信埠

訪問頁面:192.168.13.139:15672
在這裡插入圖片描述
rabbitmq預設管理員用戶:guest 密碼:guest
新添加的用戶為:yjssjm 密碼:yjssjm

3.部署集群
192.168.13.139
1.首先創建好數據存放目錄和日誌存放目錄:
[root@rabbitmq-1 ~]# mkdir -p /data/rabbitmq/data
[root@rabbitmq-1 ~]# mkdir -p /data/rabbitmq/logs
[root@rabbitmq-1 ~]# chmod 777 -R /data/rabbitmq
[root@rabbitmq-1 ~]# chown rabbitmq.rabbitmq /data/ -R
[root@rabbitmq-1 ~]# vim /etc/rabbitmq/rabbitmq-env.conf    #創建配置文件
添加下麵的內容:
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
[root@rabbitmq-1 ~]# systemctl restart rabbitmq-server #重啟服務
2.拷erlang.cookie
Rabbitmq的集群是依附於erlang的集群來工作的,所以必須先構建起erlang的集群。Erlang的集群中
各節點是經由各個cookie來實現的,這個cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的許可權。所以必須保證各節點cookie一致,不然節點之間就無法通信.
(官方在介紹集群的文檔中提到過.erlang.cookie 一般會存在這兩個地址:第一個是home/.erlang.cookie;第二個地方就是/var/lib/rabbitmq/.erlang.cookie。如果我們使用解壓縮方式安裝部署的rabbitmq,那麼這個文件會在{home}目錄下,也就是$home/.erlang.cookie。如果我們使用rpm等安裝包方式進行安裝的,那麼這個文件會在/var/lib/rabbitmq目錄下。)
=======================================================================================
[root@rabbitmq-1 ~]# cat /var/lib/rabbitmq/.erlang.cookie
HOUCUGJDZYTFZDSWXTHJ
scp的方式將rabbitmq-1節點的.erlang.cookie的值複製到其他兩個節點中。
[root@rabbitmq-1 ~]# scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
[root@rabbitmq-1 ~]# scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
192.168.13.142
1.首先創建好數據存放目錄和日誌存放目錄:
[root@rabbitmq-2 ~]# mkdir -p /data/rabbitmq/data
[root@rabbitmq-2 ~]# mkdir -p /data/rabbitmq/logs
[root@rabbitmq-2 ~]# chmod 777 -R /data/rabbitmq
[root@rabbitmq-2 ~]# chown rabbitmq.rabbitmq /data/ -R
[root@rabbitmq-2 ~]# vim /etc/rabbitmq/rabbitmq-env.conf    #創建配置文件
添加下麵的內容:
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
[root@rabbitmq-2 ~]# systemctl restart rabbitmq-server #重啟服務
2.將mq-2作為記憶體節點加到mq-1節點集群中
[root@rabbitmq-2 ~]# rabbitmqctl stop_app  #停止節點,切記不是停止服務
[root@rabbitmq-2 ~]# rabbitmqctl reset   #如果有數據需要重置,沒有則不用

在這裡插入圖片描述
在這裡插入圖片描述
如果執行# rabbitmqctl stop_app 這條命令報錯

註意查看回顯,如果不是以上圖片中的就是錯誤;如果報錯,重啟rabbitmq服務
[root@rabbitmq-2 ~]# systemctl restart rabbitmq-server
如果還是報錯:將傳過來的文件給與正確的許可權
[root@rabbitmq-2 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq-2 ~]# chown rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie
將節點2加入集群,指定角色
[root@rabbitmq-2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq-1  #添加到記憶體節點
Clustering node 'rabbit@rabbitmq-2' with 'rabbit@rabbitmq-1' ...
[root@rabbitmq-2 ~]# rabbitmqctl start_app  #啟動節點
Starting node 'rabbit@rabbitmq-2' ...
 completed with 3 plugins.
192.168.13.143
1.首先創建好數據存放目錄和日誌存放目錄:
[root@rabbitmq-3 ~]# mkdir -p /data/rabbitmq/data
[root@rabbitmq-3 ~]# mkdir -p /data/rabbitmq/logs
[root@rabbitmq-3 ~]# chmod 777 -R /data/rabbitmq
[root@rabbitmq-3 ~]# chown rabbitmq.rabbitmq /data/ -R
[root@rabbitmq-3 ~]# vim /etc/rabbitmq/rabbitmq-env.conf    
添加下麵的內容:
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
[root@rabbitmq-3 ~]# systemctl restart rabbitmq-server 
2.將mq-2作為記憶體節點加到mq-1節點集群中
[root@rabbitmq-3 ~]# rabbitmqctl stop_app  
[root@rabbitmq-3 ~]# rabbitmqctl reset  
[root@rabbitmq-3 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq-1
Clustering node 'rabbit@rabbitmq-3' with 'rabbit@rabbitmq-1' ...
[root@rabbitmq-3 ~]# rabbitmqctl start_app
Starting node 'rabbit@rabbitmq-3' ...
 completed with 3 plugins.
(1)預設rabbitmq啟動後是磁碟節點,在這個cluster命令下,mq-2和mq-3是記憶體節點,
mq-1是磁碟節點。
(2)如果要使mq-2、mq-3都是磁碟節點,去掉--ram參數即可。
(3)如果想要更改節點類型,可以使用命令rabbitmqctl change_cluster_node_type
disc(ram),前提是必須停掉rabbitmq應用

查看集群狀態

在 RabbitMQ 集群任意節點上執行 rabbitmqctl cluster_status來查看是否集群配置成功。
在mq-1磁碟節點上面查看
[root@rabbitmq-1 ~]# rabbitmqctl cluster_status

在這裡插入圖片描述
每台機器顯示出三台節點,表示已經添加成功!
登錄查看
打開瀏覽器輸入http://192.168.13.139:15672
在這裡插入圖片描述

你們的評論和點贊是我寫文章的最大動力,蟹蟹。


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

-Advertisement-
Play Games
更多相關文章
  • 1.資料庫存儲引擎 InnoDB存儲引擎:預設引擎,最常用的。 InnoDB是事務型資料庫的首選引擎,支持事務安全表(ACID),支持行鎖定和外鍵;InnoDB是預設的 MySQL引擎 InnoDB特點: 支持事務處理,支持外鍵,支持崩潰修複和併發控制。如果需要對事務的完整性要求比較高(比如銀行), ...
  • 1.Tomcat 簡介 Tomcat是Apache軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發而成。 Tomcat伺服器是一個免費的開放源代碼的Web應用伺服器,屬於輕量級應用伺服器,在中 ...
  • 1.環境部署 | 安裝軟體 | 主機名 |IP地址|記憶體需求| | | | | | | Elasticsearch | mes |192.168.13.142|至少3G| |Logstash|log|192.168.13.143|至少2G| |head,Kibana|head kib|192.168 ...
  • 1.Svn 1.Svn簡介 2.搭建過程 2.部署Svn 準備兩台機器,一臺做服務端,一臺做客戶端。 1.服務端搭建 2.客戶端測試 如果報錯: 原因:svn服務未啟動或者是啟動的時候未指定svn倉庫路徑,svn預設倉庫路徑為/var/svn,所以我們需要手動指定為/home/svn/ 解決方案: ...
  • 先上一張圖 FATAL Error: listen EADDRNOTAVAIL 123.57.251.57:5601 配置文件我是這樣配置的: 因為用的是雲虛擬機,所以這裡的123.57.251.57是外網ip,我們應該用內網ip才行。 但是如果寫localhost的話,雖然不會報錯,5601埠也 ...
  • 1.環境以及依賴包的安裝 2.下載並安裝 3.檢測nginx配置文件是否正確 4.啟動nginx服務 下麵是一些編譯參數和配置文件的詳細說明 5.各個編譯參數 6.配置文件 7.nginx安裝時的一些常用命令 我這裡已經建立過軟連接了,所以直接用的nginx命令 你們的評論和點贊是我寫文章的最大動力 ...
  • 1.查看現有的 nginx 編譯參數 2.上傳新版本的源碼包nginx 1.16.1.tar.gz,解壓到/usr/local/ (註意:按照原來的編譯參數安裝 nginx 的方法進行安裝, 只需要到 make,千萬不要 make install 。如果make install 會將原來的配置文件覆 ...
  • 1.IPtables介紹 Iptables(以下簡稱Iptables)是unix/linux自帶的一款優秀且開放源代碼的完全自由的基於包過濾(對OSI模型的四層或者是四層以下進行過濾)的防火牆工具,它的功能十分強大,使用非常靈活,可以對流入和流出伺服器的數據包進行很精細的控制。 iptables工作 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...