Tomcat kümesi, kazanma altında oturum paylaşımını gerçekleştirir

Önsöz:

Çoğu zaman uygulamaları dağıttığımızda, diğer sayfalara tıkladığımızda her zaman tekrar oturum açmamız gerektiğini fark ederiz.Bu genellikle bir oturum sorunudur.Sisteme erişildiğinde oturum sürdürülemez. Bu makale temel olarak tomcat kümesini yapılandırarak oturum paylaşımını uygular!

1. tomcat8080 ve tomcat9090 bağlantı noktalarını yapılandırın

Tomcat9090 yapılandırma dosyası server.xml'yi değiştirin

< Sunucu bağlantı noktası = "9005" shutdown = "KAPATMA" > < Bağlayıcı bağlantı noktası = "9090" protokol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" / > < Bağlayıcı bağlantı noktası = "9009" protokol = "AJP / 1.3" redirectPort = "8443" / >

2. tomcat kümesini kurun

Tomcat yapılandırma dosyasını değiştirin, conf altında server.xml dosyasını açın ve aşağıdaki satırı bulun

< Motor adı = "Catalina" defaultHost = "localhost" >

Herhangi bir değişiklik yapmaya gerek yok, aşağıdaki kodu bu satırın altına ekleyin:

< Küme className = "org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions = "8" > < Yönetici className = "org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown = "false" notifyListenersOnReplication = "true" / > < Kanal className = "org.apache.catalina.tribes.group.GroupChannel" > < Üyelik className = "org.apache.catalina.tribes.membership.McastService" adres = "228.0.0.4" bağlantı noktası = "45564" frekans = "500" dropTime = "3000" / > < Alıcı className = "org.apache.catalina.tribes.transport.nio.NioReceiver" adres = "otomatik" bağlantı noktası = "4000" autoBind = "100" selectorTimeout = "5000" maxThreads = "6" / > < Gönderen className = "org.apache.catalina.tribes.transport.ReplicationTransmitter" > < Taşıma className = "org.apache.catalina.tribes.transport.nio.PooledParallelSender" / > < /Gönderen > < Interceptor className = "org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" / > < Interceptor className = "org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" / > < /Kanal > < Valve className = "org.apache.catalina.ha.tcp.ReplicationValve" filter = "" / > < Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" / > < Deployer className = "org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir = "/ tmp / war-temp /" deployDir = "/ tmp / war-deploy /" watchDir = "/ tmp / war-listen /" watchEnabled = "false" / > < ClusterListener className = "org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" / > < ClusterListener className = "org.apache.catalina.ha.session.ClusterSessionListener" / > < /Küme >

Bu, tomcat ile birlikte gelen küme yapılandırmasıdır. Resmi tomcat belgelerinde cluster-howto.html'deki ilgili önlemlere bakın. Bunlardan birinin not edilmesi gerekir: web.xml'nizin < dağıtılabilir/ > element

Açıkçası bu, web projesinin web.xml dosyasının < dağıtılabilir/ > Bu öğe, içe aktarılan web projesinde değiştirildi.

3. Projeyi değiştirin

\ Tomcat \ webapps \ altında yeni bir testkümesi klasörü oluşturun, SessionID'yi elde etmek için testcluster altında yeni bir index.jsp oluşturun

< html > < baş > < Başlık > Başlık < /Başlık > < meta http-equiv = "İçerik Türü" content = "text / html; charset = gb2312" / > < / kafa > < vücut > Oturum kimliği: < % = session.getId ()% > < BR > OturumIP: < % = request.getServerName ()% > < BR > SessionPort: < % = request.getServerPort ()% > < % out.println ("Bu Tomcat Sunucusu 8080"); % > < /vücut > < / html >

Testcluster altında bir WEB-INF klasörü oluşturun, index.jsp'yi işaret etmek için WEB-INF altında yeni bir web.xml oluşturun ve ekleyin < dağıtılabilir/ > element

< ? xml version = "1.0" encoding = "UTF-8"? > < ! - PublicCMS Servlet3.0 teknolojisini kullanır, Web.xml artık tüm projenin girişi değildir, config.initializer. * Başlatıcı, projenin giriş sınıfıdır ve config. * Config, Spring yapılandırmasıdır - > < web uygulaması xmlns: xsi = " xmlns = " xsi: schemaLocation = " id = "WebApp_ID" version = "3.0" > < ekran adı > uzaktan Eğitim < /ekran adı > < dağıtılabilir/ > < hoşgeldin-dosya-listesi > < hoşgeldin dosyası > index.jsp < / hoşgeldin-dosyası > < / welcome-file-list > < /internet uygulaması >

Not: \ conf \ content.xml, WEB-INF altına yerleştirilmek üzere web.xml ile yapılandırıldığından, web.xml'nin WEB-INF'e yerleştirilmesi gerekir.

D: \ tomcat cluster \ tomcat8080 \ conf \ content.xml

< Bağlam > < ! - Varsayılan izlenen kaynaklar seti - > < İzlenen Kaynak > WEB-INF / web.xml < / WatchedResource > < ! - Tomcat yeniden başlatmalarında oturum kalıcılığını devre dışı bırakmak için bu açıklamayı kaldırın - > < ! - < Yönetici yol adı = "" / > - > < ! - Comet bağlantı takibini etkinleştirmek için bu açıklamayı kaldırın ( oturumun sona ermesinin yanı sıra web uygulaması yaşam döngüsünde) - > < ! - < Valve className = "org.apache.catalina.valves.CometConnectionManagerValve" / > - > < / Bağlam >

4. tomcat'i başlatın ve test edin

Tomcat'i başlatın:

D: \ tomcat cluster \ tomcat8080 \ bin \ startup.bat

D: \ tomcat cluster \ tomcat9090 \ bin \ startup.bat

Test adresi:

http: // localhost: 8080 / testcluster / index.jsp

http: // localhost: 9090 / testcluster / index.jsp

Her tarayıcının farklı bir SessionID'si olacaktır, ancak aynı tarayıcı tarafından farklı portlardan elde edilen SessionID aynıdır.

Ek: Tomcat kümesi yapılandırma parametreleri

Tomcat kümesinin yukarıdaki yapılandırmasının yalnızca içinde olması gerekir < Motor > Düğüm veya < Ev sahibi > Kümelemeyi desteklemek için düğümün içine aşağıdaki kodu ekleyin:

< Küme className = "org.apache.catalina.ha.tcp.SimpleTcpCluster" / >

Bu yapılandırma, tümü bir arada oturum çoğaltmayı etkinleştirecek ve oturum artışını çoğaltmak için DeltaManager'ı kullanacaktır. Hepsi bir arada yöntemi, oturumun kümedeki diğer tüm düğümlere çoğaltılacağı anlamına gelir. Küçük kümeler için bu Bu yöntem çok uygundur, ancak daha büyük kümelerde kullanılmasını önermiyoruz (birçok tomcat düğümü vardır. Örneğin, düzinelerce düğüm ve üstü ...) Ayrıca, delta artımlı yönetici kullanırken, hatta bazıları Düğüm, uygulamayı konuşlandırmaz ve oturum tüm düğümlere kopyalanır.

Daha büyük bir kümede oturum çoğaltma gerçekleştirmek için, BackupManager kullanmanız gerekir. Bu yönetici yalnızca oturum verilerini bir yedekleme düğümüne ve yalnızca ilgili uygulamanın konuşlandırıldığı düğümlere kopyalar. BackupManager'ın dezavantajı: Testten sonra, performans delta yöneticisi kadar iyi değildir .

İşte bazı önemli varsayılan değerler:

1. Varsayılan Çoklu Yayın adresi: 228.0.0.4

2. Varsayılan Çok Noktaya Yayın bağlantı noktası: 45564 (Bağlantı noktası numarası ile adresin birleşimi, küme ilişkisini belirler ve aynı küme olarak kabul edilir).

3. Varsayılan yayın IP'si java.net.InetAddress.getLocalHost (). GetHostAddress () (127.0.0.1'e yayın yapmadığınızdan emin olun, bu yaygın bir hatadır)

4. Çoğaltma mesajlarını dinlemek için varsayılan TCP bağlantı noktası, 4000-4100 aralığındaki ilk kullanılabilir sunucu soketidir.

5. İki dinleyici yapılandırılmıştır: ClusterSessionListener ve JvmRouteSessionIDBinderListener

6. İki durdurucu yapılandırılmıştır: TcpFailureDetector ve MessageDispatch15Interceptor

Pek çok insan kimsenin teknik makaleleri okumadığını söylüyor. Her neyse, onları paylaşırsan en azından okuyabilirsin ~

Bu yabancı hükümet karşıtı film ironik ve keskin, ancak yine de aşması zor.
önceki
Ulanhot'ın patronu acımasızca: 10 milyar alacağım ve tüm aileni satın alacağım
Sonraki
Aptal görün! Apple, kullanıcının iPhone'unu istila etmek için girişimde bulunur, ancak netizenler buna deli diyor
Güney Kore yine büyülüyor! Bu gerilim kaçış odası varyete şovunda, sekiz paket absim bir gülümsemeyle çıktı
Çin'in ilk AI çip endüstrisi zirvesi başarıyla gerçekleştirildi ve GTIC 2018 benzeri görülmemiş derecede sıcaktı
Bu mükemmel 7 dakikalık mikro filmin harika bir beyni ve korkunç bir sonu var!
Apple önemli olayları duyurdu! Yeni merkez resmi olarak halka açık Netizenler: Uçak biletlerini geri ödemek istiyor musunuz?
Son lüks: Elektrifikasyonu ve sürücüsüz sürüşü göz ardı ederek, Alman otomobil imalat endüstrisi en büyük kaybeden mi olacak?
Johnny To'nun bu çalışması, sadece erkekler anlayabilir
İnsanlar öldü ve beyinleri talep edilecek. Bu pilot biraz sefil
win altında tomcat + nginx yük dengeleme
İki erkek kaş almak için 1680 yuan harcadı, ancak daha sonra bunların kadın kaşları olduğu bulundu.
Çin Otomobil Derneği 20182 otomobil üretim ve satış verilerini yayınladı
Yeni çıkarılan ve dünyaya patlatılan bu Kuzey Amerika bilim kurgu filmi çok mu maliyetli?
To Top