服務(wù)器集群
nginx前段服務(wù)器,同時(shí)管理多個(gè)后端的服務(wù)器,可以使tomcat 或者weblogic等。
但是存在一些問(wèn)題:1.后端服務(wù)器之間的數(shù)據(jù)不能共享,如果一個(gè)客戶機(jī)向一個(gè)tomcat發(fā)送登陸請(qǐng)求,再想另一個(gè)tomcat發(fā)送了看商品列表的請(qǐng)求,就會(huì)出現(xiàn)請(qǐng)求拒絕的情況,需要做到session共享
2.如果這里的nginx服務(wù)器掛了,整個(gè)服務(wù)器集群就會(huì)掛。HA:高可用,3.這里的nginx會(huì)出現(xiàn)很多請(qǐng)求和響應(yīng)都經(jīng)過(guò)nginx,服務(wù)器集群會(huì)出現(xiàn)瓶頸的情況。 DR:直接路由
問(wèn)題1解決方式:共享session
需要專門(mén)管理session的軟件,memcached 緩存服務(wù),可以和tomcat整合,幫助tomcat共享管理session。(就如同數(shù)據(jù)庫(kù)連接池中的close方法,用戶在調(diào)用close方法時(shí)不是真的將連接關(guān)掉,而是還給數(shù)據(jù)庫(kù)連接池。)
memcached 緩存服務(wù),可以和tomcat整合,幫助tomcat共享管理session。 設(shè)置多臺(tái)服務(wù)器session共享:
(特別注意,使用memcached需要使用高版本的tomcat7)
1.在一臺(tái)服務(wù)器上安裝memcached(內(nèi)存數(shù)據(jù)庫(kù))
1、安裝libevent
2、安裝memcached
3、啟動(dòng)memcached ./memcached -d -m 128m -p 11211 -l 192.168.198.128 -u root -P /temp/
4、拷貝jar到每個(gè)后端服務(wù)器tomcat的lib下
5、配置tomcat,每個(gè)tomcat里面的context.xml中加入
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.198.128:11211" //ip為mencached安裝的服務(wù)器的ip,如果安裝了多個(gè)memcached,需要配置多個(gè)ip
sticky="false" lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
問(wèn)題2,3:
使用Lvs(linux virtual server),使用ipvsadm管理 應(yīng)用程序,Lvs的DR模式直接路由模式,給每一個(gè)服務(wù)器都配一個(gè)VIP(虛擬ip),后端服務(wù)器得到請(qǐng)求后直接向客戶端響應(yīng),不再經(jīng)過(guò)ngix。
(詳見(jiàn)LVS的DR模式集群配置)
為了解決nginx服務(wù)器掛了,整個(gè)服務(wù)器集群就會(huì)掛的問(wèn)題,需要使nginx高可用:keepalived(詳見(jiàn)keepalived配置·)
聯(lián)系客服