Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Katedra softwarového inženýrství Fakulta informačních technologií ČVUT v Praze Letní semestr 2010/2011, přednáška č. 10 Zdeněk Troníček, 2011
Agenda Clustering Load balancing (rozdělování zátěže) Failover (překonání chyby) GlassFish 3.1 2
Cluster Klastr je seskupení několika instancí aplikačního serveru Pro klienta vypadá klastr jako jeden aplikační server Pro aplikaci je klastr téměř transparentní server 2 server 1 server 3 server 4 3
Load Balancing Client 1 request 1 request 1 request 3 Instance 1 Client 2 request 2 Load balancer Client 3 request 3 request 2 Instance 2 4
Distribuce požadavků round-robin algorithm response-time or first-available algorithm least-loaded algorithm weighted algorithm random 5
Failover Client request 1 request 2 Dispatcher request 1 request 2 Instance 1 Instance 2 Požadavky, které nemají vedlejší efekt, lze bezpečně zopakovat 6
Database Replication 2 Web App 4 backup session Client 1,6 5 Dispatcher 3 DB Web App 7 failover 8 restore session global HTTPSession ID backup frequency and granularity 7
Memory Replication (1) 2 Web App Client 1,6 5 Dispatcher 3 4 backup session 7 failover Web App restore session není potřeba výkonově lepší než ukládání do databáze 8
Memory Replication (2) Multi-servers replication Paired servers replication Centralized server backup server 9
EJB Clustering Smart stub client IIOP runtime library client Interceptor proxy proxy stub stub modified ORBSocketFactory RMI/IIOP 10
Mýty failover dokáže zcela eliminovat chyby NE! každou aplikaci lze pustit v klastru NE! distributed structure vs. collocated structure Load balancer Load balancer Web container Web container Web container Web container EJB container EJB container EJB container EJB container 11
Machine Equivalence 12
GlassFish Components Domain Domain Administration Server (DAS) Server instance Central repository Local repository cache 13
Architecture Machine A Machine B Server Instance 1 Server Instance 2 Domain Administration Server Central Repository Local Repository Cache Local Repository Cache 14
Load Balancing (1) Web Server GlassFish LB Plugin Server Instance 1 Server Instance 2 15
Load Balancing (2) Sticky round-robin Reverse proxy functionality Health check mechanism Idempotent URL retries Quiescence 16
Session Persistence Frequency web method time-based Scope session modified-session modified-attribute 17
JMS Cluster Client 1 Broker 2 Client 2 Broker 1 Client 3 Broker 3 master broker config 18
Dedicated Brokers Each server instance has an associated broker MQ 1 MQ 2 AS 1 AS 2 DAS 19
Otázky & odpovědi tronicek@fit.cvut.cz