五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

游戲服務器該如何選擇?要注意可擴展性

發(fā)布日期:2020-08-18 11:18 | 文章來源:YINGSOO

游戲服務器該如何選擇?網絡游戲迅猛發(fā)展,各類游戲也是越來越多。游戲行業(yè)競爭也是越來越大,一個網絡游戲要想長期運行下去,用戶體驗是非常重要的。而用戶體驗最能表現就是流暢性和穩(wěn)定性。游戲的流暢和穩(wěn)定處決服務器和架設。那么游戲運營商又如何在眾多的服務器提供商找到適合自己的服務器,在租用游戲服務器時需要注意哪些?在架設游戲服務器時又需要注意哪些問呢?

游戲服務器該如何選擇

架設游戲服務器如何選擇合適的服務器配置?

①機房所在的地理位置

選擇哪里的服務器首選需要考慮服務器延遲問題。延遲太高會影響服務器速度,進而影響玩家的體驗效果。一般機房距離用戶越近,延遲越低,訪問速度就越快。對于國內玩家來說,最好的選擇就是國內服務器。如果沒有備案的話可以退而求其次,香港和韓國也是不錯的選擇,平均延遲可以在70ms以內。

②機房線路

選擇租用服務器時,機房線路的好壞可以直接影響服務器速度和穩(wěn)定性。因為國內一直有南電信、北聯通的格局,所以在選擇服務器的時候首先要考慮哪些地區(qū)的用戶來訪問。隨著互聯網的快速發(fā)展,移動端用戶的日益增多,機房移動線路也逐步登上舞臺,為移動端用戶提供高效穩(wěn)定的互聯網服務。

③服務器配置

選擇多大的服務器配置,需要看游.戲站規(guī)模大小和訪問量。配置越高,服務器性能越好,價.格也就越高。帶寬是影響用戶體驗的最重要的一個因素,帶寬的價格也隨著大小、獨享和共享、地區(qū)而不同。可能很多用戶不明白,帶寬價.格怎么還會因地區(qū)影響而不同,其實這主要是全球互聯網發(fā)展程度不同而造成的,一般來說,美國地區(qū)帶寬價格要比香港、韓國和國內便宜很多,這也是很多游.戲公司首選美國服務器作為游.戲服務器的原因,但是香港服務器和韓國服務器也有距離國內游.戲玩家距離近的優(yōu)勢。

④服務器防御性能

熱門的網絡游戲,很容易受到黑客或者是競爭對手的攻擊,現在市場上最多的就是ddos、cc等流量型攻擊,一般用戶會選擇租用高防服務器來抵御流量攻擊時。所以在租用高防服務器的時候需要考核服務器防御能力。租用高防服務器的防御多少,要視攻擊情況而定。

例如:棋牌游戲服務器的架構設計需要注意哪些點

一、棋牌類服務器的特點

1、棋牌類不分區(qū)不分服

一般來說,棋牌游戲都是不分區(qū)不分服的。所以棋牌類服務器要滿足隨著用戶量的增加而擴展的需要。

2、房間模式

即在同一局游戲中就是在同一個房間中,同一個房間中的人可以接收到其他人的消息。

3、每個房間的操作必須是順序性

這個特性類似與一般游戲的回合制,每個玩家的操作都是有順序性的。

二、需要解決的技術點

1、數據共享

因為棋牌類游戲不分區(qū)不分服,我們在設計服務器的時候,是按世界服的思想去設計,即服務器是一個n多臺物理機的集群。當用戶登陸服務器,創(chuàng)建房間時,可能根據負載均衡算法,它可以在任何一臺服務器上面。所以,不管用戶登陸到哪一臺服務器上面了,都可以獲得自己的數據。我們可以使用redis來做數據共享。

2、如何進入房間

在同一局游戲中,我們要求所有人都在同一個房間中,我們可以規(guī)定在同一個房間中的用戶,必須登陸到同一臺物理服務器上面。在創(chuàng)建房間完成之后,其他人根據房間號查找房間的時候,可以根據房間號,獲取這個房間所在的服務器ip和端口,判斷一個當前用戶登陸的服務器ip與房間所在的服務器ip是否相同,如果相同,就不做切換,如果不一樣,客戶端就使用ip和端口,連接到房間所在的服務器上面。(游戲服務器該如何選擇)

3、保證房間操作的順序性

創(chuàng)建房間成功之后,接下來的操作都要保證它的順序性,所以房間需要有一個它自己的消息個隊列。我們可以把每個房間到達服務器的消息封裝為一個任務,把這個任務放到消息隊列中,然后有一個任務執(zhí)行者去按順序執(zhí)行這些任務。

游戲服務器該如何選擇

三、系統架構

1、功能設計

登陸。一般都是需要接第三方登陸,登陸這一塊是http操作,我們統一提供一個web服務,用來做登陸驗證。因為在登陸時,調用第三方的http服務,這個過程可能很慢,如果放在邏輯服務器的話,可能會卡業(yè)務邏輯任務。因為可能不同的玩家業(yè)務請求可能同在一個線程中,如果有任務卡了,那么這個任務以后新來的請求請會卡住,導致消息延遲。

獲取游戲公告,也放在web服務中。公告一般是游戲登陸的時候向服務器獲取一次。把它放在web服務器中,與業(yè)務邏輯分離的好處是,當業(yè)務邏輯服務器維護或更新的時候,不影響用戶的登陸,和獲取公告,這樣用戶體驗會好一些。

創(chuàng)建用戶唯一的id,因為棋牌類游戲服務器是世界服,無分區(qū),所以用戶的id必須是全局唯一的??梢岳胷edis的incr方法,原子的遞增,如果不想被別人根據userid的遞增推算出有多少注冊用戶,遞增的梯度可以隨機,比如每次遞增的值從1到1024中隨機一個。

創(chuàng)建房間,當房間主創(chuàng)建房間時,房間的id需要在任何臺服務器上可以查詢到,所以創(chuàng)建房間成功后,房間id要存儲在共享內存redis中,每個房間id對應一個房間所在的ip地址或服務器id.這樣,當有用戶要進入房間,在查詢房間id時,可能判斷這個房間是否和自己登陸的游戲服務器相同。

查找加入房間。根據房間id查詢房間,查找到房間后,獲取房間所在的ip地址或服務器id,如果發(fā)現和自己所登陸的服務器一樣,直接可以加入房間。如果不一樣,把這個房間所在的ip和端口返回給客戶端,讓客戶端重新與房間所在的服務器建立連接,使用登陸時的token驗證用戶。

游戲腳本調用。在驗證游戲是否合法時,客戶端與服務器都要驗證,驗證的算法是一樣的,所以可以使用腳本來寫,寫一份腳本,在服務器與客戶端中同時使用。可以使用lua。同一個算法使用同一個腳本,這樣在開發(fā)新的同類型棋牌游戲時,只需要替換一下這個腳本就行了,不用再重復開發(fā)。

2、后臺管理系統

這個一般是根據運營需求開發(fā)的,每個公司不一樣。不過有一點,后臺管理系統可能要和游戲服務器通信,這種通信方式最好是采用redis的訂閱/發(fā)布機制。這樣可以把某個消息事件同時發(fā)送到所有的業(yè)務服務器上面。根據用戶所在的服務器進行處理。

3、玩家同屏

玩家同屏是棋牌游戲中的一個重點,對于做過那些大型的arpg,或mmo游戲的程序員來說,這并不是什么難事。因為同屏就是服務器對客戶端的消息進行轉發(fā)。一個房間四個人,一個人出的牌或操作能被其他三個人同時看到。

因為棋牌游戲的同步數據量比較小。一般常見的同步方式有兩種:

1、客戶端主動拉取

客戶端定時主動向服務器請求一個用戶的消息隊列,當一個玩家有操作需要同步到其他玩家時,在服務器端先把這個消息放到這個用戶的消息隊列中。等待客戶端的拉取操作。這種方式的好處是,不需要考慮網絡閃斷或網絡不好的情況,信息都是同步獲取的。缺點是,定時拉取的時間間隔很短,可能不到一秒就會拉取一次。

2、服務器主動推送

當一個用戶出牌的消息需要同步給其他玩家時,服務器會獲得這個玩家與服務器建立的socket連接,然后服務器使用socket主動向客戶端發(fā)送消息。

這種方式要考慮網絡閃斷,消息丟失的問題。因為服務器推送的消息,客戶端有可能會收不到。所以客戶端需要根據心跳來判斷網絡是否有斷開過,如果有斷開,需要重新從服務器拉取整個房間狀態(tài)的消息?;蛘吒鶕掌靼l(fā)送的消息號,如果客戶端發(fā)現接收到的服務器消息號有跳號的,比如應該接收10,卻收到了12,說明中間有消息丟失,需要重新拉取整個房間的狀態(tài)信息。

這種方式的缺點是,開發(fā)復雜,需要考慮一些網絡問題。優(yōu)點是,只有在有消息的時候才會推送,沒有的話不推送,不占用帶寬等系統資源,可以增加用戶同時在線量,也就是增加了服務器的承載量。

游戲服務器該如何選擇

4、數據同步和持久化

1、由于棋牌類的游戲數據少,計算量也小,所以完全可以不使用內存緩存,而直接使用redis共享內存,用戶的所有數據都緩存在redis中。更新也同步更新到redis中,這樣不管一個用戶登陸哪一臺業(yè)務服務器,都能獲得自己的最新數據。(游戲服務器該如何選擇)

2、更新數據庫,由于數據第一緩存是redis,所以活躍的用戶數據都是可以從redis中直接獲得的,而不用查詢數據庫,所以數據庫的更新可以采取異步更新,而不會產會數據的延遲。需要注意的一點是,數據的異步更新必須保證是有順序的。那么這就會產生一個問題,怎么保證用戶的更新不會亂呢?

3、如何保證更新的順序性

因為我們的業(yè)務服務器是多個的,用戶可能連接其中的任何一個,如果說登陸的是服務器A,加入的房間在服務器B上,那么連接就會切換。為了保證數據更新的順序,我們可以做一個數據庫持久化服務,把需要更新數據庫的任務實時發(fā)送到這臺服務器上,由數據庫持久化服務執(zhí)行對數據庫的更新。這樣不管用戶連接的哪臺業(yè)務服務器,它的更新都是有順序保證的。

4、一種快速簡單的方法

由于棋牌類的業(yè)務少,數據更新少,所以查詢可以有redis緩存,減少數據庫查詢的壓力,而更新實行實時更新到數據庫,前期不需要開發(fā)數據庫持久化服務。等用戶積累到一定程序之后,發(fā)現更新數據庫比較慢的時候,再單獨做一個數據庫持久化服務。

四、服務器架構

1、登陸時,客戶端首先向登陸的web服務器請求登陸信息,登陸成功之后,返回登陸的token,為了適應大規(guī)模的web請求和登陸服務的穩(wěn)定,可以使用nginx做負載均衡。

2、登陸成功之后,請求負載均衡服務器,獲取一臺連接的業(yè)務服務器。這個負載均衡服務器可以和登陸web在一個進程中,也可以獨立出來。

3、拿到登陸成功的token和需要連接的業(yè)務服務器的ip和端口之后,再去連接業(yè)務服務器。連接成功之后,要使用token到登陸服務器去驗證,這個用戶是否登陸了。

4、同一個房間的用戶要連接到同一臺物理服務器上面。在上面已經說過了。

5、redis用來做共享緩存。

6、mysql做持久化存儲。

7、數據庫持久化服務器,統一做數據入庫操作。

五、關于網關的問題

1、網關的作用

轉發(fā)消息包

業(yè)務的負載均衡,比如A業(yè)務由服務器a處理,B業(yè)務由服務器b處理,由網關進行轉發(fā)。

維護與客戶端的連接

帶寬的整合,一般的云服務都是按購買的服務器計算帶寬的。通過一臺服務器轉發(fā)消息,可以只購買一個大帶寬就可以了,以節(jié)約成本。

2、棋牌類游戲需要網關嗎?

我認為不太需要,因為棋牌類游戲業(yè)務比較單一,做的最多的就是消息同屏轉發(fā)。最多是再有一些任務或活動,這些由一臺服務器直接處理完全可以搞定。而且開發(fā)網關也是一個復雜的工作,沒必要在這個上面花太多的時間。

游戲服務器需要具備可擴展性

游戲服務器需要具備可擴展性。在打游戲的時候,你是否會出現卡頓的情況呢?這樣的情況對于很多人來說,其實都是會存在的,當我們出現卡頓的時候,自己的心情也會非常的糟糕,特別是在關鍵時刻卡頓了,那這對于我們的影響和我們自己的實力來說,都是有一定的壞處的。所以游戲服務器就非常的重要,而這些服務器也需要具備很大的可擴展性,這樣一來,我們的服務器就可以運行順暢,而人們在玩游戲的時候也可以更好的得心應手,而且如果我們使用的是其他的兼容性較差的服務器,其實在使用的過程當中也會存在更多的問題,所以為什么我們不選擇租用一些游戲的服務器呢?

游戲服務器該如何選擇

當我們選擇租用游戲服務器的時候,我們就要考慮清楚價格的問題,如果我們購買了一整臺主機,那么我們使用的時間或許是比較長的,但是誰又能保證它的質量,就可以長時間的保持下去呢,所以在對比了以后,其實我們選擇一個服務器來進行租用,就是比較好的一種選擇,因為我們租金并不是非常的昂貴,而且相比較購買來說,這是比較劃算的一種方式,那這也就在無形之中為我們帶來了一種比較好的省錢方式,而且相比較我們去購買一整臺主機來說,這也是更好的方法,因為我們購買了主機,以后它的使用時間長了,那么需要運行的內存也就越來越大了,相應的問題也就會出現。

但是如果我們選擇了一些租用的服務器,如果這一個服務器出現了問題,那我們就可以選擇其他的服務器,這是可以相互替換的,所以相比較而言,在價格以及實用性方面,我們都可以更好地選擇租用這一些游戲的服務器。所以游戲服務器該如何選擇,需要具備可擴展性,特別是在這一個快速發(fā)展的商業(yè)世界當中,業(yè)務的需求變化是非常快的,而我們游戲的需求也是變化無窮,因此,很多的獨立服務器供應商都是可以根據相應的業(yè)務進行資源的擴充,當然,我們只需要附加內存,硬盤,或者是寬帶等等,有這一些資源就可以了,整個過程也是比較方便的。

【YINGSOO】提供高防VPS云主機,香港服務器,高防云服務器,游戲服務器,高防服務器,香港站群服務器,高防服務器租用,高防服務器托管等,是一家大型專業(yè)的云服務提供平臺。

免責聲明:本網站所收集的部分公開資料來源于互聯網,轉載的目的在于傳遞更多信息及用于網絡分享,并不代表本站贊同其觀點和對其真實性負責,也不構成任何其他建議,文章內容僅供參考。如果您發(fā)現網站上有侵犯您的知識產權的作品,請與我們取得聯系,我們會及時修改或刪除。

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部