[feature request] HeartbeatSender's implementation should use all Endpoints
- Dominant language
- Java
- Stars
- 23.1k
- Forks
- 8.1k
- PR merge metrics
- No merged PRs in 30d
Description
## Issue Description
Type: *feature request*
### Describe what happened (or what feature you want)
HeartbeatSender‘s implementation should use all Endpoints to send heartbeat
#### com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender
In
https://github.com/alibaba/Sentinel/blob/45dd5d0b9a33926edc6a5ea618b119797b666ad2/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/SimpleHttpHeartbeatSender.java#L92
`currentAddressIdx` always be 0
#### com.alibaba.csp.sentinel.transport.heartbeat.HttpHeartbeatSender
In https://github.com/alibaba/Sentinel/blob/3e438b3dba17641603099524aabbe457f8bc55fd/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java#L72
always use first Endpoint
### Describe what you expected to happen
Use some load balance algorithm to use all Endpoints instead of always use fixed one?
### Tell us your environment
Sentinel Version: 1.8.1
### Anything else we need to know?
Contributor guide
Research direction
Start with sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/SimpleHttpHeartbeatSender.java and sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/sentinel/transport/heartbeat/HttpHeartbeatSender.java at the referenced locations. Trace how endpoints are selected and review related heartbeat tests or entry points; done means both implementations can send heartbeats through all configured endpoints rather than always selecting the first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100