Server Configuration"
m (remove empty version history (via JWB)) |
|||
(10 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
The configuration of a Web server really depends on the server itself. There is no standard approach. | The configuration of a Web server really depends on the server itself. There is no standard approach. | ||
+ | |||
+ | = Load Balancer (Required) = | ||
+ | Be sure to configure [http://wiki.metawerx.net/wiki/StickySessions sticky session] on your load balancer because ZK only works correctly on this setting. | ||
+ | |||
+ | Check ZK DesktopImpl.java, you will see there are lots of <code>synchronized</code> used in many methods including: | ||
+ | * generate desktop ID | ||
+ | * addPage(), removePage() | ||
+ | * enableServerPush() | ||
+ | * processing server push update | ||
+ | |||
+ | The keyword <code>synchronized</code> only works in a single JVM, so it’s impossible to keep the same state between 2 different nodes with session replication if 2 nodes receive requests at roughly the same time. | ||
+ | |||
+ | Each AU request changes a Desktop's status of a session, if 2 AU requests are processed by 2 different clustering nodes and each one has its own session, then one session state might override another session. | ||
=Apache + Tomcat= | =Apache + Tomcat= | ||
Line 9: | Line 22: | ||
* [[Small Talks/2007/April/How to Run ZK on Apache + Tomcat clustering, Part I|How to Run ZK on Apache + Tomcat clustering, Part I]] | * [[Small Talks/2007/April/How to Run ZK on Apache + Tomcat clustering, Part I|How to Run ZK on Apache + Tomcat clustering, Part I]] | ||
* [[Small Talks/2007/May/How to Run ZK on Apache + Tomcat clustering, Part II|How to Run ZK on Apache + Tomcat clustering, Part II]] | * [[Small Talks/2007/May/How to Run ZK on Apache + Tomcat clustering, Part II|How to Run ZK on Apache + Tomcat clustering, Part II]] | ||
+ | |||
+ | More detail settings | ||
+ | |||
+ | * [[ZK_Installation_Guide/Setting_up_Servers/Tomcat_Cluster | Tomcat Cluster]] | ||
=Google App Engine= | =Google App Engine= | ||
− | = | + | For configuring Google App Engine, please refer to |
− | + | ||
− | + | * [[ZK Installation Guide/Setting up Servers/Google App Engine|ZK Installation Guide: Google App Engine]] | |
− | + | ||
− | + | =Apache + JBoss= | |
− | + | ||
− | | | + | For configuring JBoss, please refer to |
− | + | ||
− | + | * [[ZK Installation Guide/Setting up Servers/JBoss Cluster | JBoss Cluster]] | |
+ | |||
+ | =Glassfish= | ||
+ | |||
+ | For configuring Glassfish, please refer to | ||
+ | |||
+ | * [[ZK Installation Guide/Setting up Servers/Glassfish Cluster | Glassfish Cluster]] | ||
+ | |||
+ | =WebLogic= | ||
+ | |||
+ | For configuring WebLogic, please refer to | ||
+ | |||
+ | * [[ZK Installation Guide/Setting up Servers/WebLogic Cluster | WebLogic Cluster]] | ||
+ | |||
+ | |||
{{ZKDevelopersReferencePageFooter}} | {{ZKDevelopersReferencePageFooter}} |
Latest revision as of 04:33, 5 February 2024
The configuration of a Web server really depends on the server itself. There is no standard approach.
Load Balancer (Required)
Be sure to configure sticky session on your load balancer because ZK only works correctly on this setting.
Check ZK DesktopImpl.java, you will see there are lots of synchronized
used in many methods including:
- generate desktop ID
- addPage(), removePage()
- enableServerPush()
- processing server push update
The keyword synchronized
only works in a single JVM, so it’s impossible to keep the same state between 2 different nodes with session replication if 2 nodes receive requests at roughly the same time.
Each AU request changes a Desktop's status of a session, if 2 AU requests are processed by 2 different clustering nodes and each one has its own session, then one session state might override another session.
Apache + Tomcat
For configuring Apache + Tomcat, please refer to
- How to Run ZK on Apache + Tomcat clustering, Part I
- How to Run ZK on Apache + Tomcat clustering, Part II
More detail settings
Google App Engine
For configuring Google App Engine, please refer to
Apache + JBoss
For configuring JBoss, please refer to
Glassfish
For configuring Glassfish, please refer to
WebLogic
For configuring WebLogic, please refer to