In this AEM Dispatcher article, I want to give a general view of what a Dispatcher is and why we need it. This overview will give a better understanding of what we are going to configure in the following parts.
There are two major approaches to web publishing: static web servers and content management servers.
Static Web Servers
Static Web Servers, such as Apache or IIS, are very simple and fast. One of the most outstanding features of static web servers is their expandability by third-party plugins.
The first static web servers were created at the dawn of the internet age in the mid-90s.
The Apache HTTP Server (“httpd”) was one of a kind but soon emerged as the most popular static web server. Launched in 1995, the Apache HTTP Server became the most popular static web server in April 1996 and has been the most popular Internet web server ever since.
In February 2015, it marked the server’s 20th birthday. The Apache HTTP Server creation turned out to be crucial for the open-source world, including Java open-source software. This server was created by 10-15 developers who founded the original Apache Group. In 1999, the Apache Group members formed the Apache Software Foundation (ASF) community, which greatly expanded the number of open-source software projects.
These Open Source projects simplified java application development. Some notable examples from Apache Open Source include Felix (OSGi implementation), jackrabbit (JCR implementation), and sling. All of these are used in AEM.
Content Management Servers
Content Management servers are the second approach to web publishing. They provide dynamic, real-time, and intelligent content but require more processing and resources.
We are using the 2nd approach by default when working with AEM. Minimal environment configuration for web publishing with AEM consists of two AEM instances: author and publish.
What is a dispatcher in AEM?
The Dispatcher combines the speed of a Static Web Server with the flexibility of a Content Management Server. The dispatcher operates as part of a static HTML server (such as Apache). In other words, the dispatcher is only a 3rd party plugin (plugins are called “modules” for apache httpd) for static web servers. Adobe wrote this plugin.
Such an environment provides caching with a focus on:
- Storing (or “caching”) as much of the site content as possible in the form of a static website;
- Accessing the layout engine as little as possible.
It means that:
- Static content is handled with the same speed and ease as on a static web server; additionally, you can use the administration and security tools available for your static web server(s);
- Dynamic content is generated as needed without slowing the system down more than necessary.
The dispatcher contains mechanisms to generate and update static HTML based on the content of the dynamic site. You can specify in detail which documents are stored as static files and which are always generated dynamically.
In addition to caching, the dispatcher delivers the benefits of load balancing. Load Balancing is the practice of distributing the computation load of the website across several instances of AEM. You gain increased processing power and increased fail-safe coverage.
Summary
The key goals of the dispatcher:
- Caching;
- Load balancing.
The dispatcher provides the following additional benefits:
- Security;
- Request processing management.
You may study more detailed documentation on the following page: https://docs.adobe.com/docs/en/dispatcher.html
FAQ
What is a dispatcher in AEM?
The dispatcher is a caching and load-balancing tool developed by Adobe for AEM implementations. It distributes incoming requests evenly among multiple AEM publish instances to minimize their load. Additionally, it serves cached content to end-users when possible, resulting in improved website performance.
How does a dispatcher work in AEM?
In AEM, the dispatcher acts as a proxy server between the website and the user. When a user’s browser requests a page, the dispatcher checks its cache for a pre-fetched version of that page. If the cached page is current, the dispatcher serves it to the user. However, if the cached content is outdated, the dispatcher forwards the request to the AEM publish instance. The publish instance generates a new version of the page, which the dispatcher caches and serves to the user. This process improves website performance by minimizing the load on AEM instances and serving cached content whenever possible.
What are the author-publisher and Dispatcher in AEM?
The author-publisher is a two-tier system that separates content creation (author instance) and content delivery (publisher instance). The dispatcher acts as a middleman between the AEM author-publisher instances and end-users. It reduces the number of requests made to the AEM instances by serving cached content, resulting in improved website performance.
How to set up AEM Dispatcher?
First, download the AEM SDK and unpack the Dispatcher Tools from the zip file to a special directory on your web server. Then, configure the AEM Dispatcher module to connect to your AEM instance and cache content. Finally, test your configuration to ensure it’s working properly. For detailed instructions, refer to the AEM documentation.
What is a Dispatcher URL?
Dispatcher caches and stores AEM site pages to serve them to users. The web address of cached pages is called Dispatcher URLs.