Session Replication via Memcached

Session Replication via Memcached

Session Replication via Memcached

Jelastic provides Session Replication between instances of web-servers with a help of multicast. But also you can use Session Replication via Memcached.

To use memcached for session replication follow this instruction.

Create Environment

1. Log into the Jelastic Manager.

2. Click Create environment.

3. In the Environment topology window choose two or more servers you want to use (for example, two instances of Tomcat) and Memcached node. Type the name of the environment (for example, memcachedreplication) and click Create.

environment wizard

4. In a minute your environment will be created.

environment for Memcached replication

Configure application server

1. Download .jar file of Memcached session manager. As the example we used memcached-session-manager-1.6.2 .

Also download memcached-session-manager-tc7-1.6.2.jarspymemcached-2.8.4.jarmsm-kryo-serializer-1.6.1.jarkryo-1.03.jarreflectasm-0.9.jarkryo-serializers.jarjoda-time.jar and minlog-1.2.jar.

2. Click Config for Tomcat.

Tomcat config

3. In the opened window choose lib folder and upload the .jar file you’ve just downloaded.

upload libraries

4. Choose server folder and open context.xml file.

5. Update context.xml so that it contains the Manager configuration for the memcached-session-manager, like this:

<Context path="" docBase="ROOT">
 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   memcachedNodes="n1:host:11211"
   requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
   sessionBackupAsync="false"
   sessionBackupTimeout="100"
   copyCollectionsForSerialization="false"
   transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
   customConverter="de.javakaffee.web.msm.serializer.kryo.JodaDateTimeRegistration"
   />
</Context>

You can use any other serialization strategy according to your needs, in our case we use Kryo, an extremely fast binary serialization library.

configure context xml

6. In the string memcachedNodes add your memcached host and default port (11211). In our case we have:

n1:memcached-memcachedreplication.jelastic.com:11211

In order to get your memcached host, simply add the ‘memcached-’ prefix to your environment hostname (which is displayed in a string just under the name of your environment).

environment domain

7. Save the changes and Restart your server node (in our case Tomcat).

That’s all. Now your have a high available cluster with all the advantages of Memcached.