How zzl-qz/rover-suite works
Rover-Suite combines service registration/discovery, an HTTP gateway, and an optional runtime Admin console. The principal flow is provider registration with Nameserver, registry snapshot push to gateway-side clients, then request routing to a healthy instance and proxying its response. Separate branches cover runtime visibility/configuration and extension points. Some links are based on README descriptions because their implementations were not sampled; dashed edges mark those unverified connections.
Main entry points: RouteAndProxyFilter.java Route and Proxy · GatewayHttpServer.java Gateway HTTP Server · RegistrationService.java Registration Service · app.js Admin Console
Components 23
Registration and Discovery
- Java Starter
rover-nameserver-starter/src/main/java/com/rover/nameserver/starter/autoconfigure/NameserverAutoConfiguration.java - Nameserver APIs
rover-nameserver-core/src/main/java/com/rover/nameserver/core/clientapi/NameserverClientApi.java - Registration Service
rover-nameserver-core/src/main/java/com/rover/nameserver/core/registration/RegistrationService.java - Service Registry
rover-nameserver-core/src/main/java/com/rover/nameserver/core/registry/InMemoryServiceRegistry.java - Snapshot Push
rover-nameserver-core/src/main/java/com/rover/nameserver/core/push/PushService.java - Nameserver Client
rover-nameserver-client/src/main/java/com/rover/nameserver/client/connection/NameserverClient.java - Client Message Handler
rover-nameserver-client/src/main/java/com/rover/nameserver/client/handler/NameserverClientHandler.java - Instance Cache
rover-nameserver-client/src/main/java/com/rover/nameserver/client/cache/InstanceCache.java - Nacos Discovery
rover-gateway-adapter-nacos/src/main/java/com/rover/gateway/adapter/nacos/NacosServiceDiscovery.java
Gateway Runtime
- Gateway HTTP Server
rover-gateway-core/src/main/java/com/rover/gateway/core/server/GatewayHttpServer.java - Gateway Filters
rover-gateway-core/src/main/java/com/rover/gateway/core/filter/GatewayFilterAssembler.java - Route and Proxy
rover-gateway-core/src/main/java/com/rover/gateway/core/filter/RouteAndProxyFilter.java - Load Balancing
rover-gateway-core/src/main/java/com/rover/gateway/core/loadbalance/LoadBalancerFactory.java - Upstream Proxy
rover-gateway-core/src/main/java/com/rover/gateway/core/proxy/HttpProxyClient.java
Operations and Config
- Admin Console
rover-admin/src/main/resources/static/js/app.js - Admin API
rover-admin/src/main/java/com/rover/admin/web/AdminConfigController.java - Admin Config Service
rover-admin/src/main/java/com/rover/admin/service/AdminConfigService.java - Manage APIs
rover-gateway-core/src/main/java/com/rover/gateway/core/manage/GatewayManageApi.java - Runtime Configuration
rover-common/src/main/java/com/rover/common/config/AbstractRuntimeConfigManager.java
Shared Protocol
- Shared Protocol
rover-common/src/main/java/com/rover/common/protocol/RoverMessage.java
Other components
- Service Providers
- HTTP Callers
- Admin Operator
Connections 23
- Service Providers → Java Starter: registers via
README.md - Service Providers → Nameserver APIs: registers via
README.md - Nameserver APIs → Registration Service: delegates lifecycle
- Registration Service → Service Registry: updates
rover-nameserver-core/src/main/java/com/rover/nameserver/core/registration/RegistrationService.java - Registration Service → Snapshot Push: pushes changes
rover-nameserver-core/src/main/java/com/rover/nameserver/core/registration/RegistrationService.java - Snapshot Push → Nameserver Client: pushes snapshots
README.md - Client Message Handler → Instance Cache: updates cache
rover-nameserver-client/src/main/java/com/rover/nameserver/client/handler/NameserverClientHandler.java - Nameserver Client → Instance Cache: reads instances
rover-nameserver-client/src/main/java/com/rover/nameserver/client/connection/NameserverClient.java - HTTP Callers → Gateway HTTP Server: sends requests
README.md - Gateway HTTP Server → Gateway Filters: dispatches through
- Gateway Filters → Route and Proxy: routes requests
- Route and Proxy → Instance Cache: uses instances
README.md - Route and Proxy → Load Balancing: selects instance
- Route and Proxy → Upstream Proxy: proxies request
- Upstream Proxy → Service Providers: forwards HTTP
README.md - Nacos Discovery → Gateway HTTP Server: optional discovery
README.md - Admin Operator → Admin Console: views operations
README.md - Admin Console → Admin API: calls management
- Admin API → Admin Config Service: delegates actions
- Admin Config Service → Manage APIs: queries components
rover-admin/src/main/java/com/rover/admin/service/AdminConfigService.java - Admin Config Service → Runtime Configuration: updates settings
- Admin Console → Gateway HTTP Server: shows runtime state
README.md - Shared Protocol → Nameserver Client: carries messages
rover-nameserver-client/src/main/java/com/rover/nameserver/client/connection/NameserverClient.java