Depending upon whether you are creating Products in python, replication can be as simple as copying a single file from one installation to the others, since the entire zope object store exists in a single file. If you create objects as zClasses, these migrate in the same process. If you have python Products, you have to make sure that the product source code gets moved over as well. However, if you are dynamically creating objects in the ZODB (something that is strobly discouraged in a high volume write situation) through interaction with web browsers, obviously, the replication needs to be real time. IN that case ZEO is your best bet, which shares a single object store amongst multiple web servers/interpreters. Alternatively, before the announcement of the imminent arrival of open source ZEO, many of us built highly scalable sites where dynamically created objects are stored in an RDBMS (take your pick, the more scalable the better!), and only content generation objects are stored in the ZODB. This means that the ZODB only changes whenever site content changes. All of the above solutions work very well, depending upon your environment. Enjoy. --sam
"Bostick, Aaron" wrote:
I am in the process of designing a web site that will handle the load of a nationally advertised web site. I am considering using Zope over Pervavsive's Tango2000 or Vignette's StoryServer as an application server.
What I would like to know is if there are any easy ways to replicate the ZODB information across web servers if I am running a web farm? In other words, I plan to have multiple identical web servers sitting behind a load balancing appliance so that incoming requests can be sent to any of the web servers. Obviously, the web servers must contain the same data for this to be of any use. If I plan to run a web server and the zope engine on each "web server", how can i replicate changes to all my servers to keep them synced.
Would something as simple as a recursive copy work for this?
This is not something that will have to be done in real time. Something simple like a batch job would suffice. Other than the database content, the HTML stuff will remain relatively static.
Please excuse my ignorance on Zope. I haven't had the chance to set it up yet and am still in a preliminary design phase.
Thanks for any helpful hints regarding this matter!
Aaron Bostick Exodus Communications