項目實戰3—Keepalived 實現高可用

来源:http://www.cnblogs.com/along21/archive/2017/11/15/7841132.html
-Advertisement-
Play Games

實現基於Keepalived高可用集群網站架構 環境:隨著業務的發展,網站的訪問量越來越大,網站訪問量已經從原來的1000QPS,變為3000QPS,目前業務已經通過集群LVS架構可做到隨時拓展,後端節點已經通過集群技術保障了可用性,但對於前端負載均衡器來說,是個比較大的安全隱患,因為當前端負載均衡 ...


實現基於Keepalived高可用集群網站架構

  環境:隨著業務的發展,網站的訪問量越來越大,網站訪問量已經從原來的1000QPS,變為3000QPS,目前業務已經通過集群LVS架構可做到隨時拓展,後端節點已經通過集群技術保障了可用性,但對於前端負載均衡器來說,是個比較大的安全隱患,因為當前端負載均衡器出現故障時,整個集群就處於癱瘓狀態,因此,負載均衡器的可用性也顯得至關重要,那麼怎麼來解決負載均衡器的可用性問題呢?

 總項目流程圖,詳見http://www.cnblogs.com/along21/p/7435612.html

實驗前準備

① 兩台伺服器都使用yum 方式安裝keepalived 服務

yum -y install keepalived

② iptables -F && setenforing 清空防火牆策略,關閉selinux

 

實驗一:實現keepalived主從方式高可用基於LVS-DR模式的應用實戰:

實驗原理:

主從:一主一從,主的在工作,從的在休息;主的宕機了,VIP漂移到從上,由從提供服務

1、環境準備:

兩台centos系統做DR、一主一從,兩台實現過基於LNMP的電子商務網站

機器名稱

IP配置

服務角色

備註

lvs-server-master

VIP:172.17.100.100

DIP:172.17.1.6

負載均衡器

主伺服器

開啟路由功能

配置keepalived

lvs-server-backup

VIP:172.17.100.100

DIP:172.17.11.11

後端伺服器

從伺服器

開啟路由功能

配置keepalived

rs01

RIP:172.17.1.7

後端伺服器

 

rs02

RIP:172.17.22.22

後端伺服器

 

  

2、在lvs-server-master 主上

修改keepalived主(lvs-server-master)配置文件實現 virtual_instance 實例

(1)vim /etc/keepalived/keepalived.conf 修改三段

① 全局段,故障通知郵件配置
global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

② 配置虛擬路由器的實例段,VI_1是自定義的實例名稱,可以有多個實例段
vrrp_instance VI_1 {     #VI_1是自定義的實例名稱
    state MASTER        #初始狀態,MASTER|BACKUP
    interface eth1      #通告選舉所用埠
    virtual_router_id 51  #虛擬路由的ID號(一般不可大於255)
    priority 100       #優先順序信息 #備節點必須更低
    advert_int 1       #VRRP通告間隔,秒
    authentication {
        auth_type PASS    #認證機制
        auth_pass along   #密碼(儘量使用隨機)
    } 
    virtual_ipaddress {
        172.17.100.100    #vip
    }
}

③ 設置一個virtual server段
virtual_server 172.17.100.100 80 {   #設置一個virtual server:
    delay_loop 6   # service polling的delay時間,即服務輪詢的時間間隔
    lb_algo wrr    #LVS調度演算法:rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR    #LVS集群模式:NAT|DR|TUN
    nat_mask 255.255.255.255  
    persistence_timeout 600  #會話保持時間(持久連接,秒),即以用戶在600秒內被分配到同一個後端realserver
    protocol TCP    #健康檢查用的是TCP還是UDP

④ real server設置段 real_server
172.17.1.7 80 { #後端真實節點主機的權重等設置 weight 1 #給每台的權重,rr無效 HTTP_GET { #http服務 url { path / } connect_timeout 3 #連接超時時間 nb_get_retry 3   #重連次數 delay_before_retry 3 #重連間隔 } } real_server 172.17.22.22 80 { weight 2 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }

 

(2)開啟keepalived 服務

service keepalived start

能看到網卡別名 和 負載均衡策略已經設置好了

ipvsadm -Ln

 

(3)因為是主從方式,所以從上的配置和主只有一點差別;所以可以把這個配置文件拷過去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

  

3、在lvs-server-backup 從上

(1)只需改②實例段,其他都不要變,保證一模一樣

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }

 

(2)開啟keepalived 服務

service keepalived start

負載均衡策略已經設置好了,註意:主director沒有宕機,從上就不會有VIP

ipvsadm -Ln 可能過一會才會顯示

 

4、在real server 上

(1) 開啟事前準備好的web服務

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因為是DR模式,需在rs上設置

① 配置VIP到本地迴環網卡lo上,並只廣播自己

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地迴環網卡路由

route add -host 172.17.100.100 lo:0

 

② 使RS "閉嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP廣播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

註意:關閉arp應答

1:僅在請求的目標IP配置在本地主機的接收到請求報文的介面上時,才給予響應

2:必須避免將介面信息向非本網路進行通告

 

③ 想永久生效,可以寫到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

  

5、測試

(1)lvs負載均衡作用是否開啟

客戶端訪問http://172.17.100.100/

也可以詳細測試

① 在rs1 上設置一個測試一面

vim /data/web/test.html

real server 1

 

② 在rs2 上設置一個測試一面

vim /data/web/test.html

real server 2

 

③ 網頁訪問http://172.17.100.100/test.html 發現有real server 1也有real server 2

 

(2)測試keepalived的主從方式

① 使keepalive 的主宕機

service keepalived stop

 

會發現服務能照常訪問,但是VIP 漂移到了從上

從多了網卡別名,且地址是VIP

 

③ 使keepalive 的主重新開啟服務,因為主的優先順序高,所以VIP又重新漂移到了主上

 

實驗二:實現keepalived雙主方式高可用基於LVS-DR模式的應用實戰:

實驗原理:

互為主從:主從都在工作;其中一個宕機了,VIP漂移到另一個上,提供服務

1、實驗環境,基本同上

機器名稱

IP配置

服務角色

備註

lvs-server-1

VIP:172.17.100.100

DIP:172.17.1.6

負載均衡器

主伺服器

開啟路由功能

配置keepalived

lvs-server2

VIP:172.17.100.101

DIP:172.17.11.11

後端伺服器

從伺服器

開啟路由功能

配置keepalived

rs01

RIP:172.17.1.7

後端伺服器

 

rs02

RIP:172.17.22.22

後端伺服器

 

 

2、在lvs-server1 上,基本同上,就是加了一個實例段

修改keepalived主(lvs-server-master)配置文件實現 virtual_instance 實例

(1)vim /etc/keepalived/keepalived.conf

① 主的設置 VI_1
vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.100
    }
}

virtual_server 172.17.100.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.1.7 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

② 從的設置 VI_2

vrrp_instance VI_2 {
    state BACKUP
    interface eth1
    virtual_router_id 52
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.101
    }
}

virtual_server 172.17.100.101 443 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.1.7 443 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 443 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

(2)開啟keepalived 服務

service keepalived start

能看到網卡別名 和 負載均衡策略已經設置好了

ipvsadm -Ln

 

(3)因為是主從方式,所以從上的配置和主只有一點差別;所以可以把這個配置文件拷過去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、在lvs-server2 上,基本同1,就是把實例的主從調換一下

(1)vim /etc/keepalived/keepalived.conf

① vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.100
    }
}
② vrrp_instance VI_2 {
    state MASTER
    interface eth1
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.101
    }
}

 

(2)開啟keepalived 服務

service keepalived start

能看到網卡別名 和 負載均衡策略已經設置好了,顯示結果會等段時間再顯示

ipvsadm -Ln,顯示結果會等段時間再顯示

 

4、在real server 上

(1) 開啟事前準備好的web服務

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因為是DR模式,需在rs上設置

① 配置VIP到本地迴環網卡lo上,並只廣播自己

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

ifconfig lo:1 172.17.100.101 broadcast 172.17.100.101 netmask 255.255.255.255 up

配置本地迴環網卡路由

route add -host 172.17.100.100 lo:0

route add -host 172.17.100.101 lo:1

 

② 使RS "閉嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP廣播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

註意:關閉arp應答

1:僅在請求的目標IP配置在本地主機的接收到請求報文的介面上時,才給予響應

2:必須避免將介面信息向非本網路進行通告

 

③ 想永久生效,可以寫到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

 

5、測試

(1)lvs負載均衡作用是否開啟

客戶端訪問http://172.17.100.100/ 公網172.17.100.100只能訪問80

https://172.17.100.101/ 公網172.17.100.101只能訪問443

也可以詳細測試

① 在rs1 上設置一個測試一面

vim /data/web/test.html

real server 1

 

② 在rs2 上設置一個測試一面

vim /data/web/test.html

real server 2

 

③ 網頁訪問http://172.17.100.100/test.html或https://172.17.100.101/test.html 發現有real server 1也有real server 2

 

(2)測試keepalived的雙主方式

① 使keepalive 的任意一個宕機

service keepalived stop

 

會發現服務能照常訪問,另一個機器80、443都能訪問,且宕機的VIP漂移到了另一個伺服器上

  

實驗三:實現keepalived主從方式高可用基於LVS-NAT模式的應用實戰:

實驗原理:

主從:一主一從,主的在工作,從的在休息;主的宕機了,VIP和DIP都漂移到從上,由從提供服務,因為DIP需被rs作為網關,所以也需漂移

1、環境準備

機器名稱

IP配置

服務角色

備註

vs-server-master

VIP:172.17.100.100

DIP:192.168.30.100

負載均衡器

主伺服器

開啟路由功能

配置keepalived

lvs-server-backup

VIP:172.17.100.100

DIP:192.168.30.100

後端伺服器

從伺服器

開啟路由功能

配置keepalived

rs01

RIP:192.168.30.107

後端伺服器

網關指向DIP

rs02

RIP:192.168.30.7

後端伺服器

網關指向DIP

註意:要確保rs和DIP在一個網段,且不和VIP在一個網段

 

2、在lvs-server-master 主上

(1)vim keepalived.conf

global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
       172.17.100.100
192.168.30.100
    }
}

virtual_server 172.17.100.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind NAT
    nat_mask 255.255.255.255
    persistence_timeout 100
    protocol TCP

    real_server 192.168.30.107 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.30.7 80 {
        weight 2
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

(2)因為是NAT模式,所以需開啟路由轉發功能

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

 

sysctl -p 讀一些,使參數生效

 

(3)開啟keepalived 服務

service keepalived start

能看到網卡別名 和 負載均衡策略已經設置好了

ipvsadm -Ln

 

(4)因為是主從方式,所以從上的配置和主只有一點差別;所以可以把這個配置文件拷過去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、在lvs-server-backup 從上

(1)只需改②實例段,其他都不要變,保證一模一樣

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }

 

 

(2)因為是NAT模式,所以需開啟路由轉發功能

① vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

② sysctl -p 讀一些,使參數生效

 

(3)開啟keepalived 服務

service keepalived start

負載均衡策略已經設置好了,註意:主director沒有宕機,從上就不會有VIP

ipvsadm -Ln 可能過一會才會顯示

 

4、在real server 上

(1) 開啟事前準備好的web服務

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因為是NAT模式,需在rs上設置

只需把網關指向DIP

route add default gw 192.168.30.100

 

5、測試

(1)lvs負載均衡作用是否開啟

客戶端訪問http://172.17.100.100/

也可以詳細測試

① 在rs1 上設置一個測試一面

vim /data/web/test.html

real server 1

 

② 在rs2 上設置一個測試一面

vim /data/web/test.html

real server 2

 

③ 網頁訪問http://172.17.100.100/test.html 發現有real server 1也有real server 2

 

 

(2)測試keepalived的主從方式

① 使keepalive 的主宕機

service keepalived stop

 

會發現服務能照常訪問,但是VIP 和DIP 都漂移到了從上

從多了網卡別名,且地址是VIP

 

③ 使keepalive 的主重新開啟服務,因為主的優先順序高,所以VIP和DIP又重新漂移到了主上

 

實驗四:實現keeaplived 故障通知機制

1、編寫好腳本

腳本主要內容:檢測到主從發生變化,或錯誤,給誰發郵件;郵件內容是:在什麼時間,誰發生了什麼變化

vim /etc/keepalived/notify.sh

#!/bin/bash
# Author: www.magedu.com
contact='root@localhost'
notify() {
        mailsubject="$(hostname) to be $1: vip floating"
        mailbody="$(date +'%F %H:%M:%S'): vrrp transition, $(hostname) changed to be $1"
        echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master) 
        notify master
        exit 0
;;
backup)
        notify backup
        exit 0
;;
fault)
        notify fault
        exit 0
;;
*)
        echo "Usage: $(basename $0) {master|backup|fault}"
        exit 1
;;
esac

腳本加許可權 chmod +x /etc/keepalived/notify.sh

 

2、在keepalived 的配置文件調用腳本

在instance 實例段添加,註意腳本的路徑

notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault"

例:

  

實驗五:實現keepaplived自定義腳本檢測功能

原理:在keepalived的配置文件中能直接定義腳本,且能在instance 實例段直接調用生效

 

方案一:檢測是否存在down文件,來實現主從的調整

1、在實例段上邊定義一個腳本

vim keepalived.conf

vrrp_script chk_down {    #定義一個腳本,腳本名稱為chk_down
   script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"   #檢查這個down文件,若存在返回值為1,keepalived會停止;不存在返回值為0,服務正常運行;這裡的exit和bash腳本里的return很相似
 interval 2   #每2秒檢查一次
}

2、在instance 實例段可以直接調用這個腳本

track_script {
    chk_down
}

 

3、檢測

在主上,創建一個/etc/keepalived/down 文件,主的keepalived服務立刻停止,VIP漂到從上,從接上服務;

down文件一旦刪除,主的keepalived服務會立即啟動,若優先順序高或優先順序低但設置的搶占,VIP會重漂回來,接上服務。

 

方案二:檢測nginx服務是否開啟,來實現調整主從

1、在實例段上邊定義一個腳本

vrrp_script chk_nginx {
     script "killall -0 nginx" #killall -0 檢測這個進程是否還活著,不存在就減權重
     interval 2 #每2秒檢查一次
     fall 2 #失敗2次就打上ko的標記
     rise 2 #成功2次就打上ok的標記
     weight -4 #權重,優先順序-4,若為ko
}

 

2、在instance 實例段可以直接調用這個腳本

track_script {
    chk_nginx
}

 

3、檢測

若主的nginx服務沒有開啟,則每2秒-4的權重,當優先順序小於從,VIP漂到從上,從接上服務;

若主的nginx服務開啟,重讀配置文件,優先順序恢復,VIP回到主上,主恢復服務;

  


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

-Advertisement-
Play Games
更多相關文章
  • 註:入坑內容來源於易百教程,這隻是自己學習路上的經驗總結...(附上易百教程網址:http://www.yiibai.com/mysql/) MySQL導入示例資料庫(http://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql ...
  • http://blog.csdn.net/mr_green1024/article/details/53222526 ...
  • 簡單總結下Oracle/MySql/SQL Sqlserver這三個資料庫的分頁查詢語句 ...
  • 一、深入學習 group by group by ,分組,顧名思義,把數據按什麼來分組,每一組都有什麼特點。 1、我們先從最簡單的開始: select count(*) from tb1 group by tb1.sex; 查詢所有數據的條數,按性別來分組。這樣查詢到的結果集只有一列count(*) ...
  • oracle資料庫,對於新手來說總會遇到這樣的問題: 相信大家都遇到了這樣的問題,說實話,我曾經就遇到過這樣的問題,但是不好意思問旁邊的技術大咖,都有點懷疑人生了,然後自己在網上去查找原因,結果發現,網上各種版本, 好不容易才找到原因。就在前不久,又有同學問我這個問題,所以我就統一為犯過這個錯誤的同 ...
  • 1.從官網下載MySQL 下載地址:http://dev.mysql.com/downloads/ 2.解壓到想要安裝的目錄(博主安裝到: d:\mysql下) 新增一個my.ini文件,寫入如下內容: 3.以管理員身份運行 win+x(再按a,回車) 一直cd到d:\mysql\bin目錄 輸入命 ...
  • 1》記憶體子系統 1>組件: slab allocator buddy system kswapd pdflush 2>虛擬化環境: PA:進程地址; HA:虛擬機地址; MA:機器地址; 虛擬機轉換:PA >HA GuestOS(來賓主機),OS(宿主主機); Shadow PT:影子列表 3>Me ...
  • ㈠ File類 這個類包裝了一個上傳文件的所有信息。通過它,可以得到上傳文件的文件名、文件大小、擴展名、文件數據等信息。 File類主要提供以下方法: 1、saveAs作用:將文件換名另存。 原型: public void saveAs(java.lang.String destFilePathNa ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...