Overview
To meet enterprises' business requirements on high availability and concurrency, FanRuan supports both standalone and cluster deployment methods.
Also, the corresponding deployment architecture is recommended based on the specific business load situation to ensure the normal and stable business running.
This document describes various recommended optimal deployment solutions based on the number of concurrent users and server resources.
Deployment solution description:
(1) The deployment solutions listed in this document are all based on the configuration requirements when the server is dedicated to the project and components. (Namely, no other content is installed on the server.)
The FanRuan standalone architecture consists of the project node and the configuration database (external FineDB).
The FanRuan cluster architecture consists of project nodes, the load balancer, the state server, the file server, and the configuration database (external FineDB). Different application components in the architecture need to be selected and matched for different scenarios.
During actual deployment, you can freely select the software and hardware in the range supported by the technology roadmap.
(2) Considering that server resources of some users are limited:
For project node deployment solutions, this document describes recommended and minimum configuration requirements respectively. If resources are abundant, meet the recommended configuration requirements. If resources are insufficient, at least meet the minimum configuration requirements.
For cluster deployment solutions, this document provides both high availability and non-high availability deployment solutions. If resources are abundant, you are advised to use the high availability deployment solution. If resources are insufficient, the non-high availability deployment solution can be considered.
(3) For standalone projects, unavailability is unavoidable if a low-possibility fault occurs. If high availability is required, you are advised to preferentially select the cluster architecture for deployment.
System performance description:
(1) Project node quantity:
In a cluster scenario, the more the nodes are, the larger number of concurrent users the system can handle, and the more similar the average template response time is.
The number of concurrent users the system can handle in a standalone project is only one half that in a dual-node cluster, and one third that in a three-node cluster.
(2) Template performance:
In a standalone scenario, the larger the JVM memory is, the shorter the template response time is.
In a cluster scenario, if the number of concurrent users is similar in each node, the average template response time is similar.
The performance of preview requiring platform authentication is worse than that of preview not requiring platform authentication. This is because different users cannot share the same result cache.
Project Server Environment
General Server Requirement
Configuration Item | Recommended Configuration | Minimum Configuration |
---|---|---|
Server type | Linux server | Linux server |
System version | Ubuntu 18.04.4 and later versions | Ubuntu 18.04.4 and later versions |
System kernel | 3.10 and later versions | 3.10 and later versions |
System architecture | x86_64 | x86_64 |
Available disk space | More than 500 GB for the server where each node is located At least 40 GB for the root directory | More than 500 GB for the server where each node is located At least 40 GB for the root directory |
Middleware | Latest version of Tomcat 9 Latest version of JDK 1.8 | Tomcat 8.5.57 and later versions JDK 1.8 (8u102 and later versions) |
Configuration Requirement Based on Node Quantity
You can deploy only one project node of the cluster on one server. Therefore, you need to prepare as many servers as the number of project nodes.
The following describes user dimensions.
Number of registered users: number of users registered in the system.
Number of online users: number of users who are concurrently online in a certain period of time (generally between 5% and 20% of the number of registered users).
Number of concurrent users: number of users who concurrently send requests to the server (generally between 10% and 25% of the number of online users).
Number of Registered Users | Number of Online Users | Number of Concurrent Users | Recommended Configuration (Average Response Time < 3s in 70% of Scenarios) | Minimum Configuration (Average Response Time < 5s in 70% of Scenarios) |
---|---|---|---|---|
2000 – 5000 | 400 – 1000 | 0 – 200 | Standalone configuration, in which nodes should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 16 GB Physical memory: 32 GB | Standalone configuration, in which nodes should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 8 GB Physical memory: 16 GB |
4000 – 10000 | 800 – 1500 | 200 – 300 | Standalone configuration, in which nodes should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB | Standalone configuration, in which nodes should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 16 GB Physical memory: 32 GB |
6000 – 12000 | 1200 – 2500 | 300 – 500 | Two-node cluster configuration, in which each node should meet the following configuration: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB | Standalone configuration, in which nodes should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB |
8000 – 20000 | 1600 – 4000 | 500 – 800 | Three-node cluster configuration, in which each node should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB | Two-node cluster configuration, in which each node should meet the following configuration: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB |
10000 – 25000 | 2000 – 5000 | 800 – 1000 | Four-node cluster configuration, in which each node should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB | Two-node cluster configuration, in which each node should meet the following configuration: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB |
12000 – 30000 | 2400 – 6000 | 1000 – 1200 | Five-node cluster configuration, in which each node should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB | Three-node cluster configuration, in which each node should meet the following requirements: CPU: 8 cores; 16 threads; 2.4 GHz JVM memory: 24 GB Physical memory: 48 GB |
Server Environment of Other Components
Standalone
Applicable object:
Standalone project
Application server: one node
FineDB configuration database: versions later than MySQL 8.0.20
Parameter configuration:
The FanRuan standalone architecture consists of the project node and the configuration database (external FineDB).

Configuration Item | Recommended Configuration |
---|---|
Database (FineDB) Server Configuration | |
Server quantity | 1 If conditions permit, you are advised to deploy the external configuration database on one separate server. If conditions are limited, you can deploy the external configuration database and the FineReport project on the same server. But at least ensure that the server is dedicated to the FineReport project and the database (namely, no longer deployed with other applications). |
Operating system | Linux server System version: Ubuntu 18.04.4 and later versions System kernel version: 3.10 and later versions System architecture version: x86_64 |
Network requirement | (1) You are advised to deploy the configuration database and the application project on the same network segment to avoid problems such as network fluctuations. (2) If the configuration database and the application project are in a public network environment, the bandwidth needs to be above 10 Mbps. (3) The network needs to be smooth between the configuration database and the application project and their ports need to be accessible to each other. |
Database quantity | 1 |
Database type | MySQL 8 database Database version: versions later than MySQL 8.0.20 Database driver version: 5.1.49 (compatible with MySQL 5/8) Database character set: utf8 Database sorting rule: utf8_bin Database name: only numbers, letters, underscores, and periods (.) supported Database permission: create, delete, alter, update, select, insert, and index |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Physical memory | 8 GB |
Available disk space | More than 200 GB |
Network speed | 100 Mbps |
Disk read/write speed | 100 MB/s |
Standard Cluster
Applicable object:
Standard cluster
Application server: at least two nodes
State server: Redis standalone
File server: SFTP
Load balancer: NGINX
Configuration database: MySQL
Parameter configuration:
The FanRuan cluster architecture consists of project nodes, the load balancer, the state server, the file server, and the configuration database (external FineDB).

Configuration Item | Recommended Configuration |
---|---|
Sharing Requirement The requirements listed in this section are ones that must be met by every type of cluster components. | |
Server quantity | If conditions permit, you are advised to deploy the load balancer, the state server, the file server, and the external configuration database on one server separately. If conditions are limited, ensure that these components are deployed on at least one separate server (exclusively occupied by these components and not shared with the FineReport project). |
Operating system | Linux server System version: Ubuntu 18.04.4 and later versions System kernel version: 3.10 and later versions System architecture version: x86_64 |
GNU Compiler Collection (GCC) | The deployment of both Redis and NGINX in the Linux system relies on GCC. Ensure that the system has the GCC environment. Query command: gcc -v Installation command: yum install gcc gcc-c++ |
Network requirement | (1) You are advised to deploy each component and the application project on the same network segment to avoid problems such as network fluctuations. (2) If each component and the application project are in a public network environment, the bandwidth needs to be above 10 Mbps. (3) The network needs to be smooth between each component and the application project and their ports need to be accessible to each other. |
State Server | |
Server quantity | 1 |
Deployment solution | Redis standalone |
JVM/Physical memory | 4 GB/8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | More than 100 GB At least 40 GB for the root directory |
File Server | |
Server quantity | 1 |
Deployment solution | SFTP |
Physical memory | 8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | 500 GB – 1 TB At least 40 GB for the root directory Expand the capcaity according to usage. |
Notes | The FTP server can be installed in the Linux system only by the user with highest permissions (root). Otherwise, the intallation cannot proceed. If the FTP server does not need to be installed, this requirement can be ignored. |
Load Balancer | |
Server quantity | 1 |
Deployment solution | NGINX 1.21 and later versions recommended (preferentially the latest version) |
Physical memory | 8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | More than 100 GB At least 40 GB for the root directory |
Database (FineDB) Server Configuration | |
Server quantity | 1 |
Database type | MySQL 8 database Database version: versions later than MySQL 8.0.20 Database driver version: 5.1.49 (compatible with MySQL 5/8) Database character set: utf8 Database sorting rule: utf8_bin Database name: only numbers, letters, underscores, and periods (.) supported Database permission: create, delete, alter, update, select, insert, and index |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Physical memory | 8 GB |
Available disk space | More than 200 GB |
Network speed | 100 Mbps |
Disk read/write speed | 100 MB/s |
Highly-Available Cluster
Applicable object:
Highly-available cluster
Application server: at least two nodes
Status server: Redis cluster with three master nodes and three slave nodes
File server: NAS
Load balancer: NGINX + Keepalived
Configuration database: PostgreSQL
Parameter configuration:
The FanRuan cluster architecture consists of project nodes, the load balancer, the state server, the file server, and the configuration database (external FineDB).

Configuration Item | Recommended Configuration |
---|---|
Sharing Requirement The requirements listed in this section are ones that must be met by every type of cluster components. | |
Server quantity | If conditions permit, you are advised to deploy the load balancer, the state server, the file server, and the external configuration database on one server separately. If conditions are limited, ensure that these components are deployed on at least one separate server (exclusively occupied by these components and not shared with the FineReport project). |
Operating system | Linux server System version: Ubuntu 18.04.4 and later versions System kernel version: 3.10 and later versions System architecture version: x86_64 |
GNU Compiler Collection (GCC) | The deployment of both Redis and NGINX in the Linux system relies on GCC. Ensure that the system has the GCC environment. Query command: gcc -v Installation command: yum install gcc gcc-c++ |
Network requirement | (1) You are advised to deploy each component and the application project on the same network segment to avoid problems such as network fluctuations. (2) If each component and the application project are in a public network environment, the bandwidth needs to be above 10 Mbps. (3) The network needs to be smooth between each component and the application project and their ports need to be accessible to each other. |
State Server | |
Server quantity | Redis cluster with three master nodes and three slave nodes If conditions permit, prepare six servers on each of which one node is deployed. If conditions are limited, prepare three servers on each of which one master node and one slave node are deployed. |
JVM/Physical memory | 4 GB/8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | More than 100 GB At least 40 GB for the root directory |
File Server | |
Server quantity | 1 |
Deployment solution | NAS |
Physical memory | 8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | 500 GB – 1 TB At least 40 GB for the root directory Expand the capcaity according to usage. |
Load Balancer | |
Server quantity | 2 |
Deployment solution | Keepalived + NGINX NGINX 1.21 and later versions recommended (preferentially the latest version) |
Physical memory | 8 GB |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Available disk space | More than 100 GB At least 40 GB for the root directory |
Database (FineDB) Server Configuration | |
Server quantity | 2 |
Database type | Highly-available database in the master-slave mode Database permission: create, delete, alter, update, select, insert, and index |
CPU | Above 2.5 GHz 8 cores; 16 threads |
Physical memory | 8 GB |
Available disk space | More than 200 GB |
Network speed | 100 Mbps |
Disk read/write speed | 100 MB/s |