天天看點

軟體架構-解密電商系統-分布式session

上次主要界面介紹了秒殺系統,分析了秒殺系統可能存在的幾個性能瓶頸的地方:商品清單,詳情頁面,送出訂單頁面。這次主要說說分布式session的問題。
軟體架構-解密電商系統-分布式session

1.加入redis緩存的方式,判斷是否redis中存在?第一次從資料庫裡面取,放入redis中,第二次的時候直接從redis裡面取。明顯并發可以上去。吞吐量也可以明顯提高。如果商品價格發生變化,及時的維護redis中的緩存。

2.nginx的并發數,加大nginx的并發數。

增加work_rlimit_nofile和worker_connections數量,并禁用keepalive_timeout。

3.tomcat的并發數。加大tomcat的并發數。逾時時間加大。

maxThreads="1000" 最大并發數 。 minSpareThreads="100"///初始化時建立的線程數。 maxSpareThreads="500"///一旦建立的線程超過這個值,Tomcat就會關閉不再需要的socket線程。 acceptCount="700"// 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求将不予處理。

4.redis的連接配接池。

5.dubbo連接配接池與逾時時間。

6.資料庫的連接配接池加大。Too many connections

7.linux系統的句柄數--too many open files

ulimit -n 20480
https://github.com/ran-jit/tomcat-cluster-redis-session-manager 支援tomcat7,tomcat8,tomcat9。

選擇它因為他支援tomcat8和tomcat9

軟體架構-解密電商系統-分布式session

詳細的介紹和下載下傳路徑

https://github.com/ran-jit/tomcat-cluster-redis-session-manager/wiki
軟體架構-解密電商系統-分布式session

Steps to be done,

1.Copy the downloaded jars to your tomcat/lib directory.

tomcat/lib/

2.Add tomcat system property "catalina.base".

catalina.base="TOMCAT_LOCATION"

example: export catalina.base=/opt/tomcat

3.Copy the redis-data-cache.properties file to your tomcat/conf directory and update your Redis server details.

tomcat/conf/redis-data-cache.properties

Add the below two lines in your tomcat/conf/context.xml file.

PS:網際網路公司都是堆機器,水準挂的機器多,redis多,tomcat多,nginx多,每個機器的配置一般,但是機器多分到每個機器上的就少了。其實還有内部的一部分優化。并不是調的越大越好,這個也是根據機器的性能的。需要根據機器來反複的嘗試獲得最佳值。