從零開始的云計算生活——第三十二天,四面楚歌,HAProxy負載均衡

目錄

一.HAProxy簡介?

二.HAProxy特點和優點:

三.HAProxy保持會話的三種解決方法

四.HAProxy的balance 8種負載均衡算法

1)RR(Round Robin)

2)LC(Least Connections)

3)SH(Source Hashing)

4)uri(資源標識符)

5)url_param(資源定位符)

6)rdp—cookie(name)

7) source

8) static-rr

五.HAProxy 主要工作模式

六. HAProxy 安裝

通過 yum 安裝 HAProxy

七.HAProxy配置文件參數

7.1、HAProxy 環境

7.1.1、 global 全局配置

7.1.2、 proxy 代理配置

7.2、haproxy.cfg 配置文件

八.狀態統計功能測試

九.總結


一.HAProxy簡介?

官網:http://www.haproxy.com

HAProxy 是法國人Willy Tarreau開發的一個開源軟件,是一款應對客戶端10000以上的同時連接的高性能的TCP和 HTTP負載均衡器。其功能是用來提供基于cookie的持久性, 基于內容的交換,過載保護的高級流量管制,自動故障切換 ?,以正則表達式為基礎的標題控制運行時間,基于Web的報表,高級日志記錄以幫助排除故障的應用或網絡及其他功能。

HAProxy 提供高可用性、負載均衡以及基于TCP和HTTP的應用代理,支持虛擬主機,它是免費、快速并且可靠的一種負載均衡解決方案。適合處理高負載站點的 **七層** 數據請求。類似的代理服務可以屏蔽內部真實服務器,防止內部服務器遭受攻擊。

二.HAProxy特點和優點:

  1. 支持原生SSL,同時支持客戶端和服務器的SSL.

  2. 支持IPv6和UNIX套字節(sockets)

  3. 支持HTTP Keep-Alive

  4. 支持HTTP/1.1壓縮,節省寬帶

  5. 支持優化健康檢測機制(SSL、scripted TCP、check agent…)

  6. 支持7層負載均衡。

  7. 可靠性和穩定性非常好。

  8. 并發連接 40000-50000個,單位時間處理最大請求 20000個,最大數據處理10Gbps.

  9. 支持8種負載均衡算法,同時支持session保持。

  10. 支持虛擬主機。

  11. 支持連接拒絕、全透明代理。

  12. 擁有服務器狀態監控頁面。

  13. 支持ACL(access control list)。

三.HAProxy保持會話的三種解決方法

HAProxy為了讓同一客戶端訪問服務器可以保持會話。有三種解決方法:客戶端IP、Cookie以及Session。

  1. 通過 客戶端IP 進行Hash計算并保存,以此確保當相同IP訪問代理服務器可以轉發給固定的真實服務器。

  2. 依靠真實服務器發送客戶端的 Cookie信息 進行會話保持。

  3. 將保存真實服務器的 Session 以及服務器標識 ,實現會話保持。

    (HAProxy只要求后端服務器能夠在網絡聯通,也沒有像LVS那樣繁瑣的ARP配置)

四.HAProxy的balance 8種負載均衡算法

1)RR(Round Robin)

RR算法是最簡單最常用的一種算法,即輪詢調度

理解舉例:有三個節點A、B、C

第一個用戶訪問會被指派到節點A

第二個用戶訪問會被指派到節點B

第三個用戶訪問會被指派到節點C

第四個用戶訪問繼續指派到節點A,輪詢分配訪問請求實現負載均衡效果

2)LC(Least Connections)

最小連接數算法,根據后端的節點連接數大小動態分配前端請求

理解舉例: 有三個節點A、B、C,各節點的連接數分別為A:4 B:5 C:6

第一個用戶連接請求,會被指派到A上,連接數變為A:5 B:5 C:6

第二個用戶請求會繼續分配到A上,連接數變為A:6 B:5 C:6;再有新的請求會分配給B,每次將新的請求指派給連接數最小的客戶端

由于實際情況下A、B、C的連接數會動態釋放,很難會出現一樣連接數的情況

此算法相比較rr算法有很大改進,是米錢用到比較多的一種算法

3)SH(Source Hashing)

基于來源訪問調度算法,用于一些有Session會話記錄在服務端的場景,可以基于來源的IP、Cookie等做集群調度

理解舉例 有三個節點A、B、C,第一個用戶第一次訪問被指派到了A,第二個用戶第一次訪問被指派到了B

當第一個用戶第二次訪問時會被繼續指派到A,第二個用戶第二次訪問時依舊會被指派到B,只要負載均衡器不重啟,第一個用戶都會被指派到A,第二個用戶訪問都會被指派到B,實現集群的調度

此調度算法好處是實現會話保持,但某些IP訪問量非常大時會引起負載不均衡,部分節點訪問量超大,影響業務使用

4)uri(資源標識符)

表示根據請求的URI,做cdn(內容分發網絡)需使用

5)url_param(資源定位符)

表示根據HTTP請求頭來鎖定每 一 次HTTP請求。

6)rdp—cookie(name)

表示根據據cookie (name)來鎖定并哈希每一次TCP請求。

7) source

表示根據請求的源IP,類似Nginx的IP hash機制。

8) static-rr

表示根據權重,輪詢

五.HAProxy 主要工作模式

tcp模式:在客戶端和服務器之間將建立一個全雙工的連接,且不會對7層的報文做任何處理的簡單模式。 通常用于SSL、SSH、SMTP等應用層。

http模式(一般使用):客戶端請求在轉發給后端服務器之前會被深度分析,所有不與RFC格式兼容的請求都會被拒絕。

六. HAProxy 安裝

通過 yum 安裝 HAProxy

七.HAProxy配置文件參數

globallog /dev/log local0 info          # 日志輸出到系統日志(local0設備),info級別maxconn 100000                    # 進程最大并發連接數[1,4](@ref)user haproxy                      # 運行用戶group haproxy                     # 運行組daemon                            # 守護進程模式nbthread 8                        # 工作線程數(建議等于CPU核心數)[1,6](@ref)stats socket /var/run/haproxy.sock mode 660 level admin  # 啟用統計套接字(動態管理)tune.bufsize 32768                # 請求緩沖區大小(提升大請求處理能力)[1](@ref)tune.ssl.default-dh-param 2048    # SSL DH參數長度(增強安全性)[1](@ref)ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384  # 強加密套件ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11    # 禁用不安全協議defaultsmode http                         # 默認模式(可覆蓋為tcp)timeout connect 5s                # 后端連接超時timeout client 30s               # 客戶端空閑超時timeout server 30s               # 后端響應超時option forwardfor                 # 添加X-Forwarded-For頭(傳遞客戶端IP)[1,5](@ref)option httplog                    # 記錄HTTP日志(非TCP)option dontlognull                # 不記錄空請求option redispatch                 # 連接失敗時重試其他服務器[3](@ref)retries 3                         # 最大重試次數# 監控統計頁面(安全訪問)
listen statsbind *:8899                       # 監聽端口mode httpstats enablestats uri /admin?stats            # 訪問路徑stats realm HAProxy\ Stats        # 認證域stats auth admin:YourSecurePassword  # 認證憑據stats refresh 10s                 # 自動刷新間隔# HTTPS前端(SSL終止)
frontend https_inbind *:443 ssl crt /etc/haproxy/ssl/example.com.pem alpn h2,http/1.1  # SSL證書及HTTP/2支持http-request set-header X-Client-IP %[src]   # 自定義頭部傳遞客戶端IPacl host_static hdr(host) -i static.example.com      # ACL:靜態資源域名acl host_api hdr(host) -i api.example.com            # ACL:API域名use_backend static_servers if host_static           # 按域名路由use_backend api_servers if host_apidefault_backend web_servers                         # 默認后端# HTTP前端(重定向到HTTPS)
frontend http_inbind *:80redirect scheme https code 301 if !{ ssl_fc }       # 強制HTTPS跳轉# 靜態資源后端
backend static_serversbalance leastconn                  # 最小連接數算法(適合長連接)[3,4](@ref)option httpchk GET /healthcheck    # HTTP健康檢查路徑http-check expect status 200       # 預期狀態碼server static1 192.168.1.103:80 check inter 2s rise 2 fall 3 maxconn 500 cookie s1server static2 192.168.1.104:80 check inter 2s rise 2 fall 3 maxconn 500 cookie s2# API后端(會話保持)
backend api_serversbalance source                    # 源IP哈希(會話保持)[4](@ref)option httpchk GET /api/health    # 定制API健康檢查server api1 192.168.1.105:8080 check weight 3server api2 192.168.1.106:8080 check weight 2# 默認Web后端
backend web_serversbalance roundrobin                # 輪詢算法(默認)[1,3](@ref)server web1 192.168.1.101:80 check inter 3s rise 2 fall 3 maxconn 1000server web2 192.168.1.102:80 check inter 3s rise 2 fall 3 maxconn 1000

7.1、HAProxy 環境

haproxy的配置文件 haproxy.cfg 的 默認地址:/etc/haproxy/haproxy.cfg 。

haproxy.cfg 由兩大部分組成,分別是 global 和 proxies 部分。

global:全局配置:

進程及安全配置相關的參數
性能調整相關參數
Debug參數

proxies:代理配置

defaults:為 frontend, backend, listen提供默認配置
frontend:前端,相當于 nginx 中的 server {}
backend:后端,相當于 nginx 中的 upstream {}
listen:同時擁有 前端和后端配置

名稱說明:

  • frontend 端(front end):指定接收 客戶端 偵聽套接字設置。

  • backend 端(back end):指定將連接請求轉發至 后端服務器 的相關設置。

  • listen 端:指定完整的前后端設置,只對TCP有效

  • proxy 名稱:使用字母 、數字 - 、_ 、. 、: ,并區分字符大小寫。

7.1.1、 global 全局配置

chroot ? ? ? ? ? ? ? ? ? # 鎖定運行目錄
deamon ? ? ? ? ? ? ? ? ? # 以守護進程運行
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin ? ?# socket文件
user, group, uid, gid ? ? # 運行haproxy的用戶身份
nbproc ? ? ? ? ? ? ? ? ? ?# 開啟的haproxy進程數,與CPU保持一致
nbthread ? ? ? ? ? ? ? ? ?# 指定每個haproxy進程開啟的線程數,默認為每個進程一個線程
cpu-map 1 0 ? ? ? ? ? ? ? # 綁定haproxy 進程至指定CPU
maxconn ? ? ? ? ? ? ? ? ? # 每個haproxy進程的最大并發連接數
maxsslconn ? ? ? ? ? ? ? ?# 每個haproxy進程ssl最大連接數,用于haproxy配置了證書的場景下
maxconnrate ? ? ? ? ? ? ? # 每個進程每秒創建的最大連接數量
spread-checks ? ? ? ? ? ? # 后端server狀態check隨機提前或延遲百分比時間,建議2-5(20%-50%)之間
pidfile ? ? ? ? ? ? ? ? ? # 指定pid文件路徑
log 127.0.0.1 local3 info ? ?# 定義全局的syslog服務器;最多可以定義兩個

7.1.2、 proxy 代理配置

主要分為下面4個部分

defaults [<name>] ?# 默認配置項,針對以下的frontend、backend和lsiten生效,可以多個name
frontend <name> ? ?# 前端servername,類似于Nginx的一個虛擬主機 server。
backend <name> ? ? # 后端服務器組,等于nginx的upstream
listen <name> ? ? ?# 將frontend和backend合并在一起配置

1)proxies 配置-defaults

option redispatch ? ? ? ? ? # 當server Id對應的服務器掛掉后,強制定向到其他健康的服務器
option abortonclose ? ? ? ? # 當服務器負載很高的時候,自動結束掉當前隊列處理比較久的鏈接
option http-keep-alive ? ? ?# 開啟與客戶端的會話保持
option forwardfor ? ? ? ? ? # 透傳客戶端真實IP至后端web服務器
mode http ? ? ? ? ? ? ? ? ? # 默認工作類型
timeout connect 120s ? ? ? ?# 客戶端請求到后端server的最長連接等待時間(TCP之前)
timeout server 600s ? ? ? ? # 客戶端請求到后端服務端的超時超時時長(TCP之后)
timeout client 600s ? ? ? ? # 與客戶端的最長非活動時間
timeout http-keep-alive 120s # session 會話保持超時時間,范圍內會轉發到相同的后端服務器
timeout check 5s ? ? ? ? ? ?# 對后端服務器的檢測超時時間

2)proxies配置-frontend 配置參數

####################  監控頁面的設置   ####################### 
listen admin_status                # Frontend 和Backend 的組合體,監控組的名稱,按需自定義名稱 bind 0.0.0.0:65532             # 監聽端口 mode http                      # http的7層網絡模式 log 127.0.0.1 local3 err       # 錯誤日志記錄 stats refresh 5s               # 每隔5秒自動刷新監控頁面 stats uri /admin?stats         # 監控頁面的url stats realm itnihao\ itnihao   # 監控頁面的提示信息是 it ni hao stats auth admin:admin         # 監控頁面的用戶和密碼admin。可以設置多個用戶名,如下所示stats auth admin1:admin1       # 監控頁面的用戶和密碼 admin1 stats hide-version             # 隱藏統計頁面上的 HAproxy版本信息  stats admin if TRUE            # 手工啟用/禁用,后端服務器(haproxy-1.4.9以后版本) errorfile 403 /etc/haproxy/errorfiles/403.http errorfile 500 /etc/haproxy/errorfiles/500.http errorfile 502 /etc/haproxy/errorfiles/502.http errorfile 503 /etc/haproxy/errorfiles/503.http errorfile 504 /etc/haproxy/errorfiles/504.http################# HAProxy 的日志記錄內容設置 ################### capture request  header Host           len 40 capture request  header Content-Length len 10 capture request  header Referer        len 200 capture response header Server         len 40 capture response header Content-Length len 10 capture response header Cache-Control  len 8####################### 網站監測 listen 配置 ##################### 
########### 此用法主要是監控 haproxy 后端服務器的監控狀態 
listen site_status bind 0.0.0.0:1081                        # 監聽端口 mode http                                # http的7層模式 log 127.0.0.1 local3 err                 # [err warning info debug] monitor-uri /site_status                 # 網站健康檢測URL,用來檢測HAProxy管理的網站是否可以用,正常返回200,不正常返回503 acl site_dead nbsrv(server_web)  lt 2    # 定義網站down時的策略當掛在負載均衡上的指定backend的中有效機器數小于2臺時返回true acl site_dead nbsrv(server_blog) lt 2 acl site_dead nbsrv(server_bbs)  lt 2  monitor fail if site_dead                # 當滿足策略的時候返回503,網上文檔說的是500,實際測試為503 monitor-net 192.168.16.2/32              # 來自192.168.16.2的日志信息不會被記錄和轉發 monitor-net 192.168.16.3/32 ####################### frontend配置 ################################ 
##### 注意,frontend 配置里面可以定義多個 acl 進行匹配操作
frontend http_80_in bind 0.0.0.0:80      # 監聽端口,即 haproxy 提供web服務的端口,和 lvs 的vip端口類似 mode http            # http的7層模式 log global           # 應用全局的日志配置 option httplog       # 啟用http的log option httpclose     # 每次請求完畢后主動關閉 http 通道,HA-Proxy不支持keep-alive模式 option forwardfor    # 如果后端服務器需要獲得客戶端的真實IP需要配置次參數,將可以從 Http Header 中獲得客戶端IP ######################## acl 策略配置acl itnihao_web hdr_reg(host) -i ^(www.itnihao.cn|ww1.itnihao.cn)$    # 如果請求的域名滿足正則表達式中的2個域名返回true -i是忽略大小寫 acl itnihao_blog hdr_dom(host) -i blog.itnihao.cn# 如果請求的域名滿足 www.itnihao.cn 返回true, -i 是忽略大小寫 # acl itnihao    hdr(host) -i itnihao.cn # 如果請求的域名滿足 itnihao.cn 返回true, -i是忽略大小寫 # acl file_req url_sub -i  killall= # 在請求url中包 含killall= ,則此控制策略返回true,否則為false # acl dir_req url_dir -i allow # 在請求url中存在allow作為部分地址路徑,則此控制策略返回true,否則返回false # acl missing_cl hdr_cnt(Content-length) eq 0 # 當請求的header中Content-length等于0時返回true######################## acl策略匹配相應 # block if missing_cl # 當請求中header中Content-length等于0阻止請求返回403 # block if !file_req || dir_req # block表示阻止請求,返回403錯誤,當前表示如果不滿足策略file_req,或者滿足策略dir_req,則阻止請求 use_backend  server_web  if itnihao_web # 當滿足 itnihao_web的策略時使用server_web的backend use_backend  server_blog if itnihao_blog # 當滿足 itnihao_blog 的策略時使用 server_blog的backend # redirect prefix http://blog.itniaho.cn code 301 if itnihao # 當訪問 itnihao.cn 的時候,用 http 的 301 挑轉到 http://192.168.16.3 default_backend server_bbs ### 以上都不滿足的時候使用默認 server_bbs 的 backend #########################  backend的設置   ######################## ### 下面我將設置三組服務器 server_web,server_blog,server_bbs
############### backend server_web  ##############
backend server_web mode http                         # http的7層模式 balance roundrobin                # 負載均衡的方式,roundrobin平均方式 cookie SERVERID                   # 允許插入serverid到cookie中,serverid后面可以定義 option httpchk GET /index.html    # 心跳檢測的文件 server web1 192.168.16.2:80 cookie web1 check inter 1500 rise 3 fall 3 weight 1     server web2 192.168.16.3:80 cookie web2 check inter 1500 rise 3 fall 3 weight 2# server web2 192.168.16.3:80 表示 服務器定義,# cookie web2 表示 serverid為web2,# check inter 1500 表示 檢測心跳頻率,# rise 3 表示 3次正確認為服務器可用, # fall 3 表示 3次失敗認為服務器不可用,# weight 2 表示 權重    ################ backend server_blog ########### 
backend server_blog mode http                        # http 模式 balance roundrobin               # 負載均衡的方式,roundrobin 輪詢cookie SERVERID                  # 允許插入serverid 到 cookie中,serverid 后面可以定義 option httpchk GET /index.html   # 心跳檢測的文件 server blog1 192.168.16.2:80 cookie blog1 check inter 1500 rise 3 fall 3 weight 1      server blog2 192.168.16.3:80 cookie blog2 check inter 1500 rise 3 fall 3 weight 2 ################ backend server_bbs #########
backend server_bbs mode http                       # http的7層模式 balance roundrobin              # 負載均衡的方式,roundrobin 輪詢cookie SERVERID                 # 允許插入 serverid 到 cookie 中,serverid 后面可以定義 option httpchk GET /index.html  # 心跳檢測的文件 server bbs1 192.168.16.2:80 cookie bbs1 check inter 1500 rise 3 fall 3 weight 1  server bbs2 192.168.16.3:80 cookie bbs2 check inter 1500 rise 3 fall 3 weight 2 

7.2、haproxy.cfg 配置文件

然后登錄網址可以發現是輪詢了?

八.狀態統計功能測試

###只有七層才能配置
listen stats #定義監控頁面    mode httpoption httplogbind *:1080                   #綁定端口1080    stats refresh 30s             #每30秒更新監控數據    stats uri /stats              #訪問監控頁面的uri    stats realm HAProxy\ Stats    #監控頁面的認證提示    stats auth admin:admin        #監控頁面的用戶名和密碼

輸入密碼登錄后的界面

九.總結

本節內容量較小,且內容不難,更多的是去熟練之前的學習,在此基礎上,這些就很簡單了,只需要簡單改兩個配置即可達到目的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89160.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89160.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89160.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

策略模式及優化

策略模式&#xff08;Strategy Pattern&#xff09;是一種行為設計模式&#xff0c;其核心思想是將算法的定義與使用分離&#xff0c;使算法可以獨立于客戶端進行變化。它通過定義一系列算法&#xff0c;將每個算法封裝到獨立的類中&#xff0c;并使它們可以互相替換&#xff0…

微信小程序開發-桌面端和移動端UI表現不一致問題記錄

桌面端和移動端UI表現不一致零、引擎說明一、樣式不同1、text 單行&#xff1a;1.1 空格開發者工具不展示&#xff0c;手機/PC端正常1.2 正常展示省略號&#xff0c;需要2、點擊按鈕z-index: -1。webview - 桌面端不行&#xff0c; skyline - 移動端可以&#xff1b;3、其他說明…

極限狀態下函數開根號的計算理解(含示意圖)

遇到一個挺有意思的題做個記錄&#xff1a; 求曲線y (x21)(x2?1)0.5\frac{\left(x^{2}1\right)}{\left(x^{2}-1\right)^{0.5}}(x2?1)0.5(x21)?漸近線的條數 比較明顯的x 1是無定義點。但是在求極限的時候發現1和1-得到的極限值似乎不一樣。似乎是1是趨向于∞&#xff0c;1…

C++——模版(函數模版和類模版)

C 模板&#xff08;Templates&#xff09;完整介紹模板是 C 中一種強大的泛型編程機制&#xff0c;允許開發者編寫與類型無關的代碼&#xff0c;從而提高代碼的復用性和靈活性。通過模板&#xff0c;可以避免為不同數據類型重復編寫相似的函數或類&#xff0c;實現真正的代碼復…

Python之cv2:cv2(OpenCV,opencv-python)庫pip下載超時、下載失敗、無法下載的解決方案大全

Python之cv2&#xff1a;cv2(OpenCV&#xff0c;opencv-python)庫pip下載超時、下載失敗、無法下載的解決方案大全 在學習和使用 OpenCV&#xff08;Python 包名&#xff1a;opencv-python 或簡稱 cv2&#xff09;的過程中&#xff0c;很多初學者常常會遇到通過 pip install o…

asyncio 與 uvloop

事件循環 事件循環 協調所有協程執行的中央調度器&#xff0c;它通過非阻塞機制&#xff0c;實現并發執行多個異步任務。 事件循環是 異步編程的核心機制&#xff0c;用一句話概括就是&#xff1a; 事件循環不斷檢查任務隊列&#xff0c;一旦某個異步任務完成&#xff0c;它…

一文讀懂循環神經網絡(RNN)—語言模型+n元語法(1)

目錄 什么是語言模型&#xff1f; 語言模型的核心目的 一.量化文本的合理性 二.支持下游 NLP 任務 三. 語義和上下文依賴 一元語法、二元語法和三元語法詳解 核心概念&#xff1a;n-gram 模型 1. 一元語法&#xff08;Unigram&#xff09; 2. 二元語法&#xff08;Bigram…

DirectX12(D3D12)基礎教程九 間接繪制

在學習directx12 microsoft提供了很多示例&#xff0c;有簡單的也有復雜,下載網址&#xff1a;https://github.com/microsoft/DirectX-Graphics-Samples 本章對D3D12ExecuteIndirect 示例做了簡化&#xff0c;只保留間接繪制部分&#xff0c;刪除了計算著色器部分。 間接繪制…

fastApi連接數據庫

1&#xff1a;pip install tortoise-orm2&#xff1a;pip install aiomysql3&#xff1a;pip install asyncmy或者使用國內清華園pip install -i https://pypi.tuna.tsinghua.edu.cn/simple asyncmy4&#xff1a;pip install aerich通過 python -m 直接運行&#xff08;推薦&a…

Apache-web服務器環境搭建

目錄 實驗要求 思路總結 1.常規配置web服務 2.通過用戶主頁配置web服務 3.通過虛擬目錄配置web服務 4.添加DNS解析服務&#xff0c;訪問虛擬機域名&#xff1a; www.TestWeb.com 實驗要求 (ip 192.168.48.130) 1、常規配置web服務 2、通過用戶主頁配置web服務 3、通過虛…

Altium Designer 25 安裝與配置完整教程

本教程將帶您一步步完成 Altium Designer 25 的下載、安裝與激活配置 第一步&#xff1a;下載安裝包 首先&#xff0c;需要獲取 Altium Designer 25 的完整安裝程序。 &#x1f449; 下載鏈接&#xff1a; 百度網盤&#xff1a;百度網盤 請輸入提取碼 提取碼: dxei 夸克網盤…

【工具】AndroidStudio修改中文語言漢化

AndroidStudio修改中文語言漢化 https://github.com/sollyu/AndroidStudioChineseLanguagePackhttps://github.com/sollyu/AndroidStudioChineseLanguagePack

代碼隨想錄|圖論|15并查集理論基礎

并查集理論基礎 | 代碼隨想錄 并查集還是比較簡單的&#xff0c;只要搞清楚兩個事情&#xff1a; 并查集是干啥的&#xff1f;解決什么類型問題&#xff1f;并查集模板&#xff08;背下來&#xff09; 1、并查集是干啥的 并查集主要是兩個功能&#xff1a; 兩個元素添加到…

用MYSQL學習sql第一次總結和作業

總結 數據庫&#xff08;Database&#xff09; 理解為“文件夾”&#xff0c;里面可以裝很多張表。作業中要求先建一個名字叫 mydb6_product 的數據庫。 表&#xff08;Table&#xff09; 理解為“Excel 工作表”&#xff0c;由“列&#xff08;字段&#xff09;”和“行&…

SQLite技術架構解析,適用場景有哪些?

一、SQLite技術架構解析 SQLite是一款輕量級、無服務器、嵌入式關系型數據庫&#xff0c;其架構設計圍繞“簡化復雜性、提升效率”展開&#xff0c;核心由前端&#xff08;SQL處理&#xff09;、執行引擎&#xff08;VDBE&#xff09;、存儲引擎&#xff08;B-Tree&#xff09;…

【Luogu】每日一題——Day3. P6392 中意 (數學 取模)

鏈接&#xff1a;P6392 中意 - 洛谷 題目&#xff1a; 思路&#xff1a; 數論這一塊 題目讓我們求這個結果對 MOD 取模&#xff0c;那么我們肯定是不像看到這個除法&#xff0c;所以考慮如何消除這個除法 我們可以想到&#xff0c;向上取整就是加上一個數&#xff0c;假設其為…

React強大且靈活hooks庫——ahooks入門實踐之DOM類hook(dom)詳解

什么是 ahooks&#xff1f; ahooks 是一個 React Hooks 庫&#xff0c;提供了大量實用的自定義 hooks&#xff0c;幫助開發者更高效地構建 React 應用。其中 DOM 類 hooks 是 ahooks 的一個重要分類&#xff0c;專門用于處理 DOM 相關操作&#xff0c;如事件監聽、元素狀態、拖…

GeoTools 工廠設計模式

前言使用GeoTools開發時有必要了解其工廠設計模式&#xff0c;作為軟件開發核心設計模式&#xff0c;其設計思想具有普遍性和研究性。明白方法原理有助于提高開發效率&#xff0c;達到事半功倍的效果。1. 工廠模式 工廠模式&#xff08;Factory Pattern&#xff09;是面向對象中…

npu-smi info命令參數解釋

華為昇騰npu-smi顯示npu-smi工具的幫助信息npu-smi -h字段說明-h命令的幫助信息–help命令的幫助信息-vnpu-smi版本信息info顯示硬件詳細信息set修改設備配置屬性clear清除設備信息upgrade升級MCU固件 npu-smi info 用于監控和管理華為NPU的狀態和性能字段值說明npu-smi24.1.rc…

OneCode3.0 通信架構簡介——MCPServer微內核設計哲學與實現

在數字化轉型加速的今天&#xff0c;低代碼平臺已成為企業快速交付應用的核心基礎設施。然而&#xff0c;通用消息中間件與低代碼開發范式之間存在難以調和的矛盾&#xff1a;標準化協議無法匹配可視化編排的動態性&#xff0c;通用架構難以滿足低代碼場景下高頻短消息的性能需…