當前位置:首頁 » 存儲配置 » 長連接下伺服器端需要配置什麼

長連接下伺服器端需要配置什麼

發布時間: 2022-12-26 01:23:05

❶ 如何配置伺服器

在網路存在的環境下,伺服器可以提供的服務類型各不相同,所以伺服器又分為幾種,分別是文件伺服器、資料庫伺服器、應用程序伺服器以及web伺服器,下面我們就以文件伺服器為例來介紹一下伺服器的設置方法吧。
伺服器的設置方法:

第一步:首先需要登錄計算機的操作系統,在登錄時需要以管理員的身份進行,進入系統以後,使用滑鼠選擇開始菜單,然後再選擇管理工具選項,進入管理工具選項以後,在列表當中選擇相應的伺服器,這時會自動彈出一個窗口,然後點擊添加選項,然後根據配置向導進行下一步操作。

第二步:進行檢測,然後選擇自定義配置選項,進入下一步操作。

第三步:選擇頁面當中的伺服器角色按鈕,然後選擇其中的文件伺服器選項,接著使用滑鼠點擊下一步選項。

第四步:這時就可以將文件伺服器的磁碟配額打開了,接著再選擇相應的復選框,根據實際要求進行相應的設置,輸入最合適的數值。

第五步:將文件伺服器的索引服務打開,然後選擇是按鈕,將索引服務啟用,接著使用滑鼠點擊下一步選項。

第六步:進入下一步頁面以後,使用滑鼠點擊選擇總結選項,進入到相應的窗口以後,對完成的設置進行檢查,沒有差錯就進入下一步。

第七步:通過添加向導操作將所選用的服務進行啟用操作,然後頁面就會出現共享文件夾的向導,完成以上操作以後,點擊下一步選項。
第八步:將文件夾的路徑打開,然後使用滑鼠點擊瀏覽選項,在相應的列表當中,找到公共資源的文件夾,然後點擊確定按鈕,然後進入下一步操作。

❷ 京東大佬細說:Nginx反向代理時保持長連接,看完直呼"學到了!"

前言:

深入了解nginx,get到nginx的一些性能優化方向。除了了解如何保持長連接,也通過本案例學習到開源中間件的一些常用定位思路和優化方法。

場景描述

HTTP1.1之後,HTTP協議支持持久連接,也就是長連接,優點在於在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲。如果我們使用了nginx去作為反向代理或者負載均衡,從客戶端過來的長連接請求就會被轉換成短連接發送給伺服器端。為了支持長連接,我們需要在nginx伺服器上做一些配置。

要求

到長連接,我們必須做到以下兩點:

i.從client到nginx是長連接

ii.從nginx到server是長連接

對於客戶端而言,nginx其實扮演著server的角色,反之,之於server,nginx就是一個client。

保持和Client的長連接

我們要想做到Client與Nginx之間保持長連接,需要:

i.Client發送過來的請求攜帶「keep-alive」header。

ii.Nginx設置支持keep-alive。

HTTP配置

默認情況下,nginx已經開啟了對client連接的keepalive 支持。對於特殊場景,可以調整相關參數。

大多數情況下,keepalive_requests = 100也夠用,但是對於 QPS 較高的場景,非常有必要加大這個參數,以避免出現大量連接被生成再拋棄的情況,減少TIME_WAIT。QPS=10000 時,客戶端每秒發送 10000 個請求 (通常建立有多個長連接),每個連接只能最多跑 100 次請求,意味著平均每秒鍾就會有 100 個長連接因此被 nginx 關閉。同樣意味著為了保持 QPS,客戶端不得不每秒中重新新建 100 個連接。因此,如果用netstat命令看客戶端機器,就會發現有大量的TIME_WAIT的socket連接 (即使此時keepalive已經在 Client 和 NGINX 之間生效)。

保持和Server的長連接

想讓Nginx和Server之間維持長連接,最樸素的設置如下:

upstream配置

upstream中,有一個參數特別的重要,就是 keepalive 這個參數和之前http裡面的 keepalive_timeout 不一樣。這個參數的含義是,連接池裡面最大的空閑連接數量。

不理解?沒關系,我們來舉個例子:

場景:

有一個HTTP服務,作為upstream伺服器接收請求,響應時間為100毫秒。要求性能達到10000 QPS,我們需要在nginx與upstream伺服器之間建立大概1000條HTTP請求。(1000/0.1s=10000)

最優情況:

假設請求非常的均勻平穩,每一個請求都是100ms,請求結束會被馬上放入連接池並置為idle(空閑)狀態。

我們以0.1s為單位:

1. 我們現在keepalive的值設置為10,每0.1s鍾有1000個連接。

2. 第0.1s的時候,我們一共有1000個請求收到並釋放。

3. 第0.2s的時候,我們又來了1000個請求,在0.2s結束的時候釋放。

請求和應答都比較均勻,0.1s釋放的連接正好夠用,不需要建立新連接,且連接池中沒有idle狀態的連接。

第一種情況:

應答非常平穩,但是請求不平穩 的時候

1.第0.3s的時候,我們只有500個請求收到,有500個請求因為網路延遲等原因沒有進來。這個時候,Nginx檢測到連接池中有500個idle狀態的連接,就直接關閉了(500-10)個連接。

2.第0.4s的時候,我們收到了1500個請求,但是現在池裡面只有(500+10)個連接,所以Nginx不得不重新建立了(1500-510)個連接。如果在第4步的時候,沒有關閉那490個連接的話,只需要重新建立500個連接。

第二種情況:

請求非常平穩,但是應答不平穩 的時候

1. 第0.3s的時候,我們一共有1500個請求收到。但是池裡面只有1000個連接,這個時候,Nginx又創建了500個連接,一共1500個連接。

2.第0.3s的時候,第0.3s的連接全部被釋放,我們收到了500個請求。 Nginx檢測到池裡面有1000個idle狀態的連接,所以不得不釋放了(1000-10)個連接。造成連接數量反復震盪的一個推手,就是這個keepalive 這個最大空閑連接數。上面的兩種情況說的都是 keepalive設置的不合理導致Nginx有多次釋放與創建連接的過程,造成資源浪費。

keepalive 這個參數設置一定要小心,尤其是對於 QPS 要求比較高或者網路環境不穩定的場景,一般根據 QPS 值和 平均響應時間能大致推算出需要的長連接數量。然後將keepalive設置為長連接數量的10%到30%。

location配置

HTTP 協議中對長連接的支持是從 1.1 版本之後才有的,因此最好通過proxy_http_version 指令設置為 1.1。HTTP1.0不支持keepalive特性,當沒有使用HTTP1.1的時候,後端服務會返回101錯誤,然後斷開連接。而「Connection」 header 可以選擇被清理,這樣即便是 Client 和 Nginx 之間是短連接,Nginx 和 upstream 之間也是可以開啟長連接的。

另外一種高級方式

http裡面的map的作用是:讓轉發到代理伺服器的 "Connection" 頭欄位的值,取決於客戶端請求頭的"Upgrade" 欄位值。

如果$http_upgrade沒有匹配,那 "Connection" 頭欄位的值會是upgrade。

如果$http_upgrade為空字元串的話,那 "Connection" 頭欄位的值會是 close。

【補充】

NGINX支持WebSocket。對於NGINX將升級請求從客戶端發送到後台伺服器,必須明確設置Upgrade和Connection標題。這也算是上面情況所非常常用的場景。HTTP的Upgrade協議頭機制用於將連接從HTTP連接升級到WebSocket連接,Upgrade機制使用了Upgrade協議頭和Connection協議頭。為了讓Nginx可以將來自客戶端的Upgrade請求發送到後端伺服器,Upgrade和Connection的頭信息必須被顯式的設置。

【注意】

在nginx的配置文件中,如果當前模塊中沒有proxy_set_header的設置,則會從上級別繼承配置。繼承順序為:http, server, location。如果在下一層使用proxy_set_header修改了header的值,則所有的header值都可能會發生變化,之前繼承的所有配置將會被丟棄。所以,盡量在同一個地方進行proxy_set_header,否則可能會有別的問題。

❸ 買了一台伺服器,想請教下高人要怎麼配置伺服器的軟體環境和組件!

1、比如web伺服器、郵件伺服器、資料庫伺服器、ftp伺服器、虛擬主機管理系統,能夠全部安裝在一台伺服器上嗎?還是要多台伺服器?
/主要看負載量,如果客戶端不多,負載低,都做到一台伺服器上是沒有問題的。如果負載高,建議分別架設,做成伺服器集群。
2、需要安裝哪些伺服器軟體環境和組件?必須用正版嗎?
你需要做什麼應用,就安裝相應的應用軟體的伺服器端。不一定用正版
3、如果有買了硬體防火牆,軟體防火牆還需要嗎?
當然有需要。建議還要安裝殺毒軟體,防病毒。
4、想把伺服器拿來分割成虛擬主機出售,需要怎麼做,要注意什麼?
在web運行容器上設置
5、有5個公網ip,千兆出口帶寬,夠不夠用呢?
夠用了
6、asp和php能安裝在一台伺服器上嗎?
可以,用windows
server2003,iis6.0,裝上php的插件就可以了
天互數據
為您解答,
希望能幫到你

❹ 伺服器的基本配置

企業往往在購買伺服器時,面對一堆伺服器配置參數無所適從,用戶如何根據廠商提供的數據選擇到合適的伺服器呢?下面為大家列舉出常見的配置數據:

1、雙路等於雙核嗎

無論伺服器的單路、雙路、四路乃至八路,其中的「路」都是指伺服器物理CPU的數量,也就是伺服器主板上CPU插槽的數量。

雙核處理器,是在一顆物理CPU內部封裝了兩個CPU核心,這樣的好處在於能夠讓用戶在成本增加不多的前提下,擁有更強勁的性能。而且能夠比較顯著的降低性能功耗比,這對企業用戶節約使用成本也有積極的意義。

2、至強與奔騰的區別

(1)英特爾奔騰4處理器開始,便將奔騰4處理器歸為個人處理器,用戶不能以2顆奔騰4處理器來構架2路伺服器系統,而開發出運算效能更高的至強處理器。至強處理器目前分為至強DP和至強MP。

(2)就是二級緩存不同。至強的二級緩存是1MB~16MB,P4的二級緩存是512KB~1MB,而二級緩存的容量也是決定伺服器處理效能的重要因素。至強系列CPU多為604介面,而P4的CPU,多為478針或是775架構。

3、伺服器的幾種類型

按照外形結構劃分,可分為塔式伺服器、機架式伺服器、刀片式伺服器三種類型。

(1)塔式伺服器

一般的塔式伺服器機箱和我們常用的PC機箱差不多,而大型的塔式機箱就要粗大很多,總的來說外形尺寸沒有固定標准。塔式伺服器的功能、性能基本上能滿足大部分企業用戶的要求,其成本通常也比較低,因此擁有非常廣泛的應用支持。

(2)機架式伺服器

機架式伺服器是由於滿足企業的密集部署,形成的以19英寸機架作為標准寬度的伺服器類型,高度則從1U到數U。將伺服器放置到機架上,並不僅僅有利於日常的維護及管理,也可能避免意想不到的故障。放置伺服器不佔用過多空間,連接線等也能夠整齊地收放到機架里,電源線和LAN線等全都能在機櫃中布好線,可以減少堆積在地面上的連接線,從而防止腳踢掉電線等事故的發生。

(3)刀片式伺服器

刀片伺服器是一種高可用高密度的低成本伺服器平台,是專門為特殊應用行業和高密度計算機環境設計的,其中每一塊「刀片」實際上就是一塊系統母板,類似於一個個獨立的伺服器。在這種模式下,每一個母板運行自己的系統,服務於指定的不同用戶群,相互之間沒有關聯。不過可以使用系統軟體將這些母板集合成一個伺服器集群。在集群模式下,所有的母板可以連接起來提供高速的網路環境,可以共享資源,為相同的用戶群服務。

4、「U」是什麼

「U」在伺服器領域中特指機架式伺服器厚度。

之所以要規定伺服器的尺寸,是為了使伺服器保持適當的尺寸以便放在鐵質或鋁質機架上。機架上有固定伺服器的螺孔,將它與伺服器的螺孔對好,用螺絲加以固定。

❺ 伺服器如何配置 需要怎麼做

1、首先應該配置伺服器的外部介面。你應該已經知道如何做到這一點,並且可能已經完成了。如果你不這樣做,那麼現在就這樣做。

2、現在我們調出內部介面。根據我們選擇的數字,伺服器的內部介面是192.168.40.254。所以我們必須配置該介面。

3、設置路線。 我們現在可以與當地網路上的機器通信,但我們無法訪問其他內部網路。這需要更多的代碼行。

4、任何發往192.168.0.0網路的流量都應該輸出eth1,並且它應該交給思科。我們的本地網路的流量仍然可以達到應有的位置,因為路由表按網路掩碼的大小排序。如果我們在我們的網路中有其他內部網路,我們將為每個網路提供如上所述的線路。

5、現在我們可以訪問我們可能需要的每台機器,我們需要編寫允許或拒絕通過VPN伺服器訪問的防火牆過濾規則。

6、對於家庭用戶來說,一切都可以在這里工作。但是對於遠程辦公室,我們需要做一些路由。首先,我們需要告訴主路由器或思科,遠程辦公室是VPN伺服器的後面。因此,請指定Cisco上的路由,告知它將發往遠程辦公室的流量發送到VPN伺服器。現在,我們必須告訴VPN伺服器如何處理發往遠程辦公室的流量。

7、為此,我們在伺服器上運行 route命令。唯一的問題是為了路線命令工作,鏈接必須是up,如果它關閉,路由將丟失。解決方案是在客戶端連接時添加路由,或者更簡單地,經常運行路由命令,因為運行它不是必要的問題。

❻ 配置伺服器的方法步驟

客戶端使用連接到與Internet相連的伺服器。伺服器應答驗證客戶端身份,並在客戶端和內部網路之間傳送數據。與撥號網路相比,是通過公用網路在客戶端和伺服器之間建立的一種邏輯連接。要進一步保證數據的安全性,必須對網路上傳輸的數據進行加密處理。下面就讓我給大家說說怎麼配置伺服器吧。

配置伺服器的方法

點擊開始菜單,選擇所有程序--管理工具---選擇<路由和遠程訪問>。如圖:

❼ 伺服器要什麼配置

  1. 好的伺服器是沒有配置上線的,需要根據自己需要,業務來,但是配置過低,穩定性等方面肯定不好。

  2. 一台效勞器,最重要的 CPU,內存,硬碟,顯卡根本上可有可無(制圖的除外)。

    CPU 的選擇,最好是專業的效勞器CPU,比方 INTEL 的 至強 系列,AMD 的 皓龍 系列。

    內存 的選擇,效勞器 的內存 都是 帶ECC的,內存奇偶校驗,頻率比不上家用機,但是,數據不易出錯和梗塞,當 大量 數據交流時,效果最為明顯。

    硬碟 的選擇,同樣,希捷和西部數據都有專業的效勞器硬碟。

    其他的,包括 主板 電源 致使 機箱 都不是普通的東西。全是 當當 的貨。當然,價錢也不菲。

3.不清楚自己的需求可以問伺服器供應商說出自己的業務,多問幾家。

❽ 伺服器配置選擇需要注意哪些方面

伺服器配置選擇需要注意的有:

1、可擴展性

伺服器必須具有一定的「可擴展性」,這是因為企業網路不可能長久不變,特別是在當今信息時代。如果伺服器沒有一定的可擴展性,當用戶一增多就不能勝任的話,一台價值幾萬,甚至幾十萬的伺服器在短時間內就要遭到淘汰,這是任何企業都無法承受的。為了保持可擴展性,通常需要在伺服器上具備一定的可擴展空間和冗餘件(如磁碟陣列架位、PCI和內存條插槽位等)。

可擴展性具體體現在硬碟是否可擴充,CPU是否可升級或擴展,系統是否支持WindowsNT、Linux或UNIX等多種可選主流操作系統等方面,只有這樣才能保持前期投資為後期充分利用。

2、易使用性

伺服器的功能相對於PC機來說復雜許多,不僅指其硬體配置,更多的是指其軟體系統配置。伺服器要實現如此多的功能,沒有全面的軟體支持是無法想像的。但是軟體系統一多,又可能造成伺服器的使用性能下降,管理人員無法有效操縱。所以許多伺服器廠商在進行伺服器的設計時,除了在伺服器的可用性、穩定性等方面要充分考慮外,還必須在伺服器的易使用性方面下足功夫。

伺服器的易使用性主要體現在伺服器是不是容易操作,用戶導航系統是不是完善,機箱設計是不是人性化,有沒有關鍵恢復功能,是否有操作系統備份,以及有沒有足夠的培訓支持等方面。

3、可用性

對於一台伺服器而言,一個非常重要的方面就是它的「可用性」,即所選伺服器能滿足長期穩定工作的要求,不能經常出問題。其實就等同於Sun所提出的可靠性(Reliability)。

因為伺服器所面對的是整個網路的用戶,而不是單個用戶,在大中型企業中,通常要求伺服器是永不中斷的。在一些特殊應用領域,即使沒有用戶使用,有些伺服器也得不間斷地工作,因為它必須持續地為用戶提供連接服務,而不管是在上班,還是下班,也不管是工作日,還是休息、節假日。這就是要求伺服器必須具備極高的穩定性的根本原因。

4、易管理性

在伺服器的主要特性中,還有一個重要特性,那就是伺服器的「易管理性」。伺服器雖然在穩定性方面有足夠保障,但也應有必要的避免出錯的措施,以及時發現問題,而且出了故障也能及時得到維護。這不僅可減少伺服器出錯的機會,同時還可大大提高伺服器維護的效率。其實也就是Sun提出的可服務性(Serviceability)。

伺服器的易管理性還體現在伺服器有沒有智能管理系統,有沒有自動報警功能,是不是有獨立與系統的管理系統,有沒有液晶監視器等方面。只有這樣,管理員才能輕松管理,高效工作。

(8)長連接下伺服器端需要配置什麼擴展閱讀:

伺服器維護保養:

1、注重機房環境的建設

機房環境對伺服器的正常運轉有著重要的影響作用。因此,伺服器維護和保養的首要環節就是做好機房環境建設。機房要保證充足的空間,用以安裝和配置伺服器的相關設備,機房的隔斷,地板等要組好防靜電等細節處理。機房的防火工作也很關鍵,要做好牆面和電纜等的防火處理。一旦遇到火情等,如何保障設備的安全,如何保障人員的有序撤離等都是機房建設中需要考慮的因素。機房的溫度和濕度也應當操持在一定的范圍,溫度和濕度對於電子產品的正常工作有著非常大的影響作用。

2、做好硬體維護工作

伺服器的硬體組成較為復雜,對於伺服器硬體的維護應由專業人員進行。在維護和保養存儲設備時,我們首先應當對其容量進行測試,看是否需要進行擴容等操作。存儲容量一定要能滿足任務的需求,並留有一定的冗餘量。在拆卸和更新伺服器設備時,務必讓設備處於斷電狀態並進行接地處理。即便是更換最簡單的部件,這些環節也不能省略。對於一些不熟悉的部件,要反復仔細的閱讀說明書和參照文件,在沒有十足把握的前提下切忌盲目拆解。要定期對伺服器進行除塵處理。

3、維護好伺服器軟體

軟體是伺服器的重要組成部分,伺服器的穩定高效運行離不開相應的軟體。我們要定期對伺服器的軟體系統進行巡檢,及時發現漏洞,及時安裝官方給定的補丁程序。在擴展伺服器資料庫時,在條件允許的情況下,最好對原有數據進行備份,以免造成不必要的損失。

4、做好電力控制

沒有穩定的電力保證,伺服器就沒有辦法正常工作。電子控制是一個非常關鍵,但又非常容易被忽視的問題。在機房建設之初,我們就應當充分考慮到伺服器的電力保障。要為機房設計和配置一套穩定,可靠的電力供應系統。這套系統還要有處置和應對突發事件的能力,例如,不可預知的停電、雷電等。

5、密碼管理

伺服器的密碼管理是伺服器防禦能力的最關鍵組成部分。密碼的管理和更換應當形成一套長效機制。我們要定期對伺服器的密碼進行更換,密碼應有專人管理。選用的密碼要有一定的專業性,一定的復雜度,最好是將數字和字母等結合起來,大小寫也要融合進去。在日常的檢查中,我們要做好登統計,關閉一些不太使用的埠。

❾ 伺服器端 長連接 客戶端要使用什麼連接

我們有時候有這種需求,即我們的android客戶端要始終保持與服務端的連接,當服務端有任務或消息發送到android客戶端的時候就發送,沒有任務或消息的時候不發送但要保持這個連接,一旦有任務則開發發送,而我們的android客戶端則要保持一個時刻接收任務或消息的狀態。。。這個時候我們通過socket來實現這種需求【當然你也可以採用http輪詢的方式來不斷的從客戶端個請求服務端,這樣做有一定的弊端】
實現原理:
1:android客戶端通過service在後台通過servreScoket不斷的accept,一旦有相應的socket到達,則啟動一個線程去處理
2::在線程中處理完返回給我們android客戶端的消息或任務之後,要將這種結果表現在ui上,這個步驟方法就比較多了,例如你可以發一個廣播來通知ui,或者你可以通過一個static的handler來處理

❿ 如何實現android和伺服器長連接

提出問題:這種功能必須涉及client(客戶端)和server(伺服器),所以到底client如何和server實現實時連接通訊?


分析問題:這種功能實際上就是數據同步,同時要考慮手機本身、電量、網路流量等等限制因素,所以通常在移動端上有一下兩個解決方案:
1.一種是定時去server查詢數據,通常是使用HTTP協議來訪問web伺服器,稱Polling(輪詢);
2.還有一種是移動端和伺服器建立長連接,使用XMPP長連接,稱Push(推送)。(按照本人理解:客戶端的實現時:

while(true) {

request(timeout);

request(timeout);

}

客戶端發出一個「長」請求,如果伺服器發送消息或者時間out了,客戶端就斷開這個請求,再建立一個長請求



從耗費的電量、流量和數據延遲性各方面來說,Push有明顯的優勢。但是使用Push的缺點是:
對於客戶端:實現和維護相對成本高,在移動無線網路下維護長連接,相對有一些技術上的開發難度。
對於伺服器:如何實現多核並發,cpu作業調度,數量龐大的長連接並發維護等技術,仍存在開發難點。

在講述Push方案的原理前,我們先了解一下移動無線網路的特點。
移動無線網路的特點:
因為 IP v4 的 IP 量有限,運營商分配給手機終端的 IP 是運營商內網的 IP,手機要連接 Internet,就需要通過運營商的網關做一個網路地址轉換(Network Address Translation,NAT)。簡單的說運營商的網關需要維護一個外網 IP、埠到內網 IP、埠的對應關系,以確保內網的手機可以跟 Internet 的伺服器通訊

原理圖如下:




GGSN(Gateway GPRS Support Node 網關GPRS支持結點)模塊就實現了NAT功能。
因為大部分移動無線網路運營商都是為了減少網關的NAT映射表的負荷,所以如果發現鏈路中有一段時間沒有數據通訊時,會刪除其對應表,造成鏈路中斷。(關於NAT的作用及其原理可以查看我的另一篇博文:關於使用UDP(TCP)跨區域網,NAT穿透的心得)

Push在Android平台上長連接的實現:
既然我們知道我們移動端要和Internet進行通信,必須通過運營商的網關,所以,為了不讓NAT映射表失效,我們需要定時向Internet發送數據,因為只是為了不然NAT映射表失效,所以只需發送長度為0的數據即可。

這時候就要用到定時器,在android系統上,定時器通常有一下兩種:
1.java.util.Timer
2.android.app.AlarmManager

分析:
Timer:可以按照計劃或者時間周期來執行相關的任務。但是Timer需要用WakeLock來讓CPU保持喚醒狀態,才能保證任務的執行,這樣子會消耗大量流量;當CPU處於休眠的時候,就不能喚醒執行任務,所以應用於移動端明顯是不合適。

AlarmManager:AlarmManager類是屬於android系統封裝好來管理RTC模塊的管理類。這里就涉及到RTC模塊,要更好地了解兩者的區別,就要明白兩者真正的區別。
RTC(Real- Time Clock)實時鬧鍾在一個嵌入式系統中,通常採用RTC 來提供可靠的系統時間,包括時分秒和年月日等;而且要求在系統處於關機狀態下它也能夠正常工作(通常採用後備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz 晶體和電阻電容等。(如果對這方面感興趣,可以自己查閱相關資料,這里就說個大概)
好了,回來正題。所以,AlarmManager又稱全局定時鬧鍾。這意味著,當我用使用AlarmManager來定時執行任務,CPU可以正常地休眠,只有在執行任務是,才喚醒CPU,這個過程是很短時間的。
下面簡單來說明其使用:
1.類似於Timer功能:
//獲得鬧鍾管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//設置任務執行計劃
am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender);//從firstTime才開始執行,每隔5秒再執行

2.實現全局定時功能:
//獲得鬧鍾管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//設置任務執行計劃
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender);//從firstTime才開始執行,每隔5秒再執行

總結:在android客戶端使用Push推送時,應該使用AlarmManager來實現心跳功能,使其真正實現長連接。


在伺服器端的實現:
在伺服器端,可以使用很多語言來實現,如C/C++,java,Erlang等等,如我們國內比較好的極光推送(C開發),openfire(java開發)等等。
最近我看了極光推送的介紹和原理,下面我就說說他們是遇到什麼難題,然後使用什麼技術或者方案來解決呢。

當有大量的手機終端需要與伺服器維持長連接時,對伺服器的設計會是一個很大的挑戰。


假設一台伺服器維護10萬個長連接,當有1000萬用戶量時,需要有多達100台的伺服器來維護這些用戶的長連接,這里還不算用於做備份的伺服器,這將會是一個巨大的成本問題。那就需要我們盡可能提高單台伺服器接入用戶的量,也就是業界已經討論很久了的 C10K 問題。
C2000K


針對這個問題,他們專門成立了一個項目,命名為C2000K,顧名思義,他們的目標是單機維持200萬個長連接。最終他們採用了多消息循環、非同步非阻塞的模型,在一台雙核、24G內存的伺服器上,實現峰值維持超過300萬個長連接。
最後總結:
因為我最近用java在做一個PC、伺服器、android的即時通訊系統(說白了就是模仿QQ,後面希望有不同的功能)。我的原則是用別人的原理,自己來實現,這樣才更好深入了解一些框架。所以,估計難點是在通訊開發和伺服器上的開發,必須深刻了解多消息循環、非同步非阻塞的模型。之後我會發表關於這方面的實現。
在現在的android平台上,已經不是android單機的世界了(我不是說做單機游戲沒有前途)。現在都是依靠發展蓬勃的互聯網來支撐整個IT體系,所以,要成為一個android應用開發高手,必須朝著android、硬體、雲服務這一體系來發展。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:600
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:892
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:585
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:769
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:689
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1016
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:261
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:119
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:809
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:718