apache / apache/shenyu

[Task] implements true cluster mode for Shenyu Admin.

Open
#4,881 1 comment 1 reaction 0 assignees View on GitHub
status: discuss status: volunteer wanted
Dominant language
Java
Stars
8.8k
Forks
3.1k
Avg merge
7d 1h
Merged PRs (30d)
85

Description

### Description

The current shenyu admin cluster only has an nginx in front of it, and nginx performs load balancing on multiple admin requests. it has the following problems:

1. admin cluster data inconsistency problem
2. admin cluster will synchronize the same data received from the same client to the gateway multiple times. Because the client can register through the registration center (nacos, zk, etc.), then each node in the admin cluster receives the registration event, and each admin node synchronizes the information to the gateway.
3. the gateway may receive outdated data

My idea is to let admin implement the true cluster mode through raft protocol. the reasons are as follows:

1. admin is actually a special registration center. client registers with admin. gateway discovers these registration information. its special point is that it adds some flow control and plug-in data to these registration information.
2. Achieve high availability of shenyu admin
3. This implementation can solve all the problems of the current admin cluster.
4. shenyu admin can remove the dependence on registration centers such as zk, nacos, etcd, etc. and reduce the operation and maintenance work for shenyu

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or entry points are named. Start by tracing ShenYu Admin’s cluster and registration-event flow; done would mean a Raft-based admin cluster with consistent data, no duplicate gateway synchronization, and reduced dependence on external registration centers.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, nginx
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.