很多人買了新電腦后,都是直接上手使用,但是用久了就會變得越來越卡,新買的電腦到手后,記得打開這4個設置,用多久都不會卡頓。
一、定時自動清理垃圾
新買的電腦,定時自動清理垃圾也要設置一下,不然時間久了,垃圾越來越多,電腦就會越來越卡。
右擊桌面,依次點擊【顯示設置】-【存儲】-【存儲感知】-【配置儲存感知】,把運行存儲感知改為【每天】。
勾選【刪除臨時文件】,把下面兩個選項也全部設置為【1天】,這樣電腦就會定時自動清理垃圾。
二、更改文件存儲位置
系統都是有一個默認安裝文件夾的,而這個默認安裝文件夾就是在C盤。如果不更改文件的存儲位置,時間久了,C盤就會爆滿。
所以我們要更改文件的存儲位置,右鍵桌面選擇【顯示設置】,點擊【存儲】,打開【更改新內容的保存位置】,將這些文件夾保存到其他磁盤,達到均衡效果。
三、禁用不常用啟動項
Win10系統開機啟動項太多,會拖慢運行速度,為了讓電腦保持流暢的運行速度,一般我們都會禁用不常用的啟動項。
鼠標右鍵點擊任務欄,打開【任務管理器】,點開【啟動】,把不常用的啟動軟件禁用即可。
新買的電腦到手后,記得打開這4個設置,用多久都不會卡頓,快去試試吧。
我們這里做tomcat集群就需要考慮到session共享問題。
在集群下實現session統一有以下幾種解決方案:
1、請求精確定位:session sticky,例如基于訪問ip的hash策略,即當前用戶的請求都集中定位到一臺服務器中,這樣單臺服務器保存了用戶的session登錄信息,如果宕機,則等同于單點部署,會丟失,會話不復制。
2、session復制共享:session replication,如tomcat自帶session共享,主要是指集群環境下,多臺應用服務器之間同步session,使session保持一致,對外透明。 如果其中一臺服務器發生故障,根據負載均衡的原理,調度器會遍歷尋找可用節點,分發請求,由于session已同步,故能保證用戶的session信息不會丟失,會話復制,。
此方案的不足之處:
必須在同一種中間件之間完成(如:tomcat-tomcat之間).
session復制帶來的性能損失會快速增加.特別是當session中保存了較大的對象,而且對象變化較快時, 性能下降更加顯著,會消耗系統性能。這種特性使得web應用的水平擴展受到了限制。
Session內容通過廣播同步給成員,會造成網絡流量瓶頸,即便是內網瓶頸。在大并發下表現并不好
3、基于cache DB緩存的session共享
即使用cacheDB存取session信息,應用服務器接受新請求將session信息保存在cache DB中,當應用服務器發生故障時,調度器會遍歷尋找可用節點,分發請求,當應用服務器發現session不在本機內存時,則去cacheDB中查找,如果找到則復制到本機,這樣實現session共享和高可用。
我們這里是基于Tomcat自帶的session復制共享!
1、準備Tomcat集群
去 [tomcat官網](https://tomcat.apache.org/) 下載對應tomcat。
將下載下來的壓縮包解壓縮到對應文件夾中,因為我們要集群,所以這里最少復制兩個tomcat。我這里準備了兩個tomcat,8081端口和9000端口。端口自定義即可,但不能重復。tomcat端口修改這里不作贅述。
啟動tomcat,并訪問點擊 Clustering/Session Replication HOW-TO
找到這段內容,復制 同時打開文件 tomcat1路徑\conf\server.xml ,找到
找到這段內容,復制 同時打開文件 tomcat1路徑\conf\server.xml ,找到
<Engine name="Catalina" defaultHost="localhost">
這一行,把剛剛復制的內容直接粘貼在這標簽里面,如圖所示:
同理,將另一個tomcat做同樣修改。
官方的文檔中還有這樣一句話,Make sure your web.xml has the <distributable/> element。
這句話的意思就是需要在你web項目的web.xml中包含 <distributable/>。作用就是開啟session復制,在服務啟動后就會自動監聽并輔助session。
找一個web項目放到兩個tomcat的webapps下面。先啟動修改web.xml,再關閉tomcat;
到這里tomcat的webapps/web.xml 修改。再分別啟動兩臺tomcat
2、nginx配置負載均衡
下載nginx并安裝。
找到nginx安裝目錄進入到conf文件夾下。打開 nginx.conf 文件,修改配置如下:
user root;
worker_processes 4;
events {
# 最大并發數
worker_connections 1024;
}
http{
# 待選服務器列表
upstream myproject{
# ip_hash指令,將同一用戶引入同一服務器。
# ip_hash;
server 127.0.0.1:9000 weight=1;
server 127.0.0.1:8081 weight=1;
}
server{
# 監聽端口
listen 8888;
# 根目錄下
location /portal-web/ {
# 選擇哪個服務器列表
proxy_pass http://myproject/portal-web/;
proxy_redirect default;
#proxy_set_header Host $host;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
這里是配置了負載均衡,以方便驗證我們的session一致問題。
3、驗證session一致性
打開兩臺項目地址
8081 :未登錄查看session
9000:未登錄查看session
此時我們登錄其中任意一臺,我這里登錄8081 這臺
直接刷新9000這臺,發現也登錄上了。這時我們基于tomcat的session一致性就完成了。
但是我們上面安裝的nginx還沒用到,要知道實際生產環境只有一個地址,不可能讓用戶去訪問兩個地址。所以nginx主要是做了一個代理作用。
訪問nginx地址,發現也登錄上來了。大功告成!!!