multi-server-solver

所属分类:云原生工具
开发工具:Java
文件大小:0KB
下载次数:0
上传日期:2023-11-06 22:11:49
上 传 者sh-1993
说明:  具有负载平衡器的多服务器解算器
(Multi server solver with load balancer)

文件列表:
.idea/ (0, 2023-11-06)
.idea/compiler.xml (1321, 2023-11-06)
.idea/encodings.xml (518, 2023-11-06)
.idea/jarRepositories.xml (845, 2023-11-06)
.idea/misc.xml (743, 2023-11-06)
.idea/uiDesigner.xml (8792, 2023-11-06)
.idea/vcs.xml (180, 2023-11-06)
application-server/ (0, 2023-11-06)
application-server/.mvn/ (0, 2023-11-06)
application-server/.mvn/wrapper/ (0, 2023-11-06)
application-server/.mvn/wrapper/maven-wrapper.jar (62547, 2023-11-06)
application-server/.mvn/wrapper/maven-wrapper.properties (233, 2023-11-06)
application-server/mvnw (11290, 2023-11-06)
application-server/mvnw.cmd (7592, 2023-11-06)
application-server/pom.xml (1740, 2023-11-06)
application-server/src/ (0, 2023-11-06)
application-server/src/main/ (0, 2023-11-06)
application-server/src/main/java/ (0, 2023-11-06)
application-server/src/main/java/com/ (0, 2023-11-06)
application-server/src/main/java/com/orik/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/ApplicationServerApplication.java (341, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/DTO/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/DTO/RequestDTO.java (1077, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/DTO/ServerStatusDTO.java (562, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/DTO/StatusRequestDTO.java (758, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/component/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/component/ThreadPool.java (3461, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/config/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/config/AppConfig.java (347, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/config/SecurityConfig.java (1455, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/ (0, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/JWTTokenGenerator.java (684, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/RequestStatus.java (334, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/RoleData.java (473, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/SecurityConstants.java (176, 2023-11-06)
application-server/src/main/java/com/orik/applicationserver/constant/ThreadPoolConstants.java (190, 2023-11-06)
... ...

# multi-server-solver The main purpose of this application is to process time-consuming requests from customers.Examples of such requests can be tasks: solving a system of equations, the finite element method, pattern recognition, image processing, and others(In this case, the service is designed to recursively find the Fibonacci number by its index). This service is built on a microservice architecture where there are 3 types of servers (user server, load balancer server and application server) How it works 1.The client sends a request to the user-server, 2.Request is immediately recorded in the client's request history 3.The user-server sends a request to the load balancer to get the port on which the server is least loaded 4.The load balancer contacts each of the working servers to get statistics on each of them according to their workload 5.The load balancer processes all the statistics it received earlier and determines the port to which the client`s request should be sent and sends a response to the user-server 6.The user-server sends a client request to a specific application server and receives the task status in response. 7.Then it records the status in the database 8.User-server returns a response to the client with the statuses of its tasks
project
Features: - The request has a maximum labor intensity (in case of exceeding - refusal of execution) - The client is informed how much time is left until the completion of his task - The client can cancel the execution of the task or send another task so that they are executed in parallel - The client needs to be authorized to use the service(with using JWT token). - The client has access to the history of his requests - The service uses a load balancer to evenly distribute tasks between servers(It is also optimized in such a way that with each user request it does not receive statistics on all servers again, but keeps the same one for a certain number of requests from clients, and if the thread pool or queue is full on any server, the application server notifies the load balancer about this) - In case when all servers are busy, the client is informed that his request has been queued. And if all queues are busy, then the request is canceled due to the inability of the service to process it Roles: - Client(Sends calculation requests and receives a response) - VIP(Separate application servers are allocated for this type of client to perform calculations) - Admin(Can view all running processes and monitor system servers load.)

近期下载者

相关文件


收藏者