如何提高java服務器併發性能

參考連接:https://blog.csdn.net/yilijun246437/article/details/103044421java

若有侵權請告知刪除nginx

 

給你們分享一下提升java服務器併發性能的經常使用架構策略。spring

一.針對網絡層建議使用keepalive+nginx瀏覽器

一、負載均衡解釋安全

負載均衡 創建在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增長吞吐量、增強網絡數據處理能力、提升網絡的靈活性和可用性。
負載均衡,英文名稱爲Load Balance,其意思就是分攤到多個操做單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工做任務。服務器

二、經常使用的負載均衡種類網絡

(1)、HTTP重定向
HTTP 重定向能夠將 HTTP 請求進行轉移,在 Web 開發中咱們常常會用它來完成自動跳轉,好比用戶登陸成功後跳轉到相應的管理頁面。 這種重定向徹底由HTTP 定義,而且由HTTP 代理和Web 服務器共同實現。很簡單,當HTTP 代理(好比瀏覽器)向Web服務器請求某個URL後,Web 服務器能夠經過HTTP 響應頭信息中的Location 標記來返回一個新的URL,這意味着HTTP代理須要繼續請求這個新的URL ,這便完成了自動跳轉。固然,若是你本身寫了一個 HTTP 代理,也能夠不支持重定向,也就是對於Web 服務器返回的Location 標記視而不見,雖然這可能不符合HTTP 標準,但這徹底取決於你的應用須要。 也正是由於HTTP 重定向具有了請求轉移和自動跳轉的本領,因此除了知足應用程序須要的各類自動跳轉以外,它還能夠用於實現負載均衡,以達到Web 擴展的目的。架構

(2)、DNS負載均衡
DNS負責提供域名解析服務,當咱們訪問某個站點時,實際上首先須要經過該站點域名的DNS服務器來獲取域名指向的IP 地址,在這一過程當中,DNS服務器完成了域名到IP 地址的映射,一樣,這種映射也能夠是一對多的,這時候,DNS 服務器便充當了負載均衡調度器(也稱均衡器),它就像前面提到的重定向轉移策略同樣,將用戶的請求分散到多臺服務器上,可是它的實現機制徹底不一樣。併發

(3)、反向代理負載均衡
反向代理服務器的核心工做即是轉發 HTTP 請求,所以它工做在 HTTP 層面,也就是 TCP 七層結構中的應用層(第七層),因此基於反向代理的負載均衡也稱爲七層負載均衡,實現它並不困難,目前幾乎全部主流的 Web 服務器都熱衷於支持基於反向代理的負載均衡。

(4)、IP負載均衡
事實上,在數據鏈路層(第二層)、網絡層(第三層)以及傳輸層(四層)均可以實現不一樣機制的負載均衡,但有所不一樣的是,這些負載均衡調度器的工做必須由Linux 內核來完成,由於咱們但願網絡數據包在從內核緩衝區進入進程用戶地址空間以前,儘早地被轉發到其餘實際服務器上,沒錯,Linux 內核固然能夠辦獲得,位於內核的Netfilter和IPVS能夠解決問題,而用戶空間的應用程序對此卻一籌莫展。 另外一方面,也正是由於能夠將調度器工做在應用層如下,這些負載均衡系統能夠支持更多的網絡服務協議,好比FTP 、SMTP 、DNS ,以及流媒體和VoIP 等應用。負載均衡

二.針對服務器架構層,目前分佈式服務架構比較流行,像dubbo,springclould等,這裏只介紹dubbo
1. Dubbo是什麼?
Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,若是沒有分佈式的需求,實際上是不須要用的,只有在分佈式的時候,纔有dubbo這樣的分佈式服務框架的需求,而且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊)
2. 其核心部分包含:
(1). 遠程通信: 提供對多種基於長鏈接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。
(2). 集羣容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。
(3). 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器。

3. Dubbo能作什麼?
(1).透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法,只需簡單配置,沒有任何API侵入。
(2).軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點。
(3). 服務自動註冊與發現,再也不須要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,而且可以平滑添加或刪除服務提供者。

Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置便可,Dubbo基於Spring的Schema擴展進行加載。

節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務註冊與發現的註冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。

三.針對消息通信,能夠採用像activemq這類消息中間件,減小併發對性能的損耗
1.ActiveMQ是Apache推出的一款開源的,徹底支持JMS1.1和J2EE1.4規範的JMS Provider實現的消息中間件(Message Oriented Middleware,MOM)

2.ActiveMQ能幹什麼
   最主要的功能是:實現JMS Provider,用來幫助實現高可用、高性能、可伸縮、易用和安全的企業級面向消息服務的系統

3. ActiveMQ的特色   徹底支持JMS1.1和J2EE 1.4規範(持久化、XA消息、事務)   支持多種傳送協議: in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA   可插拔的體系結構,能夠靈活定製,如:消息存儲方式、安全管理等   很容易和Application Server集成使用   多種語言和協議編寫客戶端。如:Java、C、C++、PHP   能夠很容易的和Spring結合使用

相關文章
相關標籤/搜索