Announcing Application Request Router 3.0 Beta!
We are happy to announce that we have just released the Beta version for ARR 3.0. Click here to install ARR v3 beta using Microsoft Web Platform Installer.
You can also download the x86 or x64 versions from Microsoft download center for manual install. Please follow How to install ARR without WebPI blog for installation instructions.
WebSocket support is the main highlight for this release. V3 also supports retries of URL health check. Apart from these features, ARRv3 also includes few bug-fixes.
WebSockets support in ARR:
Windows Server 2012 has added support for WebSockets in IIS 8.0. This allowed customers to deploy WebSocket applications on IIS server opening door for many interesting applications. Many customers use ARR in conjunction with IIS for its L7 aware routing and software load balancing capabilities. Websockets require special handling by L7 proxies and that’s why ARRv2.5 is not capable of routing WebSocket requests.
We have added WebSocket support to ARRv3, now ARR can distinguish WebSocket requests from normal HTTP requests and can handle them adequately.
In order to use ARR Websocket features, ARRv3 needs to be installed on Windows Server 2012 and install IIS Websockets module using following instructions:
Step by Step Instructions
To enable support for the WebSocket Protocol on Windows Server 2012, use the following steps:
- Open Server Manager.
- Under the Manage menu, click Add Roles and Features.
- Select Role-based or Feature-based Installation, and then click Next.
- Select the appropriate server, (your local server is selected by default), and then click Next.
- Expand Web Server (IIS) in the Roles tree, then expand Web Server, and then expand Application Development.
- Select WebSocket Protocol, and then click Next.
- If no additional features are needed, click Next.
- Click Install.
- When the installation completes, click Close to exit the wizard.
Once WebSocket module is installed, ARR server is ready to handle WebSocket traffic. This does not require any special configuration on ARR server.
ARR load balances WebSocket connections by load balancing first HTTP connect request according to configured WebSocket algorithm.
ARR supports both plain (ws://) and secure WebSocket (wss://) requests and it can also provide SSL offloading for WSS requests.
Retries for URL health Monitoring-
ARR provides URL health test for monitoring health of backend Web Servers. ARR periodically checks for health test URL and marks web server unhealthy when URL test fails. It also stops sending further traffic to that web server while it’s unhealthy. While it’s a very useful feature, it can be problematic in case Web Server is experiencing transient failure. Previous versions of ARR did not provide retry mechanism for health check. ARRv3 retries the URL health test 3 times by default before marking server unhealthy. This retry count value can be configured by changing retriesBeforeFail attribute under healthCheck element in ApplicationHost.config file of ARR server.
Below is relevant section of schema:
<element name="healthCheck">
<attribute name=" retriesBeforeFail " type="uint" defaultValue="3"/>
<attribute name=" retryInterval " type="timeSpan" defaultValue="00:00:02" validationType="timeSpanRange" validationParameter="0,86400,1"/>
</element>
Summary.
We are excited about ARR 3.0 and thrilled to be able to get the beta in your hands. The engineering team is eagerly looking forward to hearing your feedback which will help us continue improving ARR