真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java高并發(fā)解決方案-創(chuàng)新互聯(lián)

1.增加硬件配置(單機(jī))
cpu從32位提升到64位
 內(nèi)存從64GB提升至256GB,比如緩存服務(wù)器
 磁盤從HDD(Hard Disk Drive)提升為SSD(Solid State Drive,固態(tài)硬盤),針對有大量讀寫的應(yīng)用
 磁盤擴(kuò)容,1TB擴(kuò)展到2TB,比如文件系統(tǒng)
 千兆網(wǎng)卡提升至萬兆網(wǎng)卡

不管怎么提升硬件性能,硬件性能的提升也不可能永無止境,最終還是要靠分布式解決

在月湖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),月湖網(wǎng)站建設(shè)費(fèi)用合理。2.緩存 2.1 http緩存
  @Autowired
    HttpServletRequest request;
    @Autowired
    HttpServletResponse response;
    
        //DateFormat format=new SimpleDateFormat(" yyyy HH:mm:ss 'GMT'", Locale.CHINA);
        //當(dāng)前時(shí)間
        //long now=System.currentTimeMillis()*1000*1000;

        response.addHeader("Date",new Date().toString());
        //過期時(shí)間http1.0支持
//        response.addHeader("Expires", format.format(new Date(now+20*1000)));

        //文檔生存時(shí)間http1.1支持
        response.addHeader("Cache-Control","max-age=20");
2.2 nginx緩存

在/usr/loca/nginx/conf/nginx.conf中加入一下代碼

location  /static {
      root  /opt/static;
      expires 1d; #1天
}
2.3 CDN緩存 2.4 應(yīng)用緩存

內(nèi)存緩存
速度快,重啟后緩存丟失
磁盤緩存
速度稍慢,重啟后緩存不丟失
代碼組件:Guava,Ehcache
服務(wù)器:Redis,MemCache

2.5 Mybatis緩存 2.6 多級緩存

http緩存->CDN->nginx->redis->DB

2.7 緩存的使用場景

1.經(jīng)常要讀取的數(shù)據(jù)
2.頻繁訪問的數(shù)據(jù)
3.熱點(diǎn)數(shù)據(jù)緩存
4.IO瓶頸數(shù)據(jù)
5.計(jì)算昂貴的數(shù)據(jù)
6.無需實(shí)時(shí)更新的數(shù)據(jù)
緩存的目的是減少對后端服務(wù)的訪問,降低后端服務(wù)的壓力

3.集群

可以服務(wù)器(tomcat)集群【用nginx轉(zhuǎn)發(fā)】、mysql集群降低并發(fā),可以負(fù)載均衡的就可以降低并發(fā)

4.拆分 4.1 數(shù)據(jù)庫垂直拆分

把不同業(yè)務(wù)維度的表分到不同的數(shù)據(jù)庫

4.2 數(shù)據(jù)庫水平拆分

把表的某些列分到一個(gè)數(shù)據(jù)庫,另一些列分到其他的數(shù)據(jù)庫

還可以用mycat讀寫分離

5.頁面靜態(tài)化

對于一些訪問量大的,更新頻率較低的數(shù)據(jù),可直接定時(shí)生成靜態(tài)html頁面,供前段訪問
常用的 靜態(tài)化技術(shù):freemaker,velocity
定時(shí)任務(wù):每個(gè)5分鐘生成一次首頁的靜態(tài)頁面
頁面靜態(tài)化首先可以大大提升訪問速度,不需要去訪問數(shù)據(jù)庫或者緩存來獲取數(shù)據(jù),瀏覽器直接加載html頁即可
頁面靜態(tài)化可以提升網(wǎng)站穩(wěn)定性,如果程序或者數(shù)據(jù)庫出了問題,靜態(tài)頁面仍然可以正常訪問

RestTemplate restTemplate=new RestTemplate();
        String str=restTemplate.getForObject("url",String.class);

url為你需要生成靜態(tài)頁面的地址,把str作為html存儲到nginx可以訪問的位置,頁面上其他的局部更新可以用ajax

6.動靜分離
采用nginx實(shí)現(xiàn)動靜分離,nginx負(fù)責(zé)代理靜態(tài)資源,tomcat負(fù)責(zé)處理動態(tài)資源,nginx可為tomcat分擔(dān)壓力

 redis并發(fā)5w左右,nginx并發(fā)5w左右,tomcat并發(fā)1000左右,mysql并發(fā)1000左右
7.消息隊(duì)列

采用隊(duì)列是解決高并發(fā)大流量的利器
隊(duì)列的作用是:異步處理,流量削峰,系統(tǒng)解耦
異步處理:比如注冊成功了,發(fā)優(yōu)惠券、發(fā)短信、發(fā)紅吧等一些其他的操作可以入隊(duì)列異步處理
流量削峰:比如下單、秒殺等,用入隊(duì)的方式將流量削平,變成平緩請求進(jìn)行處理,避免系統(tǒng)崩潰
系統(tǒng)解耦:比如支付成功了,發(fā)消息通知物流系統(tǒng),而無需直接調(diào)用這些系統(tǒng)

隊(duì)列的應(yīng)用場景
不是所有的處理都必須實(shí)時(shí)處理
不是所有的請求都必須實(shí)時(shí)告訴用戶結(jié)果
不是所有的請求都必須100%一次性處理成功
保證最終一致性,不需要強(qiáng)一致性

常見的消息隊(duì)列:ActiveMQ,RabbitMQ,RocketMQ,Kafka

8.池化

用一些池化技術(shù),減少資源消耗,提升系統(tǒng)性能

8.1 對象池

通過復(fù)用對象,可以采用commons-pool2實(shí)現(xiàn),一般在開發(fā)框架中使用1

8.2 數(shù)據(jù)庫連接池

Druid,DBCP,C3P0

8.3 redis連接池

JedisPool

8.4 HttpClient連接池

核心實(shí)現(xiàn)類:PoolingClientConnectionManager

8.5 線程池

java提供java.util.concurrent可以實(shí)現(xiàn)線程池

9. 優(yōu)化 9.1 JVM參數(shù)調(diào)優(yōu) 9.2 Tomcat參數(shù)調(diào)優(yōu)(本質(zhì)上調(diào)優(yōu)JVM參數(shù)) 10.Java程序優(yōu)化

不要重復(fù)創(chuàng)建太多對象
流、文件、連接 一定要記得在finally中關(guān)閉
少用重量級同步鎖synchronized,采用lock(讀不加鎖,寫加鎖)
不要再循環(huán)中使用try catch
多定義局部變量,少定義成員變量

11.數(shù)據(jù)庫優(yōu)化 11.1 數(shù)據(jù)庫服務(wù)器優(yōu)化

主要有DBA修改配置文件參數(shù)

11.2 數(shù)據(jù)庫架構(gòu)優(yōu)化

將數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器分離
讀寫分離:主從架構(gòu),寫數(shù)據(jù)使用主庫,讀數(shù)據(jù)使用從庫,分擔(dān)讀寫壓力
分庫分表:擴(kuò)容數(shù)據(jù)庫,解決數(shù)據(jù)容量上限問題

11.3 數(shù)據(jù)庫索引優(yōu)化

建立合適的索引
建立索引的字段盡量的小,最好是數(shù)值
盡量在唯一性高的字段上創(chuàng)建索引,主見、序號等

BTREE索引(MySQL默認(rèn)):要求數(shù)據(jù)盡量不要重復(fù),且最好是數(shù)值,可以區(qū)域查詢
HSAH索引:要求數(shù)據(jù)盡量不要重復(fù),且最好是字符串,不可以區(qū)域查詢
位圖索引:要求數(shù)據(jù)盡量重復(fù),效率很好,比如字段是性別:男、女
聚簇索引:索引的位置順序和數(shù)據(jù)的位置順序一直,只能存放數(shù)據(jù),因此只存放少量
非聚簇索引:非聚簇索引利用聚簇索引進(jìn)行書簽查找,不存放數(shù)據(jù),只存放索引鍵值,因此存放的更多

11.4 SQL優(yōu)化

避免索引失效
建立合適的索引
不要使用子查詢

11.5 采用數(shù)據(jù)搜索引擎

solr, elasticsearch

12.Nginx優(yōu)化 12.1 優(yōu)化緩存(見前) 12.2 把圖片從nginx中獲取,減小tomcat后端壓力 12.3 調(diào)整配置文件參數(shù)
worker processes 16;
gzip on;#開啟gzip壓縮輸出
events{
	worker_connections 65535;#極限值65535
	multi_accept on;#開啟多路連接
	use epoll;#使用epoll模型
}
13.Linux優(yōu)化

一般建議不要動,專業(yè)人員職責(zé)
優(yōu)化linux內(nèi)核參數(shù)
修改/etc/sysctl.conf

14.網(wǎng)絡(luò)優(yōu)化

一般建議不要動,專業(yè)人員職責(zé)
機(jī)房、帶寬、路由器等方面優(yōu)化
網(wǎng)絡(luò)架構(gòu)更合理

15. 前端優(yōu)化 15.1 js優(yōu)化

壓縮變?。簤嚎s工具
多個(gè)js合并成一個(gè)js
用xxx.min.js代替xxx.js

15.2 css優(yōu)化

壓縮變小
多個(gè)css合并成一個(gè)css

15.3 html頁面優(yōu)化

不要加載太多的js和css
js和css加載放在頁面的尾部,從用戶體驗(yàn)角度來看的
頁面上減少到服務(wù)器的請求數(shù):比如圖片可以放在不同的圖片服務(wù)器中(瀏覽器統(tǒng)一域名下大請求上限一般是6個(gè)),或nginx轉(zhuǎn)發(fā)

16.壓測

系統(tǒng)上線前需要對系統(tǒng)的各個(gè)環(huán)節(jié)進(jìn)行壓力測試,發(fā)現(xiàn)系統(tǒng)的瓶頸,然后調(diào)優(yōu),再進(jìn)行壓力測試,還需要考慮到其他的風(fēng)險(xiǎn)因素,比如網(wǎng)絡(luò)不穩(wěn)定、機(jī)房故障等
壓力測試工具:JMeter , LoadRunner

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享題目:Java高并發(fā)解決方案-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://weahome.cn/article/jdcsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部