Easy to use
The framework integrates microservice components natively, automatically recognizes each other, and greatly reduces the coupling configuration and dependency between microservice components.
Automatic node discovery
The registration center and configuration center are automatically discovered. There is no central node, a full cluster distributed registration center, which does not rely on a third-party registration center.
It supports modular design. Each application can be divided into multiple modules. Each module has independent install, uninstall, load and unload logic, and has its own version and configuration file.
It natively supports distributed transactions and does not rely on external transaction coordination managers or other special services. Currently three transaction models are supported: TCC, LCN (Native Rollback) and TXC (Compensated Rollback).
It natively supports distributed key/value cache. Generally, there is no need to rely on external redis or other key/value databases.
It natively supports distributed database, databases and tables can be sharded horizontally, without external dependence on MySQL and other database components.
It natively supports simple distributed messaging services, but high-performance messaging services still require external professional (Kafka/rocketMQ) messaging components.
It natively supports parallel computing, which can distribute computing tasks to each node for parallel computing, and supports MapReduce-like operations.
It supports the same JVM to start multiple applications working on different ports.
It natively supports logging system. There is no need to worry about conflicts between slf4j, logback and other logging systems.
Distributed current limiting
It supports distributed current limiting, IP black and white lists, IP concurrency limiting, and rate limiting. Set on any node, the same setting will be automatically applied to other nodes.
Time and ID service
It calculates the time by itself and does not rely on the host time to ensure uniform and reliable time among cluster nodes. The improved Snowflake ID built under this time guarantee, there is no need to worry about the clock moving backwards.
It supports event-driven. The event listener can receive internal events of the current node application, as well as cluster node events. Any node can receive specific global events sent by other nodes in the cluster.
Domain name support
It natively supports domain name resolution, you only need to resolve the pan-domain name to the server, and the controller can directly bind the sub-domain name by annotation.
Native distributed OAUTH2, native APM system, native data authority and audit system, native distributed artificial intelligence support.