国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx高并發(fā),Nginx怎么設(shè)置才支持百萬并發(fā)?

只知道 Nginx 牛逼,卻不知道它怎么支持百萬并發(fā)?

本文將深入探討Nginx的關(guān)鍵技術(shù)和配置優(yōu)化,幫助您更好地了解如何利用Nginx實(shí)現(xiàn)高性能的Web服務(wù)器。

近年來,Nginx作為一款備受推崇的開源、高性能、高可靠的Web和反向代理服務(wù)器,備受業(yè)界關(guān)注。其強(qiáng)大的性能和高并發(fā)能力使其成為許多互聯(lián)網(wǎng)公司和知名網(wǎng)站的首選。但是,許多人對于Nginx如何支持百萬級并發(fā)連接的內(nèi)部工作原理卻知之甚少。本文將深入探討Nginx的關(guān)鍵技術(shù),揭秘其支持百萬級并發(fā)連接的秘密。

無論是運(yùn)維、開發(fā)、測試,Nginx 技術(shù)棧的學(xué)習(xí)總是必不可少的,只是不同的崗位掌握的深度與廣度不同而已。

什么是 Nginx?

Nginx 是開源、高性能、高可靠的 Web 和反向代理服務(wù)器,支持熱部署,幾乎可以做到 7 * 24 小時不間斷運(yùn)行,還可在不間斷服務(wù)的情況下對軟件版本進(jìn)行熱更新。Nginx 性能非常牛逼,占用內(nèi)存少、并發(fā)能力強(qiáng)、能支持高并發(fā),支持絕大部分協(xié)議,如TCP、UDP、SMTP、HTTPS等。最重要的是, Nginx 是免費(fèi)開源的且可以商業(yè)化,配置使用也比較簡單。

在中國有眾多互聯(lián)網(wǎng)大廠,如百度、京東、新浪、網(wǎng)易、騰訊等都在使用 Nginx,也有很多高知名度的國外網(wǎng)站也在使用 Nginx,比如:Netflix、GitHub、SoundCloud、MaxCDN等。

官方網(wǎng)站:http://www.nginx.org

Nginx 架構(gòu)

Nginx的架構(gòu)設(shè)計(jì)是支持高并發(fā)的基石。在啟動時,Nginx會生成主進(jìn)程(master)和工作進(jìn)程(worker)。主進(jìn)程負(fù)責(zé)調(diào)度工作進(jìn)程,而工作進(jìn)程則獨(dú)立處理網(wǎng)絡(luò)請求,每個工作進(jìn)程都可以同時處理數(shù)以千計(jì)的網(wǎng)絡(luò)請求。請查看以下示意圖:

Nginx 架構(gòu)示意圖

Nginx 是如何支持百萬并發(fā)?

Nginx 能夠支持百萬并發(fā)連接,主要通過以下幾個方面來實(shí)現(xiàn):

主進(jìn)程與工作進(jìn)程

Nginx 主進(jìn)程與工作進(jìn)程

當(dāng) Nginx 啟動時,會生成主進(jìn)程(master)和工作進(jìn)程(worker)

root@nginx ~]# ps -ef|grep nginx
root       6324      1  0 09:06 ?        00:00:00 nginx: master process /usr/local/nginx-1.12.2/sbin/nginx
nobody     6325   6324  0 09:06 ?        00:00:00 nginx: worker process
root       6327   1244  0 09:06 pts/0    00:00:00 grep --color=auto ngin
  • 主進(jìn)程主要負(fù)責(zé)調(diào)度工作進(jìn)程(管理 Worker 進(jìn)程),并不直接處理網(wǎng)絡(luò)請求。

  • 工作進(jìn)程(所有 Worker 進(jìn)程都對等的)是實(shí)際處理網(wǎng)絡(luò)請求及響應(yīng)的進(jìn)程,每個工作進(jìn)程都是獨(dú)立的,可同時處理數(shù)以千計(jì)的網(wǎng)絡(luò)請求。

Master 工作過程細(xì)節(jié)

1. Master 建立 listen 的 socket (listenfd)

2. Master,fork 出 Worker 進(jìn)程(fork:進(jìn)程鏡像)

3. 新請求到來時,所有 Worker 進(jìn)程的 listenfd 都變?yōu)榭勺x;

4. Worker 進(jìn)程,競爭 accept_mutex,獲勝的注冊 listenfd 的讀事件

5. Worker 進(jìn)程,在讀事件中,accept 當(dāng)前連接,并處理請求

疑問:

1. listenfd, Master 和 Worker 共享一個?

2.accept mutex 在哪里?

Worker 工作過程細(xì)節(jié):

1. 新請求到來時,所有 Worker 進(jìn)程的 listenfd 都變?yōu)榭勺x;

2. Worker 進(jìn)程,競爭 accept_mutex,獲勝的注冊 llistenfd 的讀事件

3. Worker 進(jìn)程,在讀事件中,accept 當(dāng)前連接;

4. Worker 進(jìn)程,讀取請求、解析請求、處理請求、進(jìn)行響應(yīng)。

事件驅(qū)動模型

Nginx 的事件驅(qū)動模型由事件收集器、發(fā)送器和處理器三部分基本單元組成。

  • 事件收集器:收集 worker 進(jìn)程的各種 IO 請求

  • 事件發(fā)送器:將 IO 事件發(fā)送到事件處理器

  • 事件處理器:處理各種事件的響應(yīng)工作

Nginx 事件驅(qū)動架構(gòu)是基于異步及非阻塞的方式,這種設(shè)計(jì)允許 Nginx 同時處理多個網(wǎng)絡(luò)請求。

Ngxin 事件驅(qū)動模型

當(dāng)一個客戶端發(fā)起請求時,Nginx 會將該請求交給一個工作進(jìn)程,由工作進(jìn)程負(fù)責(zé)處理請求。工作進(jìn)程采用異步方式處理請求,每個請求在一個單獨(dú)的工作進(jìn)程中處理,這樣就不會因?yàn)橐粋€請求的阻塞而影響其他請求的處理。因些,它可以同時處理多個客戶端請求,從而提高了并發(fā)處理能力。

非阻塞IO

Nginx 在處理請求時采用了非阻塞 I/O 操作,這意味著它不會在等待 I/O 操作完成時阻塞進(jìn)程。通過使用非阻塞 I/O,Nginx 可以同時處理多個 I/O 操作,從而提高了整體的處理能力。

如前面的圖,事件發(fā)送器會將事件放入一個類似待處理的列表中,然后采用非非阻塞 I/O 方式來調(diào)用事件處理器來處理這個請求。

這種處理模式我們又將其稱為“多路復(fù)用 I/O”,最常見的有括這三種:select 模型、poll模型、epoll 模型。

內(nèi)存管理

Nginx 使用了強(qiáng)大內(nèi)存池技術(shù)來管理內(nèi)存,內(nèi)存池中的內(nèi)存塊是預(yù)先分配的,避免了頻繁的內(nèi)存分配和釋放操作,從而減少了內(nèi)存分配和釋放的開銷,這樣可以使 Nginx 在處理大量并發(fā)連接時更加高效。

負(fù)載均衡Nginx 可以作為反向代理服務(wù)器使用,將客戶端請求轉(zhuǎn)發(fā)給后端服務(wù)器處理。通過配置負(fù)載均衡策略,Nginx 可以將請求分發(fā)到多個后端服務(wù)器,進(jìn)一步提高整體的處理能力,這也是它給支持百萬并發(fā)的一大關(guān)鍵技術(shù)。
upstream server_pools { 
  server 192.168.1.100:8888   weight=5;
  server 192.168.1.101:9999   weight=5;
  server 192.168.1.102:6666   weight=5;
  #weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大
}
server {  
  listen 80; 
  server_name toymoban.com;
  location / {    
  proxy_pass http://server_pools; 
   }
}

Nginx 實(shí)現(xiàn)負(fù)載均衡的策略

  • 輪詢策略:默認(rèn)情況下采用的策略,將所有客戶端請求輪詢分配給服務(wù)端。這種策略是可以正常工作的,但是如果其中某一臺服務(wù)器壓力太大,出現(xiàn)延遲,會影響所有分配在這臺服務(wù)器下的用戶。
  • 最小連接數(shù)策略:將請求優(yōu)先分配給壓力較小的服務(wù)器,它可以平衡每個隊(duì)列的長度,并避免向壓力大的服務(wù)器添加更多的請求。
  • 最快響應(yīng)時間策略:優(yōu)先分配給響應(yīng)時間最短的服務(wù)器。
  • 客戶端 ip 綁定策略:來自同一個 ip 的請求永遠(yuǎn)只分配一臺服務(wù)器,有效解決了動態(tài)網(wǎng)頁存在的 session 共享問題。

緩存

Nginx 支持緩存功能,Nginx 緩存作為性能優(yōu)化的一個重要手段,可以極大減輕后端服務(wù)器的負(fù)載。

我們可以通過 Nginx 配置將靜態(tài)文件存儲在本地磁盤上,直接提供給客戶端,減少了請求后端服務(wù)器的次數(shù),提高了性能和并發(fā)處理能力。
proxy_cache_path  #代理緩存的路徑
#語法格式
proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

proxy_cache #開啟或關(guān)閉代理緩存
#語法格式
proxy_cache zone | off;  #zone為內(nèi)存區(qū)域的名稱,即上面中keys_zone設(shè)置的名稱。

proxy_cache_key #定義如何生成緩存的鍵
#語法格式
proxy_cache_key string;  #string為生成Key的規(guī)則,如proxy_host$request_uri。

proxy_cache_valid  #緩存生效的狀態(tài)碼與過期時間。
#語法格式
proxy_cache_valid [code ...] time;  #code為狀態(tài)碼,time為有效時間,可以根據(jù)狀態(tài)碼設(shè)置不同的緩存時間。如:proxy_cache_valid 200 302 30m;

proxy_cache_min_uses #設(shè)置資源被請求多少次后被緩存。
#語法格式
proxy_cache_min_uses number;  #number為次數(shù),默認(rèn)為1。

proxy_cache_use_stale #當(dāng)后端出現(xiàn)異常時,是否允許Nginx返回緩存作為響應(yīng)。
#語法格式
proxy_cache_use_stale error;  #error為錯誤類型

proxy_cache_lock  #是否開啟鎖機(jī)制
#語法格式
proxy_cache_lock on | off;

proxy_cache_lock_timeout #配置鎖超時機(jī)制,超出規(guī)定時間后會釋放請求。
#語法格式
proxy_cache_lock_timeout time;

proxy_cache_methods #設(shè)置對于那些HTTP方法開啟緩存。
#語法格式
proxy_cache_methods method;  #method為請求方法類型,如GET、HEAD等。

proxy_no_cache #設(shè)置不存儲緩存的條件,符合時不會保存。
#語法格式
proxy_no_cache string...;  #string為條件,如arg_nocache $arg_comment;

proxy_cache_bypass  #設(shè)置不讀取緩存的條件,符合時不會從緩存中讀取。
#語法格式
proxy_cache_bypass string...;  #與上面proxy_no_cache的配置方法類似。

add_header  #配置往響應(yīng)頭中添加字段信息。
#語法格式
add_header fieldName fieldValue;

$upstream_cache_status #記錄了緩存是否命中的信息,存在以下多種情況:

MISS:請求未命中緩存。
HIT:請求命中緩存。
EXPIRED:請求命中緩存但緩存已過期。
STALE:請求命中了陳舊緩存。
REVALIDDATED:Nginx驗(yàn)證陳舊緩存依然有效。
UPDATING:命中的緩存內(nèi)容陳舊,但正在更新緩存。
BYPASS:響應(yīng)結(jié)果是從原始服務(wù)器獲取的。

#注:這是一個Nginx內(nèi)置變量,與上面的參數(shù)不同。
下面是一個配置實(shí)例
server{  
        location / {  
            # 使用名為nginx_cache的緩存空間  
            proxy_cache hot_cache;  
            # 對于200、206、304、301、302狀態(tài)碼的數(shù)據(jù)緩存1天  
            proxy_cache_valid 200 206 304 301 302 1d;  
            # 對于其他狀態(tài)的數(shù)據(jù)緩存30分鐘  
            proxy_cache_valid any 30m;  
            # 定義生成緩存鍵的規(guī)則(請求的url+參數(shù)作為key)  
            proxy_cache_key $host$uri$is_args$args;  
            # 資源至少被重復(fù)訪問三次后再加入緩存  
            proxy_cache_min_uses 3;  
            # 出現(xiàn)重復(fù)請求時,只讓一個去后端讀數(shù)據(jù),其他的從緩存中讀取  
            proxy_cache_lock on;  
            # 上面的鎖超時時間為3s,超過3s未獲取數(shù)據(jù),其他請求直接去后端  
            proxy_cache_lock_timeout 3s;  
            # 對于請求參數(shù)或cookie中聲明了不緩存的數(shù)據(jù),不再加入緩存  
            proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;  
            # 在響應(yīng)頭中添加一個緩存是否命中的狀態(tài)(便于調(diào)試)  
            add_header Cache-status $upstream_cache_status;  
        }

模塊化設(shè)計(jì)

Nginx 的模塊化設(shè)計(jì)使得它能夠根據(jù)需求選擇和加載不同的模塊,以支持各種功能,如日志記錄、身份驗(yàn)證等。這種設(shè)計(jì)靈活性高,便于擴(kuò)展和維護(hù)。

Nginx 的模塊主要包括核心模塊、標(biāo)準(zhǔn)HTTP模塊、可選HTTP模塊、郵件服務(wù)模塊和第三方模塊等。這些模塊通過事件驅(qū)動模型和非阻塞I/O等技術(shù)手段,實(shí)現(xiàn)了高效地處理大量的并發(fā)連接,支持百萬級別的并發(fā)訪問。

Nginx 這種模塊化設(shè)計(jì)使得它可以根據(jù)不同的需求去加載不同的模塊,從而去支持各種不同的功能,這個設(shè)計(jì)非常靈活,且便于擴(kuò)展與維護(hù)。

核心模塊是Nginx的基礎(chǔ)部分,主要實(shí)現(xiàn)了底層的自身的一部分通訊協(xié)議,也為其他的一些模塊和Nginx的進(jìn)程等內(nèi)容提供了一個運(yùn)行時的環(huán)境。標(biāo)準(zhǔn)HTTP模塊是核心中的一部分,負(fù)責(zé)定義除配置模塊之外的其他模塊??蛇xHTTP模塊則提供了更多高級功能,如負(fù)載均衡、SSL加密等。郵件服務(wù)模塊則與郵件相關(guān)。第三方模塊則是一些由第三方提供的模塊,可以擴(kuò)展Nginx的功能。

總的來說,Nginx 的模塊化設(shè)計(jì)是其高性能、高并發(fā)能力的關(guān)鍵因素之一。

代理機(jī)制

Nginx 作為反向代理服務(wù)器能夠?qū)崿F(xiàn)請求轉(zhuǎn)發(fā)、負(fù)載均衡、緩存等功能,提高處理性能和并發(fā)能力。

Nginx 作為反向代理服務(wù)器使用時,會接收客戶端的請求并轉(zhuǎn)發(fā)給后端服務(wù)器處理。通過代理機(jī)制,Nginx能夠?qū)崿F(xiàn)請求的轉(zhuǎn)發(fā)、負(fù)載均衡、緩存等功能,提高了處理性能和并發(fā)能力。

相關(guān)的介紹文章可以參考:  以下是一個基本的配置示例:
http {
.............
    upstream product_server{
        127.0.0.1:8081;
    }

    upstream admin_server{
        127.0.0.1:8082;
    }

    upstream test_server{
        127.0.0.1:8083;
    }

server {
      
  #默認(rèn)指向product的server
  location / {
      proxy_pass http://product_server;
      }

  location /product/{
      proxy_pass http://product_server;
     }

  location /admin/ {
      proxy_pass http://admin_server;
     }

  location /test/ {
      proxy_pass http://test_server;
      }
    }
}

Nginx通過這些優(yōu)秀的技術(shù)設(shè)計(jì),然后將這些技術(shù)手段在 Nginx 中廣泛應(yīng)用,使得 Nginx 能夠高效地處理大量的并發(fā)連接,我們在實(shí)際應(yīng)用中,可以通過合理的配置 Nginx,來提高與優(yōu)化其性能,進(jìn)一步提高并發(fā)處理能力,從而去支持百萬級別的并發(fā)訪問。

Nginx 能夠高效地處理大量的并發(fā)連接,我們在實(shí)際應(yīng)用中,可以通過合理的配置 Nginx,來提高與優(yōu)化其性能,進(jìn)一步提高并發(fā)處理能力,從而去支持百萬級別的并發(fā)訪問。

示例

以下是一個示例,展示如何使用Nginx配置支持百萬級并發(fā)連接的簡單示例:文章來源地址http://www.zghlxwxcb.cn/article/743.html

worker_processes auto;  # 自動設(shè)置工作進(jìn)程數(shù)量

events {
    worker_connections 1024;  # 每個工作進(jìn)程允許的最大連接數(shù)
    use epoll;  # 使用epoll事件驅(qū)動模型
}

http {
    include mime.types;
    default_type application/octet-stream;
    
    sendfile on;  # 開啟sendfile功能
    tcp_nopush on;  # 開啟tcp_nopush功能
    tcp_nodelay on;  # 開啟tcp_nodelay功能
    
    keepalive_timeout 65;  # 客戶端保持連接的超時時間
    
    gzip on;  # 開啟gzip壓縮
    
    server {
        listen 80;
        
        location / {
            root /path/to/your/website;
            index index.html;
        }
    }
}

到此這篇關(guān)于Nginx高并發(fā),Nginx怎么設(shè)置才支持百萬并發(fā)?的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/743.html

如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請聯(lián)系站長進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot接口實(shí)現(xiàn)百萬并發(fā)

    隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的應(yīng)用需要支持高并發(fā)。在這種情況下,如何實(shí)現(xiàn)高并發(fā)成為了一個重要的問題。Spring Boot是一個非常流行的Java框架,它提供了很多方便的功能來支持高并發(fā)。本文將介紹如何使用Spring Boot來實(shí)現(xiàn)百萬并發(fā)。 Spring Boot是一個基于Spring框架的快速開

    2024年02月13日
    瀏覽(29)
  • 2.2.1服務(wù)器百萬并發(fā)實(shí)現(xiàn)

    2.2.1服務(wù)器百萬并發(fā)實(shí)現(xiàn)

    Reactor模型的幾個重要組件:Event事件、Reactor反應(yīng)堆、Demultiplex事件分發(fā)器、Evanthandler事件處理器 接上節(jié)課,上節(jié)課中,我們使用了epoll實(shí)現(xiàn)了同時監(jiān)聽多個文件描述符,是對IO的管理,也提到了reactor是對事件的管理,那具體來說是怎樣的呢?reactor是事件驅(qū)動模型,也就是EP

    2023年04月23日
    瀏覽(23)
  • C++從0實(shí)現(xiàn)百萬并發(fā)Reactor服務(wù)器

    C++從0實(shí)現(xiàn)百萬并發(fā)Reactor服務(wù)器

    C++從0實(shí)現(xiàn)百萬并發(fā)Reactor服務(wù)器 // \\\"xia讠果URI\\\"》uкооu·??Μ C++從0實(shí)現(xiàn)百萬并發(fā)Reactor服務(wù)器 - 網(wǎng)絡(luò)編程基礎(chǔ) 網(wǎng)絡(luò)編程中有許多基礎(chǔ)概念必須了解,比如 OSI,TCP/IP,字節(jié)序列等,這些都是開發(fā)網(wǎng)絡(luò)應(yīng)用的基礎(chǔ),可以幫助我們更好的理解網(wǎng)絡(luò)程序的工作原理,來一起學(xué)習(xí)下一些

    2024年03月17日
    瀏覽(24)
  • 用反應(yīng)器模式和epoll構(gòu)建百萬并發(fā)服務(wù)器

    用反應(yīng)器模式和epoll構(gòu)建百萬并發(fā)服務(wù)器

    此處的百萬并發(fā)指的是可以建立至少100w個客戶端連接,不考慮業(yè)務(wù)處理。 反應(yīng)器模式下的epoll相比起普通的epoll不同在于:普通的epoll在獲取到就緒狀態(tài)的event結(jié)構(gòu)體之后,先判斷是什么類型的fd,再進(jìn)行操作。而reactor先判斷是什么類型的事件,再進(jìn)行操作。本文從頭用react

    2024年02月02日
    瀏覽(25)
  • Python潮流周刊#5:并發(fā)一百萬個任務(wù)要用多少內(nèi)存?

    你好,我是貓哥。這里記錄每周值得分享的 Python 及通用技術(shù)內(nèi)容,部分為英文,已在小標(biāo)題注明。(標(biāo)題取自其中一則分享,不代表全部內(nèi)容都是該主題,特此聲明。) 博客原文:https://pythoncat.top/posts/2023-06-03-weekly5 1、并發(fā)一百萬個任務(wù)要用多少內(nèi)存?(英文) 文中測試了

    2024年02月07日
    瀏覽(25)
  • TCP服務(wù)器的演變過程:使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型實(shí)現(xiàn)百萬級并發(fā)(詳細(xì)代碼)

    TCP服務(wù)器的演變過程:使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型實(shí)現(xiàn)百萬級并發(fā)(詳細(xì)代碼)

    手把手教你從0開始編寫TCP服務(wù)器程序,體驗(yàn)開局一塊磚,大廈全靠壘。 為了避免篇幅過長使讀者感到乏味,對【TCP服務(wù)器的開發(fā)】進(jìn)行分階段實(shí)現(xiàn),一步步進(jìn)行優(yōu)化升級。 本節(jié),在上一章節(jié)介紹了如何使用epoll開發(fā)高效的服務(wù)器,本節(jié)將介紹使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型,實(shí)

    2024年02月01日
    瀏覽(28)
  • 五、Linux C/C++ 對epoll-reactor服務(wù)器的百萬級高并發(fā)實(shí)現(xiàn)

    五、Linux C/C++ 對epoll-reactor服務(wù)器的百萬級高并發(fā)實(shí)現(xiàn)

    前言:基于epoll的反應(yīng)堆模式(reactor)的服務(wù)器程序,進(jìn)行百萬并發(fā)量的連接測試。通過代碼優(yōu)化,以及服務(wù)器與客戶端的硬件配置優(yōu)化,達(dá)到百萬并發(fā)。 代碼實(shí)現(xiàn) 代碼實(shí)現(xiàn): 1臺服務(wù)器:8G運(yùn)行內(nèi)存 8核CPU 3臺客戶端:4G運(yùn)行內(nèi)存 4核CPU 這些硬件配置可以通過虛擬機(jī)配置。 按照

    2024年02月20日
    瀏覽(33)
  • 使用EasyExcel實(shí)現(xiàn)excel導(dǎo)出,支持百萬大數(shù)據(jù)量導(dǎo)出-----超簡單

    通過設(shè)置sheet數(shù)量,完成分批導(dǎo)出,每個sheet存100萬數(shù)據(jù),每次查詢插入20萬數(shù)據(jù),避免超時,內(nèi)存溢出等問題,可以根據(jù)服務(wù)器配置調(diào)整參數(shù)設(shè)置。 1.引入依賴 2.創(chuàng)建對應(yīng)的實(shí)體類 @ExcelProperty設(shè)置的就是導(dǎo)出的列名,還可以設(shè)置排序等等 3.核心導(dǎo)出代碼 4.配置類 至此就完成導(dǎo)

    2024年02月11日
    瀏覽(25)
  • 98.qt qml-使用曲線圖綜合示例、支持多種鼠標(biāo)交互、支持百萬數(shù)據(jù)顯示(已適配黑白風(fēng)格)

    98.qt qml-使用曲線圖綜合示例、支持多種鼠標(biāo)交互、支持百萬數(shù)據(jù)顯示(已適配黑白風(fēng)格)

    在上章我們只是簡單實(shí)現(xiàn)了曲線圖和折線圖的顯示: 79.qt qml-如何在QML中使用QCustomPlot之曲線/折線示例(已適配黑白風(fēng)格)_qml 折線圖_諾謙的博客-CSDN博客 所以本章實(shí)現(xiàn)綜合示例、并添加多種功能如下所示: 詳細(xì)顯示:鼠標(biāo)任意移動顯示具體值內(nèi)容 鼠標(biāo)右擊:?彈出菜單欄,支持

    2024年02月05日
    瀏覽(34)
  • IT架構(gòu)師怎么可以年薪百萬

    YY一下 IT架構(gòu)師是軟件企業(yè)的高級技術(shù)職位,要達(dá)到年薪百萬,需要以下幾個條件: 1. 精通主流技術(shù)棧,如云計(jì)算、大數(shù)據(jù)、區(qū)塊鏈等。這類熱門技術(shù)不僅需理解原理,還要有成功案例。因?yàn)樾劫Y高的公司通常都在技術(shù)前沿,需要架構(gòu)師掌握最新技術(shù)來引導(dǎo)企業(yè)變革。 深入理解新技術(shù)

    2024年02月06日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包