C ++ Distributed Real-time Application Framework (Cpp Distributed Real-time Application Framework) ---- (1): Overview,
C ++ Distributed Real-time Application Framework (Cpp Distributed Real-time Application Framework)
In today's wave of "cloud-based" software systems, various frameworks and tools supporting "cloud-based" are emerging. However, most of these ready-made tools are based on JAVA, go, and other languages, all application scenarios are non-real-time systems. However, the Distributed Real-time Application Framework based on the C ++ language and supporting millisecond-level response and high throughput has always been blank in this field. Cpp Distributed Real-time Application Framework (CDRAF) as a result.
We are committed to building CDRAF into a general C ++ distributed real-time system framework, it can serve any business system with high response and throughput requirements, whether it is a game background system or a telecommunications industry system. You only need to make a few changes to the original business code based on CDRAF, you can use the system to easily obtain all the features of the "Distributed Real-Time System", such:
- High throughput, low latency, diverse modes, stable and reliable communication platforms
- The new node automatically registers for Internet connection after it is started. The old node does not need to be restarted.
- The computing node automatically scales up or down dynamically based on the service volume.
- A single point of failure does not affect the cluster. the faulty node is automatically detected and automatically goes back to the network.
- Real-time node Performance Statistics, automatically reported
- Automatic Load Balancing. Different Nodes automatically perform Load Balancing Based on their processing capabilities.
- Overload protection prevents system congestion or even downtime due to excessive traffic
- Elegant start/stop, dual-channel message lines ensure no messages are lost during start/stop
- Phased release, supporting testing nodes and normal business nodes in the same network
- Provides Restful interfaces for managing cluster nodes to facilitate secondary development of node management.
CDRSF consists of the communication platform, status center, and system management. As shown in:
Communication Platform:
➢ Has the communication capability of low latency (millisecond level) and high throughput (200000pps/s level ).
➢ Provides a variety of communication methods (point-to-point, broadcast, distribution, single-channel, etc.) to meet various business needs
Zookeeper fully-configured node communication relationships, completely decoupled from business programs
➢ Real-time performance statistics output, real-time application Monitoring and Management
Status center:
➢ Provides the ability for new nodes to automatically discover and run online, and faulty nodes to automatically detect and return to the network.
➢ Each service node actively reports detailed running status data and monitors the running information of nodes across the network in real time.
The supervisor can issue management commands to various business nodes.
The register and trigger mechanism ensures that all commands and data arrive immediately.
System Management:
➢ Implement independent system management and external system management
Butler's self-managed capabilities include dynamic resizing, node overload protection, and faulty node restart.
External management provides external operations on the system through the RESTful interface.
(For example, elegantly shut down nodes, switch logs, single-number log tracking, container testing, etc)
Overall system architecture:
The communication platform is responsible for communications between all business processes, including inter-process and inter-node communications. SmartMonitor also monitors the heartbeat health status of business processes in real time and collects performance data in real time. SmartAgent reports various data of each node to the status center in real time and receives commands from the status center. SmartService manages the entire cluster process based on the system running status, and also accepts commands from external sources to perform various operations on the system process.
To be continued ......
Technical Exchange and Cooperation QQ group: 436466587 welcome to discussion