Application Request Route (ARR for short) is a proxy-based module hosted on IIS7 (and later IIS versions). It can determine Http Headers, Server Variables and load balancing The algorithm forwards HTTP requests to different processing servers.
Uses
1. Enhance application availability and scalability
2. Make better use of server resources
3. Makes the deployment of applications more convenient, and supports satellite deployment management and hot replacement
4. Lower management costs, making the deployment of shared hosts possible
ARR is based on URL Rewrite Module, which makes request routing decisions by detecting HTTP requests sent by the client.
Features
1. Based on HTTP requests, request routing decisions are made
Different from hardware load balancing (IP in the OSI model layer to determine the routing method of the request), ARR is based on the application layer for load balancing, because more information is available in the application layer (in fact, when it comes to this, it is necessary to explain the principle of load balancing clearly, but, Because this series mainly talks about ARR, some underlying principle concepts will not be covered too much). By using the URL Rewrite Module in ARR, we can implement a more powerful routing rule based on HTTP Headers and Server Variables.
2. Load balancing algorithm
We can decide which load balancing algorithm to use to route requests. ARR provides 6 algorithms.
3. Health Check
We can use "real-time communication" and "specific URL test" to check the health of the server. Moreover, we can also use many parameters to determine what kind of situation is a healthy and normal server. For example, some people think that as long as the server is open, it is healthy; others think that the server is open and processing requests. No overload is healthy, etc. In addition, we can also implement our own health checks by using our own Health Monitoring Provider.
4. Client Affinity
Regarding affinity, I believe everyone is no longer unfamiliar with it. I will mention it a little here: I am more inclined to, or like that. For example, you can set the CPU affinity in SQL Server. Suppose there are four CPUs, numbered A, B, C, and D. We set the CPU affinity of SQL Server to A, that is to say: SQL Server is processing When making a request, it prefers to send the request to the CPU numbered A for processing. Of course, the request will also be sent to other CPUs, but the CPU of A has more opportunities to process the request.
Similarly, in ARR, you can set the affinity of the client. ARR is mainly achieved by using cookies. As for how to implement it, it is actually very simple, so I won’t go into it here.
5. Host name affinity
After understanding the above "client affinity", it will be easier to understand here. "Host name affinity" is mainly used in shared servers (many people use one server, that is, when deploying the site, they purchase "virtual address space").
6. Server grouping
ARR can manage many server groups, each of which contains multiple server services.
7. Management and health based on graphical interface
ARR is integrated with IIS and adopts a visual and easy-to-operate visual operation interface.
8. Formulate tracking rules for failed requests
In ARR, you can define specific tracking rules. When a request processing fails, you can view the tracking information to facilitate diagnosis.
The above is the detailed content of What does ARR mean?. For more information, please follow other related articles on the PHP Chinese website!