Companies need a data-processing solution that increases the speed of business agility, not one that is complicated by too many technology requirements. This requires a system that delivers continuous/real-time data-processing capabilities for the new business reality.
Stream processing is a hot topic right now, especially for any organization looking to provide insights faster. But what does it mean for users of Java applications, microservices, and in-memory computing?
In this webinar, we will cover the evolution of stream processing and in-memory related to big data technologies and why it is the logical next step for in-memory processing projects.
Setting up servers and configuring software can get in the way of the problems you are trying to solve. With Hazelcast Cloud we take all of those pain points away.
Watch this webinar to learn how you can instantly fire up and then work with Hazelcast Cloud from anywhere in the world. With our auto-generated client stubs for Java, Go, Node.js, Python and .NET, we can have you connected and coding in less than a minute!
Maintain a consistent customer experience and eliminate delays and downtime through Hazelcast web session clustering.
Looking for DEVELOPER content?
Hazelcast.org | Open Source Projects
Web and application servers can scale out to handle huge loads with devices such as load balancers, which also provide redundancy. However, this setup introduces a new problem for applications that use web sessions: if a server fails and the load balancer redirects the user to a new server, the session data is lost since sessions are tied to specific application servers. The solution to this problem is to provide web session clustering (or “web session replication”) which allows any application server to access the system-wide pool of stored session data.
Open source application servers typically provide a way to plug in a web session clustering solution but do not provide the clustering mechanism itself. Commercial application servers may provide a clustering mechanism, but these are typically neither robust nor performant.
Hazelcast maintains user sessions in its cluster in memory, creating multiple copies for reliability. Every application server is set up to access Hazelcast so that all have access to all user sessions. Sessions are evenly distributed across the Hazelcast cluster. In the event of an application server failure, the load balancer redirects the session to another application server. You can even shut down individual application servers for maintenance without losing session data. The handoff to the new application server is seamless for the user for the highest level of customer experience.
High Performance and Scale with No Application Modification Required
Hazelcast processes all data in memory, so it delivers extremely fast performance for web session clustering for the best possible user experience. Hazelcast scales horizontally, so as your online business grows, it’s easy and cost-effective to expand your capacity by simply adding more hardware servers to your cluster.
Hazelcast provides web session clustering with native integration for Tomcat and Jetty application servers. Hazelcast can also be integrated with generic application servers through the use of filters. Hazelcast is delivered as a compact JAR file that is installed directly on the server, so it doesn’t require any modifications to your applications.
Apache Tomcat is an open-source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements several Java Enterprise Edition specifications including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, and provides a “pure Java” HTTP web server environment for Java code to run in.
You can use Tomcat Web Session Replication with Hazelcast IMDG version 3.0 or higher. Tomcat Web Session Replication with Hazelcast IMDG is a container-specific module that enables you to perform session replication for JEE web applications without making changes to your applications. Tomcat Web Session Replication in Hazelcast IMDG is a Hazelcast module where the state of each created HttpSessionObject is kept in a Hazelcast distributed map.
The following are required to enable Hazelcast Session Clustering with Tomcat.
An advantage of the Tomcat Web Session Replication Module for Hazelcast IMDG is that you don’t change anything in your application. You only need to perform some configuration in your Tomcat container to easily attach Hazelcast session replication to your web applications.
To configure Tomcat for Hazelcast IMDG:
Put hazelcast-all-.jar, and hazelcast-tomcat-sessionmanager-.jar and hazelcast.xml (if you want to change defaults) in the folder $CATALINA_HOME/lib/..
<listener>element into the file $CATALINA_HOME$/conf/server.xml as shown below.
Put a <manager> element into the file $CATALINA_HOME$/conf/context.xml as shown below.
Jetty is a pure Java-based HTTP (Web) server and Java Servlet container. Jetty is developed as a free and open source project as part of the Eclipse Foundation. Jetty supports the latest Java Servlet API (with JSP support) as well as protocols SPDY and WebSocket.
You can use Jetty Web Session Replication with Hazelcast IMDG version 3.0 or higher. Jetty Web Session Replication with Hazelcast IMDG is a container-specific module that enables you to perform session replication for JEE web applications without making changes to your applications. Jetty Web Session Replication in Hazelcast IMDG is a Hazelcast module where the state of each created HttpSessionObject is kept in a Hazelcast distributed map.
The following are required for enabling Hazelcast Session Clustering with Jetty.
An advantage of the Jetty Web Session Replication Module for Hazelcast IMDG is that you don’t change anything in your application. You only need to perform some configuration in your Jetty container to easily attach Hazelcast web session replication to your web applications.
To configure Jetty for Hazelcast IMDG:
Put hazelcast.xml in the folder $JETTY_HOME/etc
Put hazelcast-all-.jar, and hazelcast-jetty-sessionmanager-.jar and hazelcast.xml (if you want to change defaults) in the folder $JETTY_HOME/lib/ext.
Configuring the HazelcastSessionIdManager:
<New id="hazelcastIdMgr" class="com.hazelcast.session.HazelcastSessionIdManager">
Configuring the HazelcastSessionManager:
<Ref name="Server" id="Server">
<Call id="hazelcastIdMgr" name="getSessionIdManager"/>
<New id="hazelcastMgr" class="com.hazelcast.session.HazelcastSessionManager">
With Hazelcast Open Source Generic Web Session Replication, you can easily store your user sessions in Hazelcast using any application server that supports filters.
If you are running on Tomcat or Jetty, consider using the native web session replication modules for these application servers. Native modules are more development-operations friendly and better integrated into Tomcat and Jetty for better performance.
The following are required for enabling Hazelcast Web Session Clustering.
You don’t change anything in your application. You only need to perform some configuration to easily attach Hazelcast Web Session Replication to your web applications.
Put the hazelcast and hazelcast-wm jars in your WEB-INF/lib directory.
Optionally, if you wish to connect to a cluster as a client, add hazelcast-client as well.
Put the following XML into the web.xml file. Make sure the Hazelcast filter is placed before all the other filters if there are any: for example, you can put it at the top.
<!– Name of the distributed map storing your web session objects –>
<!– How is your load-balancer configured? stick-session means all requests of a session is routed to the node where the session is first created. This is excellent for performance. If sticky-session is set to false, when a session is updated on a node, entry for this session on all other nodes is invalidated. You have to know how your load-balancer is configured before setting this parameter. Default is true. –>
<!– Are you debugging? Default is false. –>
As an in-memory solution, performance of web session clustering and replication is very high, and needs no alterations to your application tier. Perform web session clustering without modifying existing applications.
As your online business grows and customers increasingly use your website, Hazelcast can keep up with the load by adding new Hazelcast members to extend your cluster capacity.
Hazelcast IMDG is an in-memory data grid, so all data operations are handled in-memory. This gives users of your online business a significantly faster (and better!) user experience.
Configure Web Session Replication to use an existing cluster as a session store, so web servers will request session data from a central Hazelcast cluster, helping your development operations team save maintenance across your company.
300ms to 2ms
Latency reduction in inventory fulfillment
For top 10 retailer in US
Time to commit to purchase delivery
Drive Customer Satisfaction at Scale
Drive customer satisfaction to higher levels
Through web session clustering, the most important part of your business (people spending money) is always on, and always available.
Speed that drives innovation
In-memory speed supported by constant availability opens up new opportunities for service innovation across nearly all facets of your organization.
Deliver a consistent customer experience
In-memory speed enables back-end infrastructure to constantly adapt to changing conditions with no noticeable effect at the application (customer) layer.
Hazelcast is an open source, highly scalable, transactional, distributed/partitioned implementation of queue, map, set, list, lock and executor services for Java. Hazelcast is for you if you like to easily: share data/state among many servers (e.g. web session sharing), cache your data (distributed cache), cluster your application, partition your in-memory data, send/receive messages among applications, distribute workload onto many servers, take advantage of parallel processing or provide fail-safe data management.
In-memory data grids are already widely used for scaling web applications with caching, clustering and session replication. What is less known is that IMDGs have other great features that make them an excellent fit for modern web applications. This talk will explore the use of distributed data structures to push live data to the browser as soon as it updates. In particular we will focus on Entry Listeners and Continuous Query in combination with WebSockets to power a real-time web app.
If you need your applications to run faster, one way to speed them up is to use a data cache. In this white paper, we will discuss how Hazelcast offers a set of proven capabilities, beyond what other technologies provide, that make it worth exploring for your caching needs.
Whether you're interested in learning the basics of in-memory systems, or you're looking for advanced, real-world production examples and best practices, we've got you covered.